gpt4 book ai didi

r - 使用 R 进行多个因变量和多个自变量的回归

转载 作者:行者123 更新时间:2023-12-01 22:37:59 26 4
gpt4 key购买 nike

我正在尝试使用多个因变量和多个自变量进行回归。基本上我有整个美国县级的房价,这是我的 IV。然后,我还有县级的其他几个变量(GDP建筑业就业),这些构成了我的因变量。我想知道是否有一种有效的方法可以同时进行所有这些回归。我试图得到:

lm(IV1 ~ DV11 + DV21)
lm(IV2 ~ DV12 + DV22)

我想对每个自变量和每个因变量执行此操作。

编辑: OP 添加了此信息以回应我的回答,现已删除,这误解了问题。

我认为我没有很好地解释这个问题,我很抱歉。每个因变量都有 2 个与之关联的、唯一的自变量。因此,如果我有 500 个因变量,则有 500 个唯一的自变量 1 和 500 个唯一的自变量 2。

好吧,我会再尝试一次,如果我再次无法解释自己,我可能会放弃(哈哈)。我不知道 R 中的 mtcars 是什么意思,尽管[这是引用 Metrics 的答案],所以让我尝试一下这种方式。我将有 3 个数据向量,每个向量大约 500 行。我正在尝试根据每行数据建立回归。假设向量 1 是我的因变量(我试图预测的变量),向量 2 和 3 构成我的自变量。因此,第一个回归将由每个向量的第 1 行值组成,第二个回归将由每个向量的第 2 行值组成,依此类推。再次感谢大家。

最佳答案

我假设您的数据框为 mydata。

mydata<-mtcars #mtcars is the data in R

dep<-c("mpg~","cyl~","disp~") # list of unique dependent variables with ~
indep1<-c("hp","drat","wt") # list of first unique independent variables
indep2<-c("qsec","vs","am") # list of second unique independent variables
> myvar<-cbind(dep,indep1,indep2) # matrix of variables
> myvar
dep indep1 indep2
[1,] "mpg~" "hp" "qsec"
[2,] "cyl~" "drat" "vs"
[3,] "disp~" "wt" "am"



for (i in 1:dim(myvar)[1]){
print(paste("This is", i, "regression", "with dependent var",gsub("~","",myvar[i,1])))
k[[i]]<-lm(as.formula(paste(myvar[i,1],paste(myvar[i,2:3],collapse="+"))),mydata)
print(k[[i]]
}



[1] "This is 1 regression with dependent var mpg"

Call:
lm(formula = as.formula(paste(myvar[i, 1], paste(myvar[i, 2:3],
collapse = "+"))), data = mydata)

Coefficients:
(Intercept) hp qsec
48.32371 -0.08459 -0.88658

[1] "This is 2 regression with dependent var cyl"

Call:
lm(formula = as.formula(paste(myvar[i, 1], paste(myvar[i, 2:3],
collapse = "+"))), data = mydata)

Coefficients:
(Intercept) drat vs
12.265 -1.421 -2.209

[1] "This is 3 regression with dependent var disp"

Call:
lm(formula = as.formula(paste(myvar[i, 1], paste(myvar[i, 2:3],
collapse = "+"))), data = mydata)

Coefficients:
(Intercept) wt am
-148.59 116.47 11.31

注意:您可以对大量变量使用相同的过程。

替代方法:

受到哈德利回答的启发here ,我使用函数Map来解决上述问题:

dep<-list("mpg~","cyl~","disp~") # list of unique dependent variables with ~ 
indep1<-list("hp","drat","wt") # list of first unique independent variables
indep2<-list("qsec","vs","am") # list of second unique independent variables
Map(function(x,y,z) lm(as.formula(paste(x,paste(list(y,z),collapse="+"))),data=mtcars),dep,indep1,indep2)
[[1]]

Call:
lm(formula = as.formula(paste(x, paste(list(y, z), collapse = "+"))),
data = mtcars)

Coefficients:
(Intercept) hp qsec
48.32371 -0.08459 -0.88658


[[2]]

Call:
lm(formula = as.formula(paste(x, paste(list(y, z), collapse = "+"))),
data = mtcars)

Coefficients:
(Intercept) drat vs
12.265 -1.421 -2.209


[[3]]

Call:
lm(formula = as.formula(paste(x, paste(list(y, z), collapse = "+"))),
data = mtcars)

Coefficients:
(Intercept) wt am
-148.59 116.47 11.31

关于r - 使用 R 进行多个因变量和多个自变量的回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18067519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com