我如何选择两个因子并进行回归

问题描述 投票:0回答:1

我有一个这样的数据集:

library(tidyverse)
set.seed(123)
Data <- data.frame(
        X = sample(c("A", "B", "C"), 20, replace = TRUE),
    Y = sample(1:20)
)
Data%>%
    arrange(X)

我想进行一系列回归,以使DV为Y,但是每次回归的自变量都是一次取两个因子。例如A&B,A&C,B&A,B&C感谢您的帮助。

r loops lm
1个回答
0
投票

对于线性回归:

> combos <- as.data.frame(x = combn(x = c("A", "B", "C"), m = 2))
names(combos) <- sapply(
  X = 1:3, 
  FUN = function(x){paste(combos[,x], collapse = "")}
)

> fit.list <- list()
> for (combo in names(combos)){
  fit.list[[combo]] <- subset(Data, X %in% combos[,combo]) %>% 
    lm(formula = .$Y ~ .$X, data = .)
}

> fit.list
$AB

Call:
lm(formula = .$Y ~ .$X, data = .)

Coefficients:
(Intercept)         .$XB  
       10.4          3.6  


$AC

Call:
lm(formula = .$Y ~ .$X, data = .)

Coefficients:
(Intercept)         .$XC  
       10.4         -2.9  


$BC

Call:
lm(formula = .$Y ~ .$X, data = .)

Coefficients:
(Intercept)         .$XC  
       14.0         -6.5 
© www.soinside.com 2019 - 2024. All rights reserved.