Mam sześć zmiennych zależnych (dane zliczeń) i kilka zmiennych niezależnych, widzę, że w MMR skrypt wygląda następująco:
my.model <- lm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn)
Ale ponieważ moje dane się liczą, chcę użyć uogólnionego modelu liniowego i próbowałem tego:
my.model <- glm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn, family="poisson")
I pojawia się ten komunikat o błędzie:
Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, :
(subscript) logical subscript too long`
Czy ktoś może mi wyjaśnić ten komunikat o błędzie lub sposób rozwiązania mojego problemu?
lm
jak w przypadku podania macierzy?lm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn)
muszęlm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn)
Muszę użyć polecenia manova () w następujący sposób:summary(manova(my.model))
aby przeprowadzić wielowymiarową analizę wariancji i zobaczyć znaczenie każdej zmiennej niezależnej. To jest ostateczny cel.summary
ciebie da ci je dla każdego DV.Odpowiedzi:
Krótka odpowiedź brzmi:
glm
tak nie działa.lm
Będą tworzyćmlm
obiekty, jeśli dasz mu matrycy, ale to nie jest powszechnie obsługiwana w generycznych i mimo to nie można łatwo uogólnić doglm
ponieważ użytkownicy muszą być w stanie określić zmienne zależne podwójnej kolumnie dla modeli regresji logistycznej.Rozwiązaniem jest osobne dopasowanie modeli. Załóżmy, że twoje IV i DV żyją w ramce data.frame
dd
i są oznaczone tak, jak są w pytaniu. Poniższy kod tworzy listę dopasowanych modeli indeksowaną według nazwy używanej zmiennej zależnej:Aby sprawdzić wyniki, po prostu zawiń swoje zwykłe funkcje w następujący sposób
lapply
:Bez wątpienia są bardziej eleganckie sposoby na zrobienie tego w R, ale to powinno działać.
źródło
Powiedziano mi, że istnieją wielowymiarowe uogólnione modele liniowe (mieszane), które rozwiązują twój problem. Nie jestem w tym ekspertem, ale zajrzałbym do dokumentacji SABRE i tej książki o wielowymiarowych GLM. Może pomagają ...
źródło
lm
macierzy zmiennej zależnej powinno być raczej postrzegane bardziej jako cukier składniowy niż jako wyrażenie modelu wielowymiarowego: gdyby był to model wielowymiarowy (normalny), to byłby to ten, w którym błędy to „ sferyczny ”, tzn. taki, w którym można było przeprowadzić osobne regresje dla każdego elementu zmiennej zależnej i uzyskać tę samą odpowiedź.