【发布时间】:2018-06-16 22:21:12
【问题描述】:
我正在尝试从正在运行的 lepage 测试中获取 lepage 测试统计的时间序列。
时间窗口是 9 年。
这是我使用的数据(1961 年到 2009 年)
structure(list(Year = 1961:2009, Winter = c(11.5714803313, 9.3664362519,
14.3399332592, 14.1548003072, 10.0271889401, 16.1278801843, 7.5481110699,
2.6131336406, 14.9045698925, 11.9352150538, 19.3715609937, 8.3156298003,
20.686328725, 9.9734639017, 18.7517612162, 19.7309907834, 4.5365207373,
13.7009600614, 8.3644790508, 8.325, 8.4933179724, 9.4112135177,
5.2000370782, 8.7163210445, 9.0083333333, 3.449078341, 10.2567296997,
13.4682795699, 6.877764977, 6.4040706605, 6.9916944753, 6.4950076805,
16.0668202765, 7.3995391705, 18.5592880979, 7.4816052227, 3.5526113671,
24.7658218126, 17.7594364108, 18.2832565284, 10.2024577573, 5.6401689708,
8.047942158, 7.8697388633, 18.4008832565, 9.9166282642, 27.385168706,
21.0661290323, 4.7410138249)), .Names = c("Year", "Winter"), class =
"data.frame", row.names = c(NA,
-49L))
我正在使用 nonpar 包进行 lepage 测试 Link to package
我不知道如何在 R 中实现这一点。 到目前为止,这是我的脚本(这是错误的):
library(nonpar)
dat<-read.csv("test.csv",header=T)
x <- as.numeric(dat$Winter)
for (i in 1:length(x)){
#window
n = 9
stat<-lepage.test(x[i],x[i:i+n])$obs.stat
}
return(stat)
}
我想做什么:
[1] 以 9 年为窗口进行 lepage 测试。在上面的测试数据中,计算应该只从 1970 年开始(1961 年到 1969 年和 1970 年到 1978 年)。那么1971年的值就是(1962年到1970年)和(1971年到1979年)数据之间的lepage检验,以此类推。
[2] 我也尝试过使用 zoo 包中的“rollapplyr”功能,但我不确定这是否正确。
library(zoo)
test<-rollapplyr(x, 9, function(u) lepage.test(u,u+1)$obs.stat)
[3] 对于如何在 R 中实现这一点,我将不胜感激。
【问题讨论】:
标签: r