楼主: 741311791
1877 5

[问答] 如何设置循环使每一个变量与其余变量建立回归模型 [推广有奖]

  • 0关注
  • 0粉丝

大专生

38%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
392 点
帖子
16
精华
0
在线时间
56 小时
注册时间
2016-3-25
最后登录
2019-9-29

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. PM2.5        PM10        CO        NO2        SO2        O3
  2. 436.2        380        5.71        141.8        11.1        5.8
  3. 244.7333333        377.7155556        3.855833333        120.2333333        12.89166667        15.65416667
  4. 381.4791667        422.8402116        6.3925        176.1041667        19.35        7.258333333
  5. 463.6809524        504.548665        8.938833333        179.4333333        21.28333333        6.3
  6. 221.9333333        326.1577182        5.375833333        121.9083333        15.30833333        3.358333333
  7. 218.3083333        202.6594737        5.027916667        134.725        27.5125        3.758333333
  8. 186.2666667        113.5558187        3.39        99.7        21.275        4.720833333
  9. 40.44583333        101.0284101        0.658333333        48.05        8.170833333        33.45416667
  10. 33.45416667        75.13666667        0.742083333        49.19166667        9.058333333        35.32083333
  11. 89.8875        104.9545455        2.565333333        101.875        29.6875        8.245833333
复制代码
原始数据如上
如何设置循环使得:
  1. lm(pm2.5~.,data=set);
  2. lm(pm10~.,data=set);
  3. lm(co~.,data=set);
  4. lm(no2~.,data=set);
  5. lm(so2~.,data=set);
  6. lm(o3~.,data=set)
复制代码
这个过程自动完成

二维码

扫码加我 拉你入群

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

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


回帖推荐

jiangbeilu 发表于3楼  查看完整内容

沙发
zhou1_20 发表于 2018-5-8 09:48:02 |只看作者 |坛友微信交流群
  1. > fun_lm <- function(x){
  2. +   #x:为数据框矩阵,且每一列都为数值变量
  3. +   dt <- as.data.frame(x, stringsAsFactors =F)
  4. +   m <- ncol(dt)
  5. +   names(dt) <- paste0('x',1:m)
  6. +   re <- vector('list',m)
  7. +   for (i in 1:m) {
  8. +     re[] <- lm(as.formula(paste0('x',i,'~','.')),dt)
  9. +   }
  10. +   return(re)
  11. + }
  12. > str(airquality)
  13. 'data.frame':        153 obs. of  6 variables:
  14. \$ Ozone  : int  41 36 12 18 NA 28 23 19 8 NA ...
  15. \$ Solar.R: int  190 118 149 313 NA NA 299 99 19 194 ...
  16. \$ Wind   : num  7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
  17. \$ Temp   : int  67 72 74 62 56 66 65 59 61 69 ...
  18. \$ Month  : int  5 5 5 5 5 5 5 5 5 5 ...
  19. \$ Day    : int  1 2 3 4 5 6 7 8 9 10 ...
  20. > res <- fun_lm(airquality)
  21. > res[[1]]

  22. Call:
  23. lm(formula = as.formula(paste0("x", i, "~", ".")), data = dt)

  24. Coefficients:
  25. (Intercept)           x2           x3           x4           x5           x6  
  26.   -64.11632      0.05027     -3.31844      1.89579     -3.03996      0.27388  
复制代码

已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员
cheetahfly + 20 精彩帖子

总评分: 论坛币 + 20  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

藤椅
jiangbeilu 学生认证  发表于 2018-5-8 10:29:10 |只看作者 |坛友微信交流群
  1. cmm <- paste0(names(set),"~.")

  2. for (i in 1:ncol(set)){
  3. print(lm(cmm[i],data=set))
  4. }
复制代码
已有 1 人评分论坛币 收起 理由
cheetahfly + 20 精彩帖子

总评分: 论坛币 + 20   查看全部评分

使用道具

板凳
741311791 学生认证  发表于 2018-5-9 14:01:33 |只看作者 |坛友微信交流群
zhou1_20 发表于 2018-5-8 09:48
你好,感谢你的回答
  1. re <- vector('list',m)
复制代码
这一步的作用是什么

使用道具

报纸
zhou1_20 发表于 2018-5-9 15:07:34 |只看作者 |坛友微信交流群
741311791 发表于 2018-5-9 14:01
你好,感谢你的回答这一步的作用是什么
构建列表

使用道具

地板
vieruodu 发表于 2019-11-15 22:25:46 |只看作者 |坛友微信交流群
zhou1_20 发表于 2018-5-8 09:48
你好,如果一个数据框中,除了一个因变量或响应变量确定在线性模型的的左侧,两个自变量或预测变量及其交互作用在模型的右侧,除此之外,我怎么将数据框中其余的变量都作为协变量加入到线性回归模型中呢?

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-21 13:20