在R中执行线性模型时如何修改虚拟变量中要考虑的类别

时间:2019-05-14 01:33:09

标签: r linear-regression lm linear

我正在尝试使用以下方程式在R中应用线性模型。

bg_away_OPA_lm <- lm(OPA ~ Venue_Team + Venue_DirectionJetlag_Team + Venue_DirectionJetlag_Against - 1, data=bg_away)

我的变量Venue_DirectionJetlag_TeamVenue_DirectionJetlag_Against属于类别,每个类别有6个类别。我知道函数lm自己将伪变量中的类别变量转换为0或1。但是,我只想考虑每个类别中的4个类别(总计8个),而不是正常地将每个类别分割成12个类别。

更准确地说,每个类别分别为:

家东 西方 远东 西客 相同的 相同

我需要我的lm只考虑Home,Away和East,West的组合。我不希望它与Same一起考虑。

有什么办法吗?

我是通过创建一个新的数据集来做到这一点的,我将其删除如下:

df_bg_cg_a <- spread(df_bg, Venue_DirectionJetlag_Team,Jet_Lag_boolean, fill = 0) %>%
  spread(Venue_DirectionJetlag_Against,Jet_Lag_boolean_against, fill = 0) %>%
  spread(Venue_Team, Indicator, fill = 0) %>%
  select(-c(HomeSame, AwaySame, Venue, X1))

名为boolean和indicator的变量的值为1或0,代表我希望每个虚拟列获取的值。

但是,我想在相同的lm函数中执行此操作。否则,我需要在模型中一一定义8个变量。有什么想法吗?

0 个答案:

没有答案