0

次のような時系列データがあります。

library(xts)
library(splines)
set.seed(123)
time <- seq(as.POSIXct("2015-09-01"),as.POSIXct("2015-09-01 23:59:59"),by="hour")
ob <- xts(rnorm(length(time),150,5),time))

オブジェクトobは時系列オブジェクトです。ここで、スプライン回帰を実行したいと思います。結び目を午前 7 時と午後 4 時に設定したい 次のステートメントはRこれを保証しますか?

ns(ob,knots = c(7,16)) # 7 corresponds to 7 AM and 16 corresponds to 4 PM

また、ノットが指定された時間に配置されていることをクロスチェックするにはどうすればよいですか?

4

1 に答える 1

2

あなたは一種の間違った軌道に乗っています。時間に合わせて観測を回帰したいようですので、実際には観測ではなく時間インデックスを にフィードする必要がありobますns

y <- as.vector(ob)    ## observations
x <- 1:24    ## 24 hourse

次に、モデルを検討します。

y ~ ns(x, knots = c(7, 16))

ご覧のとおり、ここで「xts」オブジェクトを使用する必要はまったくありません。


ns計画行列を生成します。チェックを入れる

X <- ns(x, knots = c(7, 16))

次の属性が表示されます。

#attr(,"degree")
#[1] 3
#attr(,"knots")
#[1]  7 16
#attr(,"Boundary.knots")
#[1]  1 24
#attr(,"intercept")
#[1] FALSE
#attr(,"class")
#[1] "ns"     "basis"  "matrix"

「ノット」フィールドは、内部ノットの位置に関する情報を提供します。

于 2016-10-21T05:50:45.740 に答える