R中具有不同数据帧变量组合的线性模型

时间:2019-05-28 09:19:30

标签: r dataframe regression

我有一个数据框(myvar),其名称从act1_1到act1_144(dependent variable)填充了数值,并在7列中分别包含了社会人口统计信息,DVAge,DVHsize,dhhtype,去模拟,收入,NumChild和Rooms(independent variables)。

independents<-DVType[, 1:144] 
dependents<-DVType[, 145:151]



myvar<-cbind(dependents,independents)

我正在尝试使用社会人口列变量来生成线性回归模型,并尝试所有可能的组合,例如收入,收入+子代数,收入+房间,...,dhhtype +去构图....无法生成与数据框的组合。

我设法做的是将自变量回归到自变量上。

 fit<-lm(as.matrix(dependents) ~ -1 + model.matrix(~ ., data = independents  ))
    require(broom)
    summary(fit)

Output:

    Response DVHsize :

    Call:
    lm(formula = DVHsize ~ -1 + model.matrix(~., data = independents))

    Residuals:
        Min      1Q  Median      3Q     Max 
    -3.1356 -1.0056 -0.2886  0.9597  7.2341 

    Coefficients:
                                                       Estimate Std. Error t value Pr(>|t|)    
    model.matrix(~., data = independents)(Intercept)  3.616e+00  4.300e-02  84.096  < 2e-16 ***
    model.matrix(~., data = independents)act1_1      -2.788e-05  2.911e-05  -0.958  0.33822    
    model.matrix(~., data = independents)act1_2       3.703e-05  2.898e-05   1.278  0.20138    
    model.matrix(~., data = independents)act1_3      -4.458e-06  2.177e-05  -0.205  0.83773    
    model.matrix(~., data = independents)act1_4       2.120e-05  2.557e-05   0.829  0.40705    
    model.matrix(~., data = independents)act1_5       2.327e-05  2.724e-05   0.854  0.39296    
    model.matrix(~., data = independents)act1_6      -4.578e-05  2.299e-05  -1.991  0.04644 *  
    model.matrix(~., data = independents)act1_7       2.087e-05  1.971e-05   1.058  0.28985    
    model.matrix(~., data = independents)act1_8      -4.694e-06  2.019e-05  -0.233  0.81612    
    model.matrix(~., data = independents)act1_9       3.604e-06  1.756e-05   0.205  0.83738    
    model.matrix(~., data = independents)act1_10     -2.924e-06  1.685e-05  -0.174  0.86225    
    model.matrix(~., data = independents)act1_11      4.934e-06  1.671e-05   0.295  0.76782    

....

如何扩展它以识别所有组合?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,则您的公式有误, 您的预测变量(independents)应该是您提到的7列。 我不确定“所有可能的组合”是否正是您想要的, 也许您只想要二阶交互(并且由于-1而没有拦截)? 在这种情况下,您可以执行以下操作 (另请参见this question):

fit <- lm(sprintf("cbind(%s) ~ . ^ 2 - 1",
                  toString(paste("act1", 1:144, sep = "_"))),
          data = DVType)