来自多个回归输出的摘要数据帧 [英] summary dataframe from several multiple regression outputs
问题描述
GroupNetReturnsStockPickers< - read.csv(GroupNetReturnsStockPickers.csv,header =
ModelGroupNetReturnsStockPickers< - lm(StockPickersNet〜Mkt.RF + SMB + HML + WML,data = GroupNetReturnsStockPickers)
名称(GroupNetReturnsStockPickers)
总结(ModelGroupNetReturnsStockPickers)
哪些给我的摘要输出:
调用:
lm(公式= StockPickersNet〜Mkt.RF + SMB + HML + WML,data = GroupNetReturnsStockPickers)
剩余:
最小1Q中位数3Q最大
-0.029698 -0.005069 -0.000328 0.004546 0.041948
系数:
估计标准错误t值Pr(> | t |)
(截取)4.655e-05 5.981e-04 0.078 0.938
Mkt.RF -1.713e-03 1.202e-02 -0.142 0.887
SMB 3.006e-02 2.545e-02 1.181 0.239
HML 1.970e-02 2.350e-02 0.838 0.403
WML 1.107e-02 1.444e-02 0.766 0.444
残差标准错误:251自由度上的0.009029
多个R平方:0.01033,调整后的R平方:-0.005445
F统计:0.6548在4和251 DF,p值:0.624
这是完美的。然而,我正在做10次多重OLS回归,而且我想在数据框中创建自己的汇总输出,其中我提取了所有10个分析的截取估计值,t值估计值和p值。 。因此,它将是一个10x3,其中列名称将是Model1,Model2,..,Model10和行名称:Value,t-value和p-Value。
感谢任何帮助。
有几个软件包执行此操作(stargazer和texreg)以及 outreg 。
无论如何,如果你只对这里的拦截感兴趣是一种方法:
适合< - list()#创建空列表来存储模型
适合$ model1< - lm(Ozone〜Solar.R,data = airquality)
适合$ model2< - lm(Ozone〜Solar.R + Wind,data = airquality)
适合$ model3< - lm(Ozone〜Solar.R + Wind + Temp,data = airquality)
#组合拦截的结果
smry< - do.call(rbind ,$($)
rownames(smry)< - paste0(model,1:3)
t( smry)
#RESULT:
#model1 model2 model3
#估算18.598727772 7.724604e + 01 -64.342078929
#标准错误6.747904163 9.067507e + 00 23.054724347
#t值2.756222869 8.518995e + 00 -2.790841389
#Pr(> | t |)0.006856021 1.052118e-13 0.006226638
I am doing multiple OLS regressions. I have used the following lm function:
GroupNetReturnsStockPickers <- read.csv("GroupNetReturnsStockPickers.csv", header=TRUE, sep=",", dec=".")
ModelGroupNetReturnsStockPickers <- lm(StockPickersNet ~ Mkt.RF+SMB+HML+WML, data=GroupNetReturnsStockPickers)
names(GroupNetReturnsStockPickers)
summary(ModelGroupNetReturnsStockPickers)
Which gives me the summary output of:
Call:
lm(formula = StockPickersNet ~ Mkt.RF + SMB + HML + WML, data = GroupNetReturnsStockPickers)
Residuals:
Min 1Q Median 3Q Max
-0.029698 -0.005069 -0.000328 0.004546 0.041948
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.655e-05 5.981e-04 0.078 0.938
Mkt.RF -1.713e-03 1.202e-02 -0.142 0.887
SMB 3.006e-02 2.545e-02 1.181 0.239
HML 1.970e-02 2.350e-02 0.838 0.403
WML 1.107e-02 1.444e-02 0.766 0.444
Residual standard error: 0.009029 on 251 degrees of freedom
Multiple R-squared: 0.01033, Adjusted R-squared: -0.005445
F-statistic: 0.6548 on 4 and 251 DF, p-value: 0.624
This is perfect. However, I am doing a total of 10 multiple OLS regressions, and I wish to create my own summary output, in a data frame, where I extract the Intercept Estimate, the tvalue estimate, and the p-value, for all 10 analyzes individually. Hence it would be a 10x3, where the columns names would be Model1, Model2,..,Model10, and row names: Value, t-value and p-Value.
I appreciate any help.
There's a few packages that do this (stargazer and texreg) as well as this code for outreg.
In any case, if you are only interested in the intercept here is one approach:
fits <- list() # Create empty list to store models
fits$model1 <- lm(Ozone ~ Solar.R, data = airquality)
fits$model2 <- lm(Ozone ~ Solar.R + Wind, data = airquality)
fits$model3 <- lm(Ozone ~ Solar.R + Wind + Temp, data = airquality)
# Combine the results for the intercept
smry <- do.call(rbind, lapply(fits, function(z) t(summary(z)$coefficients[1, ])))
rownames(smry) <- paste0("model", 1:3)
t(smry)
# RESULT:
# model1 model2 model3
# Estimate 18.598727772 7.724604e+01 -64.342078929
# Std. Error 6.747904163 9.067507e+00 23.054724347
# t value 2.756222869 8.518995e+00 -2.790841389
# Pr(>|t|) 0.006856021 1.052118e-13 0.006226638
这篇关于来自多个回归输出的摘要数据帧的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!