从线性回归输出中获得每组的平均得分

时间:2015-12-12 16:10:01

标签: r statistics linear-regression

我运行线性回归预测性别,种族及其相互作用对生活的满意度。

lm2 <-lm(nids$satisfaction~nids$male+nids$race+nids$male:nids$race)

这是一个输出:

Call:
lm(formula = nids$satisfaction ~ nids$male + nids$race + nids$male:nids$race)

Residuals:
    Min      1Q  Median      3Q     Max 
-6.6613 -1.3366 -0.0485  1.7378  4.9515 

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)          4.17751    0.05467  76.410  < 2e-16 ***
nids$male            0.39318    0.08564   4.591 4.45e-06 ***
nids$race            0.87095    0.03421  25.459  < 2e-16 ***
nids$male:nids$race -0.17947    0.05261  -3.411 0.000649 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.358 on 12016 degrees of freedom
Multiple R-squared:  0.07414,   Adjusted R-squared:  0.07391 
F-statistic: 320.7 on 3 and 12016 DF,  p-value: < 2.2e-16

我需要提供(1)每个性别组以及(2)每个种族组(总共4个)的生活满意度的平均分数。

那么,我怎么能用R做呢?我知道我可以汇总数据,但有一个提示,我可以使用一些系数来计算性别和种族群体的满意度平均值。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

一种快速的方法:

malenids <- nids[nids$male == 1, ]
femalenids <- nids[nids$male == 0, ]
lapply(split(malenids, malenids$race), function(x) mean(x$satisfaction))
lapply(split(femalenids, femalenids$race), function(x) mean(x$satisfaction))