Home Articles

如何使用单个解释变量和多个因变量运行回归?

Asked
Viewed 700 times
0

我想在数据框中使用单个解释变量来解释许多其他变量的变化 . 数据框看起来像:

df: 
explanatory_var dep_var_1 dep_var_2 dep_var_3
1               1.05      1.75      1.98
7               3.8       2.1       9.5
4.5             2         1.9       4

在伪代码中,我想:

fit_df$coefficient <- lm((dep_var_1, dep_var_2, dep_var_3) ~ explanatory_variable, na.action = na.exclude)$coefficient
fit_df$intercept <- lm((dep_var_1, dep_var_2, dep_var_3) ~ explanatory_variable, na.action = na.exclude)$intercept
fit_df$coefficient_significance_code <- lm((dep_var_1, dep_var_2, dep_var_3) ~ explanatory_variable, na.action = na.exclude)$coefficient_significance_code
fit_df$intercept_significance_code <- lm((dep_var_1, dep_var_2, dep_var_3) ~ explanatory_variable, na.action = na.exclude)$intercept_significance_code

所以我最终得到的东西(数据完全组成,不适合上述,只是一个例子)

fit_df: 
variable        coefficient intercept coefficient_significance_code intercept_significance_code 
dep_var_1       .35         0.5       ***                           ***
dep_var_2       .5          0.75      ***                           ***
dep_var_3       .43         1.0       ***                           ***

我相信这个问题的反面是:Using R's lm on a dataframe with a list of predictors

答案似乎可能与此有关:Repeat regression with varying dependent variable,但我不是在创建我的数据框架,也不是在寻找ls的意思 .

1 Answer

  • 0

    如果您使用单个解释变量来解释多个因变量的变化,则manova可能更适合该任务 .

    使用您的数据,可能会是这样的:

    exp_var <- c(1, 7, 4.5)
    dep_var_1 <- c(1.05, 3.8, 2)
    dep_var_2 <- c(1.75, 2.1, 1.9)
    dep_var_3 <- c(1.98, 9.5, 4)
    df <- data.frame(exp_var, dep_var_1, dep_var_2, dep_var_3)
    
    model <- manova(cbind(dep_var_1,dep_var_2,dep_var_3) ~ exp_var, data = df)
    summary(model)
    

    顺便说一句,没有足够的观察来运行该代码,它将导致错误 . 我希望你的数据集有很多观察结果 . 希望这可以帮助!

Related