使用R对多个依赖变量和多个独立变量进行回归
发布时间:2020-12-13 20:47:17 所属栏目:百科 来源:网络整理
导读:我试图用多个因变量和多个自变量做回归.基本上我在整个美国都有县级房价,这是我的IV.然后,我在县一级有其他几个变量(GDP,建筑就业),这些变量构成我的因变量.我想知道是否有一种有效的方法可以同时完成所有这些回归.我想得到: lm(IV1 ~ DV11 + DV21)lm(IV2 ~
我试图用多个因变量和多个自变量做回归.基本上我在整个美国都有县级房价,这是我的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个将包含每个向量的第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,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,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,data = mydata) Coefficients: (Intercept) wt am -148.59 116.47 11.31 注意:您可以对大量变量使用相同的过程. 替代方法: 在Hadley的回答here的启发下,我使用函数Map来解决上述问题: dep<-list("mpg~","disp~") # list of unique dependent variables with ~ indep1<-list("hp","wt") # list of first unique independent variables indep2<-list("qsec","am") # list of second unique independent variables Map(function(x,y,z) lm(as.formula(paste(x,paste(list(y,z),data=mtcars),dep,indep2) [[1]] Call: lm(formula = as.formula(paste(x,data = mtcars) Coefficients: (Intercept) hp qsec 48.32371 -0.08459 -0.88658 [[2]] Call: lm(formula = as.formula(paste(x,data = mtcars) Coefficients: (Intercept) drat vs 12.265 -1.421 -2.209 [[3]] Call: lm(formula = as.formula(paste(x,data = mtcars) Coefficients: (Intercept) wt am -148.59 116.47 11.31 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |