2016-12-14 8 views
1

I 2列の時系列データセットを有する:x「は毎時」連続温度データ及びyであるが、定期的に数週間にわたって(周期的サンプルは、毎日午前5時、午後、午後8時に採取)応答データをサンプリングします。rollapply

私は2ラグを行いたい)は、1時間刻みで0-24時間によるデータ

1)(一定のすべての私のyのデータをプロット)対ますます遅れのxのデータ(シフトxデータを分析すること、すなわちに近づきますxは午後6時、午後は午後6時。 (午後6時)

2)1)と同じですが、累積シフト、つまり「時間遅れ」の累積ラグウィンドウが0 :24 Xデータ1のステップと、Yデータに対してテスト すなわちX午後6のY対午後6時。 (平均6pm - 5pm前日)

私は線形モデル(lm)を "各ラグシナリオ(0から24)のXを 『シフト「対』 Yとラグ、LMのp値の数のカラムを持つテーブルを作ります。およびAdj。 R2のlm)ので、 "x"の遅れと累積平均遅れがyデータを最もよく説明することが分かります。

基本的にそれは「cummean」または「rollapply」機能と同じであるが、逆方向に働くが、私はこれを行うRで何かを見つけることができませんでした。 Xのデータを反転する必要があるため、Xのデータを維持する必要があります。

すべてのデータを処理するには 'for'ループが必要です0遅れシングルランは次のようになります

「i」が遅れているとの各ラグ:

#Creating dummy data 

x<- zoo(c(10,10.5,10.5,11,11.5,12,12.5,12,12,12.5,13,12.5,12,12,11.5,10.5), as.Date(1:16)) 
y<- zoo(c(rep("NA",3),40,rep("NA",3),45,rep("NA",3),50,rep("NA",3),40), as.Date(1:16)) 
z<-merge(x, y, all = FALSE) 
z 

reslt<-lm(z$y~z$x) 
a<-summary(reslt)$coefficients[2,4] 
b<-summary(reslt)$adj.r.squared 

ResltTable<-c(a,b) 
colnames(ResltTable)<-c("p-value","Adj. R^2") 

ありがとう!

答えて

0

これは、xの値に対して、逆戻りしてiを繰り返すことになります。 「NA」は、NAを使用する必要がある場合に使用されることに注意してください。また、質問は毎時を指しますが、毎日のデータを提供するので、毎日の遅れを表示します。 dyn$lmは、自動整列を追加してlmを実行します。 10、...、2、私たちは、ラグ0、1のためにこれを実行した(DYNの新しいバージョンがR.の開発版ではRの変化に対処している昨日CRANにリリースされたことに注意してください)しかし、あなたはより多くのデータを持っている場合それをより高い値まで実行することができます。あなたが逆方向に遅れるしたい場合は、lagi-iを交換してください。 0からiまでのすべてのラグを使用する場合は、lag(x, 0:-i)を使用し、cbindステートメントを適切に調整します。

library(dyn) # also loads zoo 


x <- zoo(c(10,10.5,10.5,11,11.5,12,12.5,12,12,12.5,13,12.5,12,12,11.5,10.5), as.Date(1:16)) 
y <- zoo(c(rep(NA,3),40,rep(NA,3),45,rep(NA,3),50,rep(NA,3),40), as.Date(1:16)) 
z < -merge(x, y, all = FALSE) 
z 


k <- 10 # highest lag to consider 
tab <- t(sapply(0:10, function(i) { 
    fm <- dyn$lm(y ~ lag(x, -i), z) 
    s <- summary(fm) 
    cbind(i, coef(fm)[1], coef(fm)[2], coef(s)[2, 4], s$adj.r.squared) 
})) 
colnames(tab) <- c("Lag", "Intercept", "Slope", "P Value", "Adj R Sq") 
tab 

与える:

> tab 
     Lag Intercept  Slope P Value Adj R Sq 
[1,] 0 -13.750000 5.0000000 0.04653741 0.8636364 
[2,] 1 -2.542373 3.8983051 0.09717103 0.7226502 
[3,] 2 -1.944444 3.8888889 0.29647353 0.2424242 
[4,] 3 14.651163 2.5581395 0.49421946 -0.1162791 
[5,] 4 70.357143 -2.1428571 0.78770438 -0.7857143 
[6,] 5 53.571429 -0.7142857 0.87896228 -0.9285714 
[7,] 6 58.461538 -1.1538462 0.84557904 -0.8846154 
[8,] 7 57.884615 -1.1538462 0.84557904 -0.8846154 
[9,] 8 160.000000 -10.0000000  NaN  NaN 
[10,] 9 102.500000 -5.0000000  NaN  NaN 
[11,] 10 120.000000 -6.6666667  NaN  NaN 
関連する問題