如何从您的测试输出对象中提取各种统计信息,例如teststat和pvalue等

时间:2019-01-29 03:39:05

标签: r

我需要对多个时间序列进行平稳性测试。我使用ur.df包中的urca函数来完成它们。然后,我将每个adf测试的输出存储为列表列表-因为每个测试本身都是列表。

我需要能够将所有参数存储起来,例如从输出到数据帧。有办法吗?

我知道我可以提取诸如@teststat@cval之类的一些参数,但是如何通过lm回归输出尽可能地提取所有参数使用broom

例如,如果这是ur.df函数的输出

test1 <- ur.df(usage_1601_1612, type = "none", lags = 1, selectlags = "AIC")

test1的内容如下所示

Test regression none 

Call:
lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)

Residuals:
    Min      1Q  Median      3Q     Max 
-6093.2 -1385.8  -100.9  1414.3  6962.8 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
z.lag.1    -0.004212   0.005191  -0.811   0.4177  
z.diff.lag -0.126685   0.052161  -2.429   0.0156 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2351 on 362 degrees of freedom
Multiple R-squared:  0.01838,   Adjusted R-squared:  0.01296 
F-statistic:  3.39 on 2 and 362 DF,  p-value: 0.03479


Value of test-statistic is: -0.8114 

Critical values for test statistics: 
      1pct  5pct 10pct
tau1 -2.58 -1.95 -1.62

这是我运行的常规代码

urresultorigobjects <- 
   lapply(usagextsobjects, function(x) {
     summary(ur.df(x, type = "none", lags = 1, selectlags = "AIC"))
   })

这将生成列表urresultorigobjects,其中包含对列表xts中的每个usagextsobjects对象进行平稳性测试的输出。

我希望能够捕获所有输出并将相关信息存储在数据帧中,以供基于代码的参考以用于下游处理。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不知道是否有更简单的方法,但我是这样管理的:

df.groupby(["id", "experiment"])["observation"].value_counts(normalize=True).unstack(fill_value=0).stack()