代码之家  ›  专栏  ›  技术社区  ›  jjaskulowski

glm公式“:”运算符?它做什么?[已关闭]

  •  0
  • jjaskulowski  · 技术社区  · 10 年前

    文件中说:

    表格的说明?第一:第二?表示通过将“first”中的所有项与“second”中所有项的交互作用获得的一组项。规范“first*second”表示“first”和“second”的交叉。这与“第一+第二+第一:第二”相同。

    但是,将“第一”中的所有项与“第二”中的全部项进行交互,这意味着什么?

    2 回复  |  直到 10 年前
        1
  •  2
  •   Spacedman    10 年前

    如果 first 是性和 second 是眼睛颜色,这意味着你的分析被分为性别/眼睛颜色类别,因此你的输出参数与蓝眼睛男性、绿眼睛女性等相关。如果你的公式是 Y~first:second .

    使用 first*second 你得到的公式包括眼睛颜色的总体参数(或一组)、性别的另一个参数以及配对因素。如果你的公式是 Y~first*second .

    如果你这样做 Y~first + second 每个因素都有单独的参数。

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

        2
  •  1
  •   jlhoward    10 年前

    您可以在下面简单地看到这是如何工作的:

    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.
    

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