Supponiamo di voler eseguire una regressione utilizzando lm
e una variabile factor
come una variabile a destra. Qual è il modo migliore per scegliere quale livello nel fattore è la categoria di base (quella esclusa per evitare la multicollinearità). Nota che non mi interessa escludere l'intercettazione perché ho molti fattori.Il modo migliore in R per scegliere quale livello è la categoria di base per un fattore in una regressione lm
Vorrei anche una soluzione basata su formule, non una che agisca direttamente sul data.frame, anche se se pensi di avere una soluzione davvero valida, per favore pubblica anche quella.
La mia soluzione è:
base_cat <- function(x) c(x,1:(x-1),(x+1):100)
a_reg <- lm(y ~ x1 + x2 + factor(x3, levels=base_cat(30)) #suppose that x3 has draws from the integers 1 to 100.
La categoria lasciato fuori dal lm
è il primo livello nel fattore quindi questo solo riordina i livelli in modo che quello specificato nella base_cat()
è il primo, e mette il resto dopo.
Altre idee?
Grazie @joran! –