如何在 R 的回归中设置虚拟变量
how can I set a dummy variable in a regression in 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.The 第一个问题是如何得到这样的输出:
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.The 第二个问题是,如果我想做这样的回归:lm(y~r1+r2+r3+dummy_r1+ dummy_r2+dummy_r3)
,如果我不想使用上面的输出data(dummy_r1,dummy_r2,dummy_r3)
,我该怎么办,因为不方便。
使用 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)
以下是我的数据
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.The 第一个问题是如何得到这样的输出:
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.The 第二个问题是,如果我想做这样的回归:lm(y~r1+r2+r3+dummy_r1+ dummy_r2+dummy_r3)
,如果我不想使用上面的输出data(dummy_r1,dummy_r2,dummy_r3)
,我该怎么办,因为不方便。
使用 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)