楼主: reduce_fat
397 9

[问答] 悬赏 pairwise interaction in multiple linear regression [推广有奖]

荣誉版主

海外论坛首席管理员

已卖:18504份资源

泰斗

28%

还不是VIP/贵宾

-

TA的文库  其他...

海外原创经济论文和写作技巧

威望
11
论坛币
3591257 个
通用积分
34054.8393
学术水平
6834 点
热心指数
7193 点
信用等级
6665 点
经验
1830 点
帖子
12424
精华
78
在线时间
1974 小时
注册时间
2011-6-13
最后登录
2025-10-23

一级伯乐勋章 初级热心勋章 初级学术勋章 中级热心勋章 中级学术勋章 高级学术勋章 初级信用勋章 特级学术勋章 高级热心勋章 中级信用勋章 特级热心勋章 高级信用勋章 特级信用勋章

楼主
reduce_fat 发表于 2013-10-29 13:08:00 |AI写论文
100论坛币
这是我写的一个regression model(mod4.lm),下面两个是同一个模型的不同种写法,因为原模型中有自变量没有意义。  
housing.value <- read.table("http://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data", header=F)
colnames(housing.value) <- c("CRIM", "ZN", "INDUS", "CHAS", "NOX", "RM", "AGE", "DIS", "RAD", "TAX", "PTRAIO", "B", "LSTAT", "MEDV")
colnames(housing.value)

mod4.lm <- lm(MEDV~CRIM + ZN + CHAS + NOX + RM + DIS + PTRAIO + B + LSTAT, data=housing.value)
mod4.lm <- lm(MEDV~.-TAX-RAD-AGE-INDUS, data=housing.value)

我想把里面加入pairwise interaction factors 为了方便,重新定义了自变量。 但是,为什么我写的for loop 不对啊?

x1 <- housing.value$CRIM
x2 <- housing.value$ZN
x3 <- housing.value$CHAS
x4 <- housing.value$NOX
x5 <- housing.value$RM
x6 <- housing.value$DIS
x7 <- housing.value$PTRAIO
x8 <- housing.value$B
x9 <- housing.value$LSTAT

for(w in 1:9)
  for(v in 1:9)
{
   {
    a <- sum(x[w]*x[v])  #这是为了把那些成对的interaction factors 加和。
   }
}
   mod5.lm <- lm(MEDV~.-TAX-RAD-AGE-INDUS + a, data=housing.value)

特此悬赏解答,谢谢关注。

最佳答案

ntsean 查看完整内容

用 (x1+x2….)^2 就可以得到up to 2的interaction 如果只需要interaction (x1+x2….)^2 - x1 - x2 -...
关键词:interaction regression regressio interact Multiple multiple 自变量 模型
已有 1 人评分学术水平 信用等级 收起 理由
xiaodao99 + 5 + 5 鼓励积极发帖讨论

总评分: 学术水平 + 5  信用等级 + 5   查看全部评分

复制粘贴积分链接 https://bbs.pinggu.org/ext8_airdrop.php?airdropfrom^^uid=2669999

沙发
ntsean 发表于 2013-10-29 13:08:01
用 (x1+x2….)^2 就可以得到up to 2的interaction

如果只需要interaction

(x1+x2….)^2 - x1 - x2 -...
已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
reduce_fat + 50 热心帮助其他会员
jmpamao + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 50  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
统计R浪人 发表于 2013-10-29 13:49:42
for(w in 1:9)
  for(v in 1:9)
{
   {
    a <- sum(x[w]*x[v])  #这是为了把那些成对的interaction factors 加和。
    mod5.lm <- lm(MEDV~.-TAX-RAD-AGE-INDUS + a, data=housing.value)
   }
}
不是太清楚你的a是否每对interaction factors后就进行一次回归分析,如果不是而是所有interaction factors和之后进行回归分析应该把回归方程放在所有循环在外,这是我的一点理解,不知道对不对
for(w in 1:9)
  for(v in 1:9)
{
   {
    a <- sum(x[w]*x[v])  #这是为了把那些成对的interaction factors 加和。
      }
}
mod5.lm <- lm(MEDV~.-TAX-RAD-AGE-INDUS + a, data=housing.value)
已有 1 人评分经验 收起 理由
reduce_fat + 60 热心帮助其他会员

总评分: 经验 + 60   查看全部评分

板凳
reduce_fat 发表于 2013-10-29 13:55:51
统计R浪人 发表于 2013-10-29 13:49
for(w in 1:9)
  for(v in 1:9)
{
Error: object 'x' not found 这个是需要解决的, 然后在算那些成对的interaction factors 的和。
复制粘贴积分链接 https://bbs.pinggu.org/ext8_airdrop.php?airdropfrom^^uid=2669999

报纸
jmpamao 发表于 2013-10-29 14:56:44
你这个a是 通过    两两相互乘积后 组建个矩阵, 然后 矩阵以行sum,变为一个向量,是吗?
如果这么的话,看看有用不?
  1. x <- data.frame(x1=housing.vaule$...,x2=....)
复制代码

地板
jmpamao 发表于 2013-10-29 15:05:13
  1. dat<-NULL
  2. dat<-as.data.frame(dat)
  3. for(w in 1:9)
  4.   {
  5.   for(v in 1:9)
  6.   {
  7.   a1 <- x[w]*x[v]
  8.   dat<-rbind(dat,a1)
  9. }
  10.   }
  11. a <- apply(t(dat),1,sum)
复制代码
已有 1 人评分经验 收起 理由
reduce_fat + 80 热心帮助其他会员

总评分: 经验 + 80   查看全部评分

7
ntsean 发表于 2013-10-29 21:24:36
formula里面的加号不是加减乘除的加号

8
reduce_fat 发表于 2013-10-30 00:12:22
ntsean 发表于 2013-10-29 21:26
用 (x1+x2….)^2 就可以得到up to 2的interaction

如果只需要interaction
length 不符合。
复制粘贴积分链接 https://bbs.pinggu.org/ext8_airdrop.php?airdropfrom^^uid=2669999

9
reduce_fat 发表于 2013-10-30 00:13:31
jmpamao 发表于 2013-10-29 15:05
还是有那个 error object 'x' not found.
复制粘贴积分链接 https://bbs.pinggu.org/ext8_airdrop.php?airdropfrom^^uid=2669999

10
ntsean 发表于 2013-10-30 01:37:57
reduce_fat 发表于 2013-10-30 00:12
length 不符合。
lm(MEDV~(CRIM + ZN + CHAS + NOX + RM + DIS + PTRAIO + B + LSTAT)^2, data=housing.value)

这个不行吗?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 11:58