Il problema: Non riesco a rimuovere un parametro di ordine inferiore (ad es. Un parametro degli effetti principali) in un modello fintanto che i parametri di ordine superiore (cioè le interazioni) rimangono nel modello. Anche in questo caso, il modello viene refactored e il nuovo modello non è nidificato nel modello superiore.
Vedere il seguente esempio (come io vengo da ANOVA io uso contr.sum
):Come rimuovere un parametro di ordine inferiore in un modello quando i parametri di ordine superiore rimangono?
d <- data.frame(A = rep(c("a1", "a2"), each = 50), B = c("b1", "b2"), value = rnorm(100))
options(contrasts=c('contr.sum','contr.poly'))
m1 <- lm(value ~ A * B, data = d)
m1
## Call:
## lm(formula = value ~ A * B, data = d)
##
## Coefficients:
## (Intercept) A1 B1 A1:B1
## -0.005645 -0.160379 -0.163848 0.035523
m2 <- update(m1, .~. - A)
m2
## Call:
## lm(formula = value ~ B + A:B, data = d)
## Coefficients:
## (Intercept) B1 Bb1:A1 Bb2:A1
## -0.005645 -0.163848 -0.124855 -0.195902
Come si può vedere, anche se tolgo un parametro (A
), il nuovo modello (m2
) viene riscritta ed è non nidificato nel modello più grande (m1
). Se trasformo i miei fattori per mano in variabili di contrasto numeriche, posso ottenere i risultati desiderati, ma come faccio a usare le capacità del fattore R?
la domanda: Come posso rimuovere un fattore di ordine inferiore in R e ottenere un modello che manca davvero questo parametro e non è refactoring (vale a dire, il numero di parametri del modello più piccolo deve essere inferiore)?
Ma perché? Desidero ottenere "Tipo 3" come valori p per un modello lmer
utilizzando la funzione KRmodcomp
dal pacchetto pbkrtest
. Quindi questo esempio è davvero solo un esempio.
Perché non CrossValidated? Ho la sensazione che questa sia davvero più una domanda di R allora una statistica (ad esempio, so che non dovresti mai adattare un modello con interazioni ma senza uno degli effetti principali, ma voglio comunque farlo).
Leggi Bill Venables [http://www.stats.ox.ac.uk/pub/MASS3/Exegeses.pdf](http:// www.stats.ox.ac.uk/pub/MASS3/Exegeses.pdf) sulle somme dei quadrati di tipo III. È una domanda di statistiche. – mnel
Un modo per farlo è costruire la matrice di disegno completa (usando 'model.matrix'), eliminare le colonne che non si desidera e quindi adattare il modello alle colonne rimanenti. Farò un esempio se/quando avrò la possibilità ... –
Dai un'occhiata al [pacchetto '' MixMod'] (http://cran.r-project.org/web/packages/MixMod/). Base 'R' non lo supporta (vedi il mio commento precedente su Bill Venables. – mnel