如何在R中的回归中设置虚拟变量

以下是我的数据

y   r1  r2  r3

1   0.1 0.2 -0.3
2   0.7 -0.9    0.03
3   -0.93   -0.32   -0.22

1。第一个问题是如何获得这样的输出:

y   r1     r2    r3    dummy_r1  dummy_r2 dummy_r3

1   0.1    0.2   -0.3    0        0          1
2   0.7   -0.9   0.03    0        1          0
3   -0.93 -0.32  -0.22   1        1          1

注意:我希望负数等于1,正数等于0

2。第二个问题是,如果我想进行像lm(y~r1+r2+r3+dummy_r1+ dummy_r2+dummy_r3)这样的回归,如果我不想使用上面的输出data(dummy_r1,dummy_r2,dummy_r3),该怎么办,因为它不是方便。

wangyin2003 回答:如何在R中的回归中设置虚拟变量

使用在结尾处的注释中可重复显示的DF,将DF2定义为也有sign.*列,然后对其进行回归。当然,问题中没有足够的数据来实际获得许多预测变量的系数,但是如果您的实际问题中有更多数据,那就应该可以了。

DF2 <- cbind(DF,sign = +(DF[-1] < 0))
lm(y ~.,DF2)

给予:

Call:
lm(formula = y ~ .,data = DF2)

Coefficients:
(Intercept)           r1           r2           r3      sign.r1  
      1.425       -1.163       -1.543           NA           NA  
    sign.r2      sign.r3  
         NA           NA  

注意

Lines <- "y   r1  r2  r3
1   0.1 0.2 -0.3
2   0.7 -0.9    0.03
3   -0.93   -0.32   -0.22"
DF <- read.table(text = Lines,header = TRUE)
本文链接:https://www.f2er.com/2864727.html

大家都在问