【问题标题】:Save P values from R ivreg AER package or tsls sem package从 R ivreg AER 包或 tsls sem 包中保存 P 值
【发布时间】:2013-07-24 05:42:46
【问题描述】:

我想在使用“AER”包中的 ivreg 或“sem”包中的 tsls 后提取 Pr(>|t|) 列。两者都给出了一个相似的术语列表,似乎没有提供我正在寻找的内容。

ivregest <- ivreg(mdetect~bednet | treat1+treat2, data=simdata)
> names(ivregest)
 [1] "coefficients"  "residuals"     "fitted.values" "weights"      
 [5] "offset"        "n"             "nobs"          "rank"         
 [9] "df.residual"   "cov.unscaled"  "sigma"         "call"         
 [13] "formula"       "terms"         "levels"        "contrasts"    
 [17] "model"         "y"

tslsest <-  tsls(mdetect~bednet , ~ treat1+treat2, data=simdata)
> names(tslsest)
[1] "n"             "p"             "coefficients"  "V"            
[5] "s"             "residuals"     "response"      "model.matrix" 
[9] "instruments"   "weights"       "response.name" "formula"

虽然看起来很有希望,但 p 仅提供在第二阶段回归中估计的参数数量的计数。然而,如果我对这些对象中的任何一个使用 summary 命令,它将返回一个 p 值。

所以我真的很想回答两个问题: 1. 我在哪里可以找到 p 值? 2. 我怎样才能找到对象的所有隐藏属性,以便下次查找 F-stat 或任何我知道在哪里查找的东西? names() 似乎还不够。

非常感谢您提供的任何帮助!

【问题讨论】:

标签: r statistics packages regression economics


【解决方案1】:

首先,一些模型取自函数ivreg的帮助文件。

library(AER)
data("CigarettesSW")
CigarettesSW$rprice <- with(CigarettesSW, price/cpi)
CigarettesSW$rincome <- with(CigarettesSW, income/population/cpi)
CigarettesSW$tdiff <- with(CigarettesSW, (taxs - tax)/cpi)

## model 
fm <- ivreg(log(packs) ~ log(rprice) + log(rincome) | log(rincome) + 
            tdiff + I(tax/cpi),
            data = CigarettesSW, subset = year == "1995")

p 值、t 值等仅在您在模型上调用 summary() 函数时计算。这时候实际上函数summary.ivreg()被调用了。因此,如果您只需要获取 p 值,则应将 summary() 的结果保存为某个对象。该对象(列表)包含几个部分,系数存储在名为coefficients 的矩阵中。

sum.res<-summary(fm)
names(sum.res)
 [1] "call"          "terms"         "residuals"     ""              "coefficients"  "sigma"        
 [7] "df"            "r.squared"     "adj.r.squared" "waldtest"      "vcov"   

获取所有系数:

sum.res$coefficients
               Estimate Std. Error   t value     Pr(>|t|)
(Intercept)   9.8949555  1.0585599  9.347563 4.120910e-12
log(rprice)  -1.2774241  0.2631986 -4.853461 1.496034e-05
log(rincome)  0.2804048  0.2385654  1.175379 2.460247e-01

p 值存储在该矩阵的 4. 列中:

sum.res$coefficients[,4]
 (Intercept)  log(rprice) log(rincome) 
4.120910e-12 1.496034e-05 2.460247e-01 

【讨论】:

  • 这正是我想要的!非常感谢!
  • @fsmart:对于许多回归函数来说,这几乎是标准行为。也是这种情况,你经常可以用coef(summary(model))得到系数矩阵。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2018-05-10
  • 2019-10-23
相关资源
最近更新 更多