Nie rozumiem użycia kontrastów wielomianowych w dopasowaniu regresji. W szczególności mam na myśli kodowanie stosowane R
w celu wyrażenia zmiennej interwałowej (zmienna porządkowa z równo rozmieszczonymi poziomami), opisanej na tej stronie .
W przykładzie tej strony , jeśli dobrze zrozumiałem, R pasuje do modelu zmiennej interwałowej, zwracając pewne współczynniki, które ważą jej liniowy, kwadratowy lub sześcienny trend. Dlatego dopasowanym modelem powinien być:
gdzie powinien przyjmować wartości , , lub zgodnie z innym poziomem zmiennej interwałowej.
Czy to jest poprawne? A jeśli tak, to jaki był cel kontrastów wielomianowych?
r
regression
contrasts
Pippo
źródło
źródło
contr.poly
w R.Odpowiedzi:
Podsumowując (i w przypadku, gdy hiperłącza OP nie będą działać w przyszłości), patrzymy na taki zestaw danych
hsb2
jako taki:które można zaimportować tutaj .
Przekształcamy zmienną
read
w zmienną uporządkowaną / porządkową:Teraz wszystko jest gotowe, aby po prostu uruchomić regularną ANOVA - tak, to jest R, a my w zasadzie mają zmienną zależną ciągły,
write
oraz zmienną objaśniającą z wieloma poziomami,readcat
. W R możemy użyćlm(write ~ readcat, hsb2)
1. Generowanie macierzy kontrastu:
Istnieją cztery różne poziomy uporządkowanej zmiennejn−1=3
readcat
, więc będziemy mieli kontrasty.Najpierw chodźmy po pieniądze i spójrz na wbudowaną funkcję R:
Teraz przeanalizujmy, co działo się pod maską:
Co tu się stało?(−1.5)0 ( - 0,5 )0 0,50 1.50 ( - 1,5 )1 ( - 0,5 )1 0,51 1.51 ( - 1,5 )2)= 2,25 , , 0,5 2 = 0,25 i 1,5 2 = 2,25 ; i czwarty, ( - 1,5 ) 3 = - 3,375 , ( - 0,5 ) 3 = - 0,125 , 0,5 3 = 0,125 i 1,5 3 = 3,375 .( - 0,5 )2)= 0,25 0,52)= 0,25 1.52)= 2,25 ( - 1,5 )3)= - 3,375 ( - 0,5 )3)= - 0,125 0,53)= 0,125 1.53)= 3,375
outer(a, b, "^")
podnosi elementówa
z elementamib
tak, że pierwsze wyniki z kolumny z operacji, , ( - 0,5 ) 0 , 0,5 0 , a 1,5 0 ; druga kolumna z ( - 1,5 ) 1 , ( - 0,5 ) 1 , 0,5 1 i 1,5 1 ; trzeci z ( - 1,5 ) 2 = 2,25Następnie wykonać ortonormalną rozkład tej macierzy i ma kompaktową reprezentację Q ( ). Niektóre z wewnętrznych funkcji funkcji używanych w rozkładzie QR w R używanych w tym poście są wyjaśnione tutaj .Q R.
c_Q = qr(X)$qr
... z których zapisujemy tylko przekątną (R Q R.
z = c_Q * (row(c_Q) == col(c_Q))
). Co leży w przekątna: tylko „dolne” wpisy z część Q R rozkładu. Właśnie? no nie ... Okazuje się, że przekątna górnej trójkątnej macierzy zawiera wartości własne macierzy!Następnie wywołujemy następującą funkcję:Q Q Q z
raw = qr.qy(qr(X), z)
wynik z których mogą być replikowane „ręcznie” przez dwie operacje: 1. Włączanie zwartą postać , tj , do Q , transformację, jaką można uzyskać z , i 2. Przeprowadzenie mnożenie macierzy Q z , jak w .qr(X)$qr
Q = qr.Q(qr(X))
Q %*% z
Co najważniejsze, pomnożenie przez wartości własne R nie zmienia ortogonalności składowych wektorów kolumnowych, ale biorąc pod uwagę, że wartość bezwzględna wartości własnych pojawia się w porządku malejącym od góry z lewej strony do prawej u dołu, mnożenie Q z będzie miało tendencję do zmniejszania wartości w kolumnach wielomianowych wyższego rzędu:Q R Q z
Porównać wartości w kolejnych wektorów kolumny (kwadratowe i sześcienne) przed i po tym, jak operacji faktoryzacji, i niedotkniętych chorobą pierwszych dwóch kolumn.Q R.
Wreszcie nazywamy
(Z <- sweep(raw, 2L, apply(raw, 2L, function(x) sqrt(sum(x^2))), "/", check.margin = FALSE))
przekształcanie macierzyraw
w wektory ortonormalne :Ta funkcja po prostu „normalizuje” macierz, dzieląc (∑przełęcz.x2)ja-------√ ( i ) ( ii ) ( i )
"/"
) kolumnowo każdy element przez . Można go zatem rozłożyć na dwa etapy:(i), w wyniku czego, które są mianownikami dla każdej kolumny w(ii),gdzie każdy element w kolumnie jest podzielony przez odpowiednią wartość(i).apply(raw, 2, function(x)sqrt(sum(x^2)))
2 2.236 2 1.341
W tym momencie wektory kolumnowe stanowią podstawę ortonormalną z , aż pozbędziemy pierwszej kolumny, która będzie przechwytywać i mamy powielana wynik :R4
contr.poly(4)
Kolumny tej macierzy są ortonormalne , co może być pokazane na przykład przezwyniki - średnie 1 2) 3)
(sum(Z[,3]^2))^(1/4) = 1
iz[,3]%*%z[,4] = 0
(nawiasem mówiąc, to samo dotyczy wierszy). Każda kolumna jest wynikiem podniesienia początkowych do 1. , 2. i 3. mocy, tj. Liniowej , kwadratowej i sześciennej .2. Które kontrasty (kolumny) znacząco przyczyniają się do wyjaśnienia różnic między poziomami w zmiennej objaśniającej?
Możemy po prostu uruchomić ANOVA i spojrzeć na podsumowanie ...
summary(lm(write ~ readcat, hsb2))
... aby zobaczyć, że istnieje liniowy efekt
readcat
onwrite
, dzięki czemu oryginalne wartości (w trzeciej części kodu na początku postu) można odtworzyć jako:... lub ...
... lub znacznie lepiej ...
Będąc ortogonalnych kontrastów sumą ich składników dodaje się do zera dla a 1 , ⋯ , a t stałych, a produkt kropka dowolnych dwóch z nich jest równa zero. Gdybyśmy mogli je wizualizować, wyglądałyby mniej więcej tak:∑i = 1tzaja= 0 za1, ⋯ , at
Graficznie jest to znacznie łatwiejsze do zrozumienia. Porównaj rzeczywiste średnie według grup w dużych kwadratowych czarnych blokach z przewidywanymi wartościami i zobacz, dlaczego optymalne przybliżenie linii prostej przy minimalnym udziale kwadratowych i sześciennych wielomianów (z krzywymi aproksymowanymi tylko metodą less) jest optymalne:
Gdyby, dla samego efektu, współczynniki ANOVA były tak duże dla kontrastu liniowego dla innych przybliżeń (kwadratowych i sześciennych), przedstawiony poniżej nonsensowny wykres wyraźniej przedstawiłby wykresy wielomianowe każdego „wkładu”:
Kod jest tutaj .
źródło
qr.qy()
funkcji, ale zdecydowanie postaram się sprawdzić, czy mogę powiedzieć coś minimalnie spójnego na twoje pytanie, jak tylko będę miał trochę czasu.Użyję twojego przykładu, aby wyjaśnić, jak to działa. Zastosowanie kontrastów wielomianowych z czterema grupami daje następujące.
Gdzie pierwsze równanie działa dla grupy najniższych wyników czytania, a czwarte dla grupy najlepszych wyników czytania. możemy porównać te równania do podanych przy użyciu normalnej regresji liniowej (założenier e a dja jest ciągły)
Zwykle zamiastL , Q , C. miałbyś β1, β2), β3) i napisane na pierwszej pozycji. Ale ten tekst przypomina ten z kontrastami wielomianowymi. Więc liczby przedL , Q , C. są w rzeczywistości zamiast r e a dja, R e a d2)ja, R e a d3)ja . Współczynniki można zobaczyć wcześniejL. wcześniej trend liniowy Q kwadratowy i przedtem do sześcienny.
Następnie R szacuje parametryμ , L , Q , C i daje ci
W tym przykładzie jest to tylko niezerowa wartośćL.ˆ . Twój wniosek może być następujący: Widzimy, że lepsza punktacja w pisaniu zależy liniowo od wyniku czytania, ale nie ma znaczącego efektu kwadratowego lub sześciennego.
źródło