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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions