如何解决蒙特卡洛检验R
我有以下数据:
[链接到数据](https://www.dropbox.com/s/29zgm8nm39qyh7m/data_rainfall.csv?dl=0)
抱歉,但这是我可以为此提供的最小数据。 此数据集中有四列(年,月,日,阶段和降雨)。
我想以这种方式执行蒙特卡洛测试:
(1)至少连续3天降雨少于5毫米/天,该阶段为阶段1。
(2)在降雨列保持不变的情况下置换降雨列。
(3)获得1000次重复后计数大于观察到的计数的概率。
到目前为止,我有以下脚本:
dat2<-dat[,c("phase","Rainfall")]
countruns = function(x){
RLE = rle(x$Rainfall<5)
sum(RLE$lengths==1)
}
sim.test <- function (x){
x$Rainfall <- sample(x$Rainfall)
countruns(x)
}
runs <- 1000
pval<-(sum(sim>=countruns(dat2))+1)/(runs+1)
上面的脚本是错误的。
-
如何基于RLE过滤数据,以使阶段为阶段1? 在上面的代码中,此部分缺少某些内容:
sum(RLE $ lengths == 1)
应该是这样的:
sum(RLE$lengths==1 & phase == 1)
- 更重要的是,我不确定这是否正确。我只想测试观察到的计数在第1阶段是否偶然发生。
关于如何在R中正确执行此操作的任何建议? 非常感谢您提供的任何帮助。
Lyndz
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。