我想在使用“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()似乎不够。
非常感谢您提供的任何帮助!
答案 0 :(得分:3)
首先,从函数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")
只有当您在模型上调用summary()
函数时,才会计算p值,t值等。此时实际调用函数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