希望简单的编码问题:如何在函数中包含统计测试。具体来说,我正在使用时间序列,我想标记非静止的曲线。我在R中需要这样的东西:
flag<- list()
for (i in 1:length(obsv)) {
if adf.test(i) FAIL {
append(flag, i)
}}
使用可重复的示例进行编辑:
>df
DATE ID VALUE
2012-03-06 1 5.67
2012-03-07 1 3.45
2012-03-08 1 4.56
2012-03-09 1 20.30
2012-03-10 1 5.10
2012-03-06 2 5.67
2012-03-07 2 3.45
2012-03-08 2 4.56
2012-03-09 2 5.28
2012-03-10 2 5.10
2012-03-06 3 5.67
2012-03-07 3 7.80
2012-03-08 3 8.79
2012-03-09 3 9.43
2012-03-10 3 10.99
你可以看到,物体2是静止的,但是3表现出趋势,1表示3/09的脉冲。因此我想标记1和3。
>library(tseries)
>adf.test(df[which(df$ID==1), 3])
Augmented Dickey-Fuller Test
data: data
Dickey-Fuller = 11.1451, Lag order = 16, p-value = 0.01
null hypothesis: non-stationary
>adf.test(df[which(df$ID==2), 3])
Augmented Dickey-Fuller Test
data: data
Dickey-Fuller = 11.1451, Lag order = 16, p-value = 0.99
alternative hypothesis: stationary
>adf.test(df[which(df$ID==3), 3])
Augmented Dickey-Fuller Test
data: data
Dickey-Fuller = 11.1451, Lag order = 16, p-value = 0.04
null hypothesis: non-stationary
我想要的是将测试结果合并到一个函数中。