Mam model regresji, który wygląda następująco:
... lub w notacji R: y ~ x1 + x2 + x3 + x1:x2 + x1:x3 + x1:x2:x3
Powiedzmy i są zmiennymi kategorialnymi i jest liczbowy. Komplikacja jest taka ma trzy poziomy i zamiast standardowych kontrastów muszę przetestować:
- Czy przechwycenie poziomu znacznie różni się od przeciętnego przechwytywania poziomów i .
- Czy odpowiedź różni się znacznie między poziomem i średnia poziomów i .
- Czy nachylenie różni się znacznie między poziomem i średnia poziomów i .
Na podstawie tego postu wydaje się, że matryca, której chcę, to ...
2
-1
-1
Tak robię contrasts(mydata$x1)<-t(ginv(cbind(2,-1,-1)))
. Szacunek dlazmiany, ale także inne. Mogę odtworzyć nowe oszacowanie odejmując przewidywane wartości i grupa oznacza (kiedy i jest na poziomie odniesienia) od dwukrotności wartości na tych poziomach. Ale nie mogę ufać, że poprawnie podałem swoją matrycę kontrastu, chyba że mogę również podobnie wyprowadzić inne współczynniki.
Czy ktoś ma jakąś radę, jak owinąć głowę wokół związku między środkami komórkowymi a kontrastami? Dzięki. Czy istnieje standardowa nazwa dla tego rodzaju kontrastu?
Aha! Zgodnie z linkiem opublikowanym w odpowiedzi Glen_b , dolna linia jest taka, że DOWOLNE porównanie konwersji grupy oznacza, że chcesz, w atrybut kontrastu w stylu R w następujący sposób:
- Zrób kwadratową macierz. Wiersze przedstawiają poziomy twojego współczynnika, a kolumny przedstawiają kontrasty. Z wyjątkiem pierwszego, który mówi modelowi, co powinien reprezentować punkt przecięcia.
- Jeśli chcesz, aby przecięcie było główną wartością, wypełnij pierwszą kolumnę tą samą niezerową wartością, nie ważne co. Jeśli chcesz, aby przecięcie było jednym ze środków poziomu, wstaw liczbę w tym wierszu i wypełnij resztę zerami. Jeśli chcesz, aby przecięcie było średnią z kilku poziomów, umieść liczby w tych wierszach i zera w pozostałych. Jeśli chcesz, aby był to środek ważony, użyj różnych liczb, w przeciwnym razie użyj tej samej liczby. Możesz nawet wprowadzić wartości ujemne w kolumnie przechwytywania i to prawdopodobnie coś też znaczy, ale to całkowicie zmienia inne kontrasty, więc nie mam pojęcia, do czego to służy
- Wypełnij pozostałe kolumny dodatnimi i ujemnymi wartościami wskazującymi, jakie poziomy chcesz w porównaniu z innymi. Zapominam, dlaczego sumowanie do zera jest ważne, ale dostosuj wartości, aby kolumny sumowały się do zera.
- Transponuj macierz za pomocą
t()
funkcji. - Użyj
ginv()
zMASS
opakowania lub,solve()
aby uzyskać odwrotność transponowanej macierzy. - Upuść pierwszą kolumnę, np
mycontrast<-mycontrast[,-1]
. Masz teraz macierz apx p-1, ale informacje wprowadzane do przechwytywania zostały zakodowane w macierzy jako całości podczas kroku 5. - Jeśli chcesz, aby etykiety w wynikach podsumowania były przyjemniejsze do odczytania niż
lm()
domyślne dane wyjściowe et al., Odpowiednio nazwij kolumny macierzy. Jednak przechwytywanie zawsze będzie automatycznie nazwane(Intercept)
. - Uczyń swoją matrycę nowym kontrastem dla danego czynnika, np
contrasts(mydata$myfactor)<-mymatrix
- Uruchomienie
lm()
(i prawdopodobnie wiele innych funkcji, które korzystają z wzorów) w normalny sposób standardowy R bez obciążeniaglht
,doBy
, icontrasts
.
Glen_b, dziękuję i dziękuję UCLA Statistics Consulting Group. Mój profesor ds. Statystyk spędził kilka dni na ręcznym rozwiązywaniu tego tematu i nadal nie miałem pojęcia, jak napisać własną matrycę kontrastu. A teraz godzina czytania i zabawy z R. I wreszcie myślę, że rozumiem. Zgaduję, że powinienem był złożyć podanie na UCLA. Lub University of StackExchange.
contra.helmert
?