【问题标题】:Extracting values from ADF-test with loop使用循环从 ADF 测试中提取值
【发布时间】:2019-09-10 08:15:05
【问题描述】:

我正在使用来自 fpp2 包的数据集 uschange 进行建模,并使用 vars 包执行增强的 Dickey-Fuller 单位根测试(ADF 测试)。在此示例中,我有五个系列,名称分别为“Consumption”、“Income”、“Production”、“Savings”和“Unemployment”。您可以查看以下代码:

 #CODE
library(fpp2)
library(vars)
#CODE
library(fpp2)
library(vars)

MY_DATA<-data.frame(uschange)
MY_ADF_TESTS=apply(MY_DATA,2,function(x){
  return(
    list(
      #Constant 
      summary(ur.df(x, type = "drift",selectlags = c("BIC"))),
      summary(ur.df(diff(x), type = "drift",selectlags = c("BIC"))),
      #Trend
      #Constant 
      summary(ur.df(x, type = "trend",selectlags = c("BIC"))),
      summary(ur.df(diff(x), type = "trend",selectlags = c("BIC")))
      #summary(ur.df(x, type = "none",selectlags = c("BIC"))) 
    )
  )
})

您可以在下面看到此列表的结构:

所以下一步应该从这个列表中的每个系列中提取测试统计数据和临界值并放入表中。测试统计数据和临界值位于此位置,您可以在下面的代码中看到第一个系列“消耗”

MY_ADF_TESTS$Consumption[[1]]@teststat[1]
MY_ADF_TESTS$Consumption[[1]]@cval[3:3]

MY_ADF_TESTS$Consumption[[2]]@teststat[1]
MY_ADF_TESTS$Consumption[[2]]@cval[3:3]

MY_ADF_TESTS$Consumption[[3]]@teststat[1]
MY_ADF_TESTS$Consumption[[3]]@cval[3:3]

MY_ADF_TESTS$Consumption[[4]]@teststat[1]
MY_ADF_TESTS$Consumption[[4]]@cval[3:3]

那么任何人都可以帮助如何使用 for 循环为每五个系列执行此操作并放入一个包含两列的表中。第一个可以包含来自 teststat 的数据,第二个包含每个五个系列的 cval 数据?

【问题讨论】:

    标签: r for-loop


    【解决方案1】:

    我们可以将lapply 用于MY_ADF_TESTSsapply 用于MY_ADF_TESTS 中的每个列表

    lapply(MY_ADF_TESTS, function(x) t(sapply(x, function(y) 
                         c(testset = y@teststat[1], cval = y@cval[3:3]))))
    
    
    #$Consumption
    #        testset  cval
    #[1,]  -6.165438 -2.88
    #[2,] -16.489124 -2.88
    #[3,]  -6.312517  8.43
    #[4,] -16.443306  8.43
    
    #$Income
    #        testset  cval
    #[1,]  -9.215409 -2.88
    #[2,] -17.981296 -2.88
    #[3,]  -9.328318  8.43
    #[4,] -17.933000  8.43
    
    #$Production
    #        testset  cval
    #[1,]  -7.006126 -2.88
    #[2,] -13.423726 -2.88
    #[3,]  -7.058146  8.43
    #[4,] -13.389136  8.43
    
    #$Savings
    #       testset  cval
    #[1,] -11.06383 -2.88
    #[2,] -17.70920 -2.88
    #[3,] -11.03983  8.43
    #[4,] -17.66052  8.43
    
    #$Unemployment
    #        testset  cval
    #[1,]  -5.784886 -2.88
    #[2,] -12.754683 -2.88
    #[3,]  -5.771049  8.43
    #[4,] -12.725781  8.43
    

    【讨论】:

      猜你喜欢
      • 2014-08-06
      • 2015-07-22
      • 2021-10-04
      • 1970-01-01
      • 2018-03-05
      • 2019-05-28
      • 2011-01-22
      • 2021-03-20
      • 1970-01-01
      相关资源
      最近更新 更多