【问题标题】:R: Extracting values from summary()R:从 summary() 中提取值
【发布时间】:2015-09-14 23:14:14
【问题描述】:

我正在使用urca 包对单位根进行一些计算。 例如,让我们使用 urca 包中的以下数据集:

library(urca)
data(Raotbl3)
attach(Raotbl3)

应用 Augmented Dickey Fuller 测试如下所示:

lc.df <- ur.df(y=lc, lags=3, type='trend')
summary(lc.df)

作为回报,我们得到所有值的摘要。但是,我只想提取特定的值。可能的字段在这里:

slotNames(summary(lc.df))
#  [1] "classname" "test.name" "testreg"   "teststat"  "cval"      "bpoint"        "signif"    "model"     "type"      "auxstat"  
# [11] "lag"       "H"         "A"         "lambda"    "pval"      "V"             "W"         "P"       

有趣的是,

ur.df(y=lc, lags=3, type='trend')@teststat 
#             tau3  phi2  phi3
# statistic -2.239 3.738 2.597

ur.df(y=lc, lags=3, type='trend')@cval
#       1pct  5pct 10pct
# tau3 -4.04 -3.45 -3.15
# phi2  6.50  4.88  4.16
# phi3  8.73  6.49  5.47

工作得很好。但是,从“pval”或“lag”中提取值不起作用(返回“NULL”)。

当我查看here 时,我发现问题出现在每个“=NULL”的变量上。不确定它是否重要。

setMethod("summary", "ur.df", function(object){
  return(new("sumurca", classname="ur.df", test.name=object@test.name,     
             testreg=object@testreg, teststat=object@teststat, 
             cval=object@cval, bpoint=NULL, signif=NULL, 
             model=object@model, type=NULL, auxstat=NULL, lag=NULL, 
             H=NULL, A=NULL, lambda=NULL, pval=NULL, V=NULL, W=NULL, P=NULL))
})

知道如何解决这个问题吗?

【问题讨论】:

  • 它存储在那个testreg插槽中,你可以做with(as.list(lc.df@testreg$fstatistic), pf(value, numdf, dendf, lower=FALSE))
  • 如果是NULL,它就是NULL。仅仅因为插槽被命名并不意味着它包含一些东西。
  • 太棒了,它有效!你是怎么知道这个结构的?我问是因为我还需要包括“滞后”。
  • 已解决:summary(ur.df(merged_table_type$ks_sum, type = "none", lags = 12, selectlags = "AIC"))@testreg$fstatistic[2] 得到 numdf,这是滞后。

标签: r


【解决方案1】:

使用@获取插槽,然后照常获取:

summary(lc.df)@testreg$coefficients
summary(lc.df)@testreg$coefficients[-c(1,3),4]

【讨论】:

  • slot(lc.df, "testreg")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 1970-01-01
  • 1970-01-01
  • 2021-05-04
相关资源
最近更新 更多