2013-07-01 15 views
5

Chcę zrobić regresję y~x (tylko 1 zależna i 1 zmienna niezależna), ale mam heteroskedastyczność. Zmienność y wzrasta wraz ze wzrostem x. Aby sobie z tym poradzić, chciałbym użyć ważonych najmniejszych kwadratów przez funkcję "gls()" w R. Ale muszę przyznać, że nie rozumiem, jak z niej korzystać. Muszę zastosować funkcję wariancji do argumentu "wag" funkcji gls. Ale nie wiem, który wybrać i jak z niego korzystać. Czy możesz mi w tym pomóc?Ważone najmniejsze kwadraty - R

Dzięki.

Odpowiedz

5

Oto przykład dbania o liczbę poissona, jak dane, w których wariancja będzie proporcjonalna do średniej (która brzmi tak, jak masz).

fit = lm (y ~ x, data=dat,weights=(1/dat$x^2)) 

Używasz receptury jako masy, ponieważ będziesz mnożyć wartości. Ustalasz to za opiekowanie się danymi Poissona, ponieważ wariancja ma jednostki kwadratów. Możesz zrobić coś takiego:

fit = lm (y ~ x, data=dat,weights=(1/dat$x)) 

Aby po prostu skalować go według wartości x i zobaczyć, co działa lepiej.

+0

Jak mogę ocenić, czy działa lepiej. Wartość zwrócona przez test Bartletta jest taka sama z argumentem "wag" i bez niego. Oto mój kod: a2 = read.table ("total37.txt", nagłówek = TRUE) m1 = lm (Res ~ ModeF, a2, waga = 1/a2 $ ModeF^2) m2 = lm (Res ~ ModeF, A2) bartlett.test (pozostałości (m1) ~ A2 $ ModeF)) Test Bartlett reszty danych: (M1) i a2 $ ModeF Bartletta K-kwadrat = 35,2706, df = 11, p value = 0.0002236 bartlett.test (pozostałości (m2) ~ A2 $ ModeF)) testowe Bartlett dane: pozostałości (m2) i a2 $ ModeF Bartletta K-kwadrat = 35,2706, df = 11, p-value = 0,0002236 – user1671537

Powiązane problemy