从具有多个统计测试结果列表的列表中提取统计值

时间:2018-07-27 18:44:10

标签: r statistics time-series normal-distribution stat

我对Ljung-Box进行了36次滞后的r独立性测试,并将结果存储在列表中。

for (lag in c(1:36)){
box.test.list[[lag]] <- (Box.test(btcr, type = "Ljung", lag))
}

我想提取p值以及检验统计量(X平方),然后将它们打印出来看起来像:

X平方= 100,p值= 0.0001

我也想单独将其拉出p值,而不是仅仅吐出数字,我想要类似的东西:

[1] p值= 0.001

[2] p值= 0.0001

,依此类推。能做到吗?

1 个答案:

答案 0 :(得分:2)

带有测试数据

set.seed(7)
btcr <- rnorm(100)

您可以使用进行所有测试

box.test.list <- lapply(1:36, function(i) Box.test(btcr, type = "Ljung", i))

,然后使用

将所有结果放入data.frame
results <- data.frame(
  lag = 1:36, 
  xsquared = sapply(box.test.list, "[[", "statistic"), 
  pvalue = sapply(box.test.list, "[[", "p.value")
)

然后您可以根据自己的喜好进行操作

head(results)
#   lag  xsquared     pvalue
# 1   1  3.659102 0.05576369
# 2   2  7.868083 0.01956444
# 3   3  8.822760 0.03174261
# 4   4  9.654935 0.04665920
# 5   5 11.190969 0.04772238
# 6   6 12.607454 0.04971085