You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用funtimes包带自相关增强的Mann-Kendall检验报错求助

解决notrend_test报错:missing values in 'filter'

问题根源

报错核心原因是样本量过小(仅8个观测值),但参数设置不符合小样本场景:

  • j = c(8:11):Sieve Bootstrap的阶数j不能超过样本量n,你设置的j最大值11远大于n=8,导致AR模型估计时产生缺失值,进而触发filter函数报错。
  • 同时,factor.length设置为c("user.defined", "adaptive.selection")搭配过大的j,在小样本下会导致模型估计失败。

修正后的代码

针对你的小样本数据,调整参数如下:

library(funtimes)

Refenu_summary_byyearoC <- data.frame(
  year = c(2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019),
  Total_Enucleation = c(748, 762, 817, 844, 891, 940, 911, 970)
)

# 调整参数适配小样本:使用自适应阶数选择
apply(Refenu_summary_byyearoC["Total_Enucleation"], 2, function(x) {
  notrend_test(x, B = 1000, test = "MK",
               ar.method = "HVK", ar.order = NULL,
               factor.length = "adaptive.selection",
               q = 3/4)$p.value
})

如果坚持手动设置阶数j,必须保证j的最大值小于样本量:

apply(Refenu_summary_byyearoC["Total_Enucleation"], 2, function(x) {
  notrend_test(x, B = 1000, test = "MK",
               ar.method = "HVK", ar.order = NULL,
               factor.length = "user.defined",
               j = c(2:4),  # j的取值必须小于样本量n=8
               q = 3/4)$p.value
})

补充说明

  • 小样本下使用Sieve Bootstrap建议优先选择自适应参数设置(factor.length = "adaptive.selection"),让函数自动匹配合适的阶数,避免手动设置出错。
  • 你的数据整体呈现上升趋势(仅2018年略有下降),检验结果需结合实际业务场景解读。

内容的提问来源于stack exchange,提问作者Nicolas Pensel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:33:27