楼主: danbaidong
11688 6

[问答] R中回归模型因子变量与连续变量交叉项的问题 [推广有奖]

  • 6关注
  • 7粉丝

已卖:1468份资源

副教授

23%

还不是VIP/贵宾

-

威望
0
论坛币
34755 个
通用积分
16.7446
学术水平
9 点
热心指数
26 点
信用等级
7 点
经验
67874 点
帖子
297
精华
0
在线时间
1067 小时
注册时间
2007-5-26
最后登录
2025-11-1

楼主
danbaidong 学生认证  发表于 2013-6-29 17:27:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

回归模型因子变量与连续变量交叉项的问题

在回归模型中引入因子变量与连续变量的交叉项,但发现连续变量的main effect不再显著,所以变为只考虑因子变量的main effect以及两者的interaction effects。查阅资料得知R中交叉项的引入可以用星号(*)也可以用冒号(:),但是后者前者自动包含了main effect interaction effects,但是后者就只有interaction effects,所以这里我用了冒号。但是在回归分析结果中发现交叉项中涉及的因子变量的水平并不一样,如果用星号,则是(总水平数-1),而如果是冒号,则是总水平数,而且交叉项中变量的先后顺序也有不同,不知道两个模型的区别在哪里?

案例代码和数据如下(请大家忽略实际意义),理论上来讲,两个模型的差别在于glm_colon模型中,包含了因子变量attmain effct,但是没有包含连续变量handmain effect,但是实际的结果却发现交叉项中涉及的att的水平也有所不同,glm_star只有4个水平,而glm_colon却有5个。不知道是什么原因?

test <- read.csv("test.csv")

head(test)

str(test)

test$att <- factor(test$att)

glm_star <- glm(formula = sex ~ hand * att, data = test,family=binomial)

glm_colon <- glm(formula = sex ~ att + hand : att, data = test,family=binomial)

summary(glm_star)

summary(glm_colon)


测试数据请移步:https://bbs.pinggu.org/a-1352379.html

想上传文件的,但是论坛总提示文件已存在,上传失败,只好麻烦各位了,谢谢!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:连续变量 回归模型 交叉项 interaction interact 模型

沙发
danbaidong 学生认证  发表于 2013-6-29 17:44:58
glm_star模型的结果是:
  1. Call:
  2. glm(formula = sex ~ hand * att, family = binomial, data = test)

  3. Deviance Residuals:
  4.      Min        1Q    Median        3Q       Max  
  5. -2.08675  -0.00017   0.00003   0.58697   1.70219  

  6. Coefficients:
  7.               Estimate Std. Error z value Pr(>|z|)
  8. (Intercept)   -822.097 180373.226  -0.005    0.996
  9. hand            36.547   8050.527   0.005    0.996
  10. att2           806.374 180373.227   0.004    0.996
  11. att3           618.353 213333.722   0.003    0.998
  12. att4           806.986 180373.227   0.004    0.996
  13. att5          -105.244 907182.330   0.000    1.000
  14. hand:att2      -35.720   8050.527  -0.004    0.996
  15. hand:att3      -26.359   9861.690  -0.003    0.998
  16. hand:att4      -35.883   8050.527  -0.004    0.996
  17. hand:att5        6.585  42117.477   0.000    1.000

  18. (Dispersion parameter for binomial family taken to be 1)

  19.     Null deviance: 39.892  on 28  degrees of freedom
  20. Residual deviance: 18.100  on 19  degrees of freedom
  21. AIC: 38.1

  22. Number of Fisher Scoring iterations: 20
复制代码

藤椅
danbaidong 学生认证  发表于 2013-6-29 17:45:44
glm_colon的结果是:
  1. Call:
  2. glm(formula = sex ~ att + hand:att, family = binomial, data = test)

  3. Deviance Residuals:
  4.      Min        1Q    Median        3Q       Max  
  5. -2.08675  -0.00017   0.00003   0.58697   1.70219  

  6. Coefficients:
  7.               Estimate Std. Error z value Pr(>|z|)
  8. (Intercept) -8.221e+02  1.804e+05  -0.005    0.996
  9. att2         8.064e+02  1.804e+05   0.004    0.996
  10. att3         6.184e+02  2.133e+05   0.003    0.998
  11. att4         8.070e+02  1.804e+05   0.004    0.996
  12. att5        -1.052e+02  9.072e+05   0.000    1.000
  13. att1:hand    3.655e+01  8.051e+03   0.005    0.996
  14. att2:hand    8.270e-01  5.625e-01   1.470    0.142
  15. att3:hand    1.019e+01  5.696e+03   0.002    0.999
  16. att4:hand    6.633e-01  6.983e-01   0.950    0.342
  17. att5:hand    4.313e+01  4.134e+04   0.001    0.999

  18. (Dispersion parameter for binomial family taken to be 1)

  19.     Null deviance: 39.892  on 28  degrees of freedom
  20. Residual deviance: 18.100  on 19  degrees of freedom
  21. AIC: 38.1

  22. Number of Fisher Scoring iterations: 20
复制代码

板凳
pandaxiong2012 发表于 2013-6-30 01:38:51
没太搞明白lz的main effect 和 interaction effects的区别,是不是main effect为由某因子引起的效应,而interaction effect是各个因子所综合引起的交互效应呢?而且因为glm_star模型把两者都考虑进去了所以其水平比后者小1,因而其自由度大1.不知道是不是可以这么个理解。

最近一直在学R,累坏了,而且进展太慢!

报纸
宝丁士心 发表于 2019-6-11 12:41:13
六年过去了,请问楼主知道为什么了吗?因为我也在纠结这问题……

不过根据lm里的说明:

A specification of the form first:second indicates the set of terms obtained by taking the interactions of all terms in first with all terms in second. The specification first*second indicates the cross of first and second. This is the same as first + second + first:second.


我猜是不是因为*是交叉项,而:是前项数据中所有terms和后项数据所有term做交叉

地板
宝丁士心 发表于 2019-6-11 12:42:40
Call:
lm(formula = a62 ~ a69 * a2, data = a)

Coefficients:
       (Intercept)             a69同居       a69初婚有配偶       a69再婚有配偶  
           71640.0            -39890.0               932.6             -1400.0  
     a69分居未离婚             a69离婚             a69丧偶                a2女  
          -11640.0             41693.3            -24268.6            -10256.8  
      a69同居:a2女  a69初婚有配偶:a2女  a69再婚有配偶:a2女  a69分居未离婚:a2女  
          171840.1             10640.0            -11411.8                  NA  
      a69离婚:a2女        a69丧偶:a2女  
          -59076.6              5463.1  



Call:
lm(formula = a62 ~ a69:a2, data = a)

Coefficients:
       (Intercept)        a69未婚:a2男        a69同居:a2男  a69初婚有配偶:a2男  
             42578               29062              -10828               29995  
a69再婚有配偶:a2男  a69分居未离婚:a2男        a69离婚:a2男        a69丧偶:a2男  
             27662               17422               70756                4794  
      a69未婚:a2女        a69同居:a2女  a69初婚有配偶:a2女  a69再婚有配偶:a2女  
             18805              150756               30378                5994  
a69分居未离婚:a2女        a69离婚:a2女        a69丧偶:a2女  
                NA                1422                  NA  

7
宝丁士心 发表于 2019-6-11 12:49:22
宝丁士心 发表于 2019-6-11 12:42
Call:
lm(formula = a62 ~ a69 * a2, data = a)
fist term 是性别,里面有男女2个level,second term是婚姻,有7个level
前一个用的*
结果和加上单项的回归没什么区别,只有1*6个交乘项:
后一个用的:号
first term的“男”、“女“和second term里的所有婚姻状况都做了交乘,所以有2*7个交乘项


我是这么理解两种的差别的,不知道对不对,英语不好看不太懂说明

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-4 16:56