疫学と医療統計学と遺伝学と時々、大学院生活

疫学を専門とする大学院生の研究に関する備忘録的ページ。

Rでlag effectを探索するときのベクトル生成

今回は気温や湿度、大気中の汚染物質が我々の健康に及ぼす影響について分析する際に用いたいLag effectについてのベクトル生成について記述する。

Aというベクトル(1から100までの長さ100のベクトル)に関して過去15日の指標を蓄積したベクトルを作成するとする。

lag.sum <- function(a,L0,L1)
## L0 is the smallest lag, L1 the largest
{ n<-length(a)
b<-rep(0,n-L1)
for (i in 0:(L1-L0)) 
b <- b + a[(i+1):(n-L1+i)]
b
}
A <- 0:100
lag.sum(A, 0, 15)

出力はこうなる

 [1]  136  152  168  184  200  216  232  248  264  280  296  312  328  344  360
[16]  376  392  408  424  440  456  472  488  504  520  536  552  568  584  600
[31]  616  632  648  664  680  696  712  728  744  760  776  792  808  824  840
[46]  856  872  888  904  920  936  952  968  984 1000 1016 1032 1048 1064 1080
[61] 1096 1112 1128 1144 1160 1176 1192 1208 1224 1240 1256 1272 1288 1304 1320
[76] 1336 1352 1368 1384 1400 1416 1432 1448 1464 1480

この値に対して、単純な平均を求める

round(lag.sum(vector, 0, 15)/15, 3)
[1]  9.067 10.133 11.200 12.267 13.333 14.400 15.467 16.533 17.600 18.667
[11] 19.733 20.800 21.867 22.933 24.000 25.067 26.133 27.200 28.267 29.333
[21] 30.400 31.467 32.533 33.600 34.667 35.733 36.800 37.867 38.933 40.000
[31] 41.067 42.133 43.200 44.267 45.333 46.400 47.467 48.533 49.600 50.667
[41] 51.733 52.800 53.867 54.933 56.000 57.067 58.133 59.200 60.267 61.333
[51] 62.400 63.467 64.533 65.600 66.667 67.733 68.800 69.867 70.933 72.000
[61] 73.067 74.133 75.200 76.267 77.333 78.400 79.467 80.533 81.600 82.667
[71] 83.733 84.800 85.867 86.933 88.000 89.067 90.133 91.200 92.267 93.333
[81] 94.400 95.467 96.533 97.600 98.667

前回の更新ではミスがあったようで大変失礼しました。

20160330
RF