1

stepfun を使用してステップ関数をプロットしようとしています。これには、x 値の間の関数値の高さを与えるベクトルが x より 1 長い必要があります。ただし、この要件のため、データの最後のカテゴリに対応する値をプロットできません。

高さは次の式で与えられます。

beta_dec=c(.0453196,-.0254566,-.0156608,-.0015202,-.0026819)

による x 値

temp=seq(8,20,by=3)

次のことわざを実行するとエラーが発生します

graph<-stepfun(temp,beta_dec,f=0)

「stepfun(temp, beta_dec, f = 0) のエラー: 'y' は 'x' より 1 長い必要があります」

シーケンスを 17 で終了すると正常に実行されますが、20 に対応する値がプロットされませんか?

4

2 に答える 2

4

これで十分でしょうか?

plot(beta_dec ~ temp, type = "s")

とはtype = "s"で定義され?plot.default、階段またはステップを意味します。上記の呼び出しにより、次のようになります。

タイプ =

于 2012-05-01T16:26:23.630 に答える
4

y が x より 1 つ長い必要がある理由stepfunは、x ノットがある場合、関数を完全に定義するには x+1 の値が必要だからです。したがって、ノットが 1、2、3 の場合、1 の、1 と 2 の間、2 と 3 の間、3 の後の値が必要で、合計すると 4 つの値になります。基本的に、8 より前の関数の値を把握する必要があります。たとえば、次のことができます。

# Notice I added a value in front of beta_dec. You should add the real value.
beta_dec=c(.0453196,.0453196,-.0254566,-.0156608,-.0015202,-.0026819) 
temp=seq(8,20,by=3)
graph<-stepfun(temp,beta_dec,f=0)
plot(graph)
于 2012-05-01T16:31:02.933 に答える