2

我正在尝试对以下数据进行线性回归

Power<-mutate(Power,Year=format(Date,"%Y"),Quarter=quarters(Date),Month=format(Date,"%m"))
head(Power)
       Date    YY    XX  Year    Quarter
2007-01-01     NA     NA 2007      Q1
2007-01-02     NA     NA 2007      Q1
2007-01-03  55.90  71.40 2007      Q1
2007-01-04  55.25  70.75 2007      Q1

模型是

lm(YY~XX+as.factor(Quarter,ref="Q1"),data=Power)

这工作正常。但是,它会自动为 3 个季度创建三个假人。有没有办法只包括一个假人,比如这个模型中的 Q2?

4

3 回答 3

2

可以说,最常见的方法是使用 动态创建一个二分变量I()

lm(YY ~ XX + I(Quarter=="Q2"), data=Power)

这包括模型中的二进制预测器,当它为 1 时Quarter=="Q2"为 0,否则为 0。

于 2015-04-17T19:32:21.287 回答
1

最简单的方法是使用您需要的信息创建新变量......

Power$Q2dummy <- 0
Power$Q2dummy[which(Power$Quarter == 'Q2')] <- 1
lm(YY~XX+Q2dummy,data=Power)

但是,很难说,因为您没有提供您的数据,甚至没有提供它们的摘要(什么是变量 Quarter?我猜是 4 个状态的因子?)。

于 2015-04-17T19:30:45.917 回答
1

一种可能性是使用ifelse(rule, if TRUE, if FALSE)命令:

例如:

Power$Q2dummy <- ifelse(Power$Quarter == "Q2",1,0)
lm(YY~XX+Q2dummy,data=Power)
于 2017-03-27T12:22:09.900 回答