Skip to content

predict.lm_robust does not work with both factor variables and fixed effect #404

@jonfoong

Description

@jonfoong

I am trying to run predict on a lm_robust model that includes a factor variable and fixed effect, but it keeps reproducing an error:

library(estimatr)
library(dplyr)

n <- 1000

df <- data.frame(X1 = sample(0:1, n, replace = T),
                 X2 = sample(factor(letters[1:3]), n, replace = T),
                 FE = sample(factor(1:5), n, replace = T)) %>% 
  mutate(Y = X1 + rnorm(n))

# predicting with only fixed effects is fine

mod <- lm_robust(Y~X1, df, fixed_effects = ~FE)

predict(mod, data.frame(X1 = 1,
                        FE = factor(1, levels = 1:5)))


# predicting with only factor variable is fine

mod <- lm_robust(Y~X1+X2, df)

predict(mod, data.frame(X1 = 1,
                        X2 = factor("a", levels = letters[1:3])))

# predicting with both factor variable and FE throws error

mod <- lm_robust(Y~X1+X2, df, fixed_effects = ~FE)

predict(mod, data.frame(X1 = 1,
                        X2 = factor("a", levels = letters[1:3]),
                        FE = factor(1, levels = 1:5)))

I get this error: "Error in X[, !beta_na, drop = FALSE] %*% coefs[!beta_na, ] : non-conformable arguments"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions