Jak usunąć parametr niższego rzędu w modelu, gdy pozostaną parametry wyższego rzędu?

Problem: Nie mogę usunąć parametru niższego rzędu (np. Głównego parametru efektów) w modelu, o ile parametry wyższego rzędu (tj. Interakcje) pozostają w modelu. Nawet w takim przypadku model jest refaktoryzowany, a nowy model nie jest zagnieżdżony w wyższym modelu.
Zobacz poniższy przykład (jak pochodzę z ANOVA, których używam)contr.sum):

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  

Jak widać, chociaż usuwam jeden parametr (A), nowy model (m2) jest refaktoryzowany i jestnie zagnieżdżony w większym modelu (m1). Jeśli przekształcę moje czynniki na rękę w liczbowe zmienne kontrastowe, mogę uzyskać pożądane wyniki, ale jak uzyskać je przy użyciu możliwości czynnika R?

Pytanie: Jak mogę usunąć czynnik niższego rzędu w R i uzyskać model, który naprawdę tęskni za tym parametrem i nie jest refaktoryzowany (tzn. Liczba parametrów w mniejszym modelu musi być niższa)?

Ale dlaczego? Chcę uzyskać „Typ 3” jak wartości p dla almer model za pomocąKRmodcomp funkcja zpbkrtest pakiet. Więc ten przykład jest naprawdę tylko przykładem.

Dlaczego nie CrossValidated? Mam wrażenie, że jest to bardziej kwestia R niż pytanie statystyczne (tj. Wiem, że nigdy nie należy dopasowywać modelu do interakcji, ale bez jednego z głównych efektów, ale nadal chcę to zrobić).

questionAnswers(2)

yourAnswerToTheQuestion