glm formula":"运营商?它有什么作用?

时间:2014-07-11 16:47:16

标签: r formula glm

文档说:

表格的规格?第一:第二?表示通过将“first”中的所有术语与“second”中的所有术语进行交互而获得的术语集。规范'first * second'表示'first'和'second'的交叉。这与'first + second + first:second'相同。

但是,将'first'中的所有术语与'second'中的所有术语进行交互是什么意思?

2 个答案:

答案 0 :(得分:2)

如果first是性别且second是眼睛颜色,则表示您的分析分为性别/眼睛颜色类别,因此您的输出参数与蓝眼睛男性,绿眼睛女性等有关。如果您的公式为Y~first:second,则为此。

使用first*second公式,您可以得到眼睛的整体参数(或一组),另一个用于性别和配对因子。如果您的公式为Y~first*second,则可以获得此结果。

如果您执行Y~first + second,则会为每个因素获得单独的参数。

实际上这可能是stats.stackexchange.com问题......

答案 1 :(得分:1)

您可以在下面看到它的工作原理:

df <- mtcars[1:5]    # first 5 cols of mtcars
summary(glm(mpg~cyl+disp,df,family=gaussian))
# ...
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept) 34.66099    2.54700  13.609 4.02e-14 ***
# cyl         -1.58728    0.71184  -2.230   0.0337 *  
# disp        -0.02058    0.01026  -2.007   0.0542 .  
# ---
summary(glm(mpg~cyl:disp,df,family=gaussian))
# ...
# Coefficients:
#               Estimate Std. Error t value Pr(>|t|)    
# (Intercept) 27.0833812  1.0251545  26.419  < 2e-16 ***
# cyl:disp    -0.0043138  0.0005157  -8.364 2.46e-09 ***
# ---
summary(glm(mpg~cyl*disp,df,family=gaussian))
# ...
# Coefficients:
#              Estimate Std. Error t value Pr(>|t|)    
# (Intercept) 49.037212   5.004636   9.798 1.51e-10 ***
# cyl         -3.405244   0.840189  -4.053 0.000365 ***
# disp        -0.145526   0.040002  -3.638 0.001099 ** 
# cyl:disp     0.015854   0.004948   3.204 0.003369 ** 
# ---
summary(glm(mpg~(cyl+disp):(hp+drat),df,family=gaussian))
# ...
# Coefficients:
#               Estimate Std. Error t value Pr(>|t|)    
# (Intercept) 27.7196970  3.7574472   7.377 6.18e-08 ***
# cyl:hp      -0.0147027  0.0051353  -2.863  0.00802 ** 
# cyl:drat     0.7146769  0.3432173   2.082  0.04692 *  
# disp:hp      0.0003444  0.0001393   2.473  0.01998 *  
# disp:drat   -0.0282752  0.0082855  -3.413  0.00204 ** 

所以:

mpg ~ cyl+disp is equivalent to mpg = a + b*cyl + c*disp
mpg ~ cyl:disp is equivalen to  mpg = a + b*cyl*disp
mpg ~ cyl*disp is equivalent to mpg = a * b*cyl + c*disp + d*cyl*disp
mpg ~ (cyl+disp):(hp+drat) takes pairwise interactions only.

通常,在没有主要影响的情况下考虑交互的模型不是一个好主意。