R-kwadrat w odchyleniu wersetów w modelu liniowym w uogólnionym modelu liniowym?


14

Oto mój kontekst dla tego pytania: Z tego co mogę powiedzieć, nie możemy uruchomić zwykłej regresji metodą najmniejszych kwadratów w R, gdy używamy danych ważonych i surveypakietu. Tutaj musimy użyć svyglm(), który zamiast tego uruchamia uogólniony model liniowy (który może być tym samym? Jestem tutaj rozmyty pod względem tego, co jest inne).

W OLS i przez lm()funkcję oblicza wartość R-kwadrat, której interpretację rozumiem. Jednak svyglm()nie wydaje się to obliczać i zamiast tego daje mi dewiację, co według mojej krótkiej podróży po Internecie jest miarą dopasowania, interpretowaną inaczej niż R-kwadrat.

Sądzę więc, że zasadniczo mam dwa pytania, na które liczyłem:

  1. Dlaczego nie możemy uruchomić OLS w surveypakiecie, podczas gdy wydaje się, że jest to możliwe w przypadku ważonych danych w Stata?
  2. Jaka jest różnica w interpretacji między odchyleniem uogólnionego modelu liniowego a wartością kwadratową?

2
Witamy na stronie @RichardBlissett, +1 za dobre pytanie. Regresja OLS jest szczególnym przypadkiem uogólnionego modelu liniowego, w którym funkcja połączenia jest funkcją tożsamości, a rozkład odpowiedzi jest normalny (zobacz moją odpowiedź tutaj: różnica między modelami logit i probit , aby uzyskać więcej informacji). Istnieją „pseudo-R2 dla GLiM, ale są one kontrowersyjne (zobacz tutaj: pseudo-r2-raport-regresja logistyczna , aby uzyskać więcej informacji).
gung - Przywróć Monikę

1
Dziękuję bardzo za komentarz (i przepraszam, że tyle czasu zajęło mi udzielenie odpowiedzi ... Straciłem to pytanie i zupełnie zapomniałem, że nie umieściłem go na SO). To było niesamowite wyjaśnienie, dzięki. Wydaje mi się, że moje pytanie brzmi: zakładam, że te pakiety statystyczne nie obsługują OLS, ponieważ istnieje pewien podstawowy problem z uruchomieniem tego z danymi ważonymi ankietą. Wydaje mi się jednak, że nie mogę zrozumieć, o co chodzi.
RickyB

1
Odchylenie jest uogólnieniem wariancji, a oczekiwane odchylenie jest uogólnieniem kwadratu R. Problem polega na tym, że wydaje się, że nie ma łatwej ani ogólnej odpowiedzi na spodziewane odchylenie, patrz na przykład tutaj: stats.stackexchange.com/questions/124306/…
nukimov

Odpowiedzi:


2

Z tego, co mogę powiedzieć, nie możemy uruchomić zwykłej regresji metodą najmniejszych kwadratów w R przy użyciu danych ważonych i surveypakietu. Tutaj musimy użyć svyglm(), który zamiast tego uruchamia uogólniony model liniowy (który może być tym samym? Jestem tutaj rozmyty pod względem tego, co jest inne).

svyglmda ci model liniowy, jeśli go użyjesz, family = gaussian()który wydaje się być domyślny z winiety ankiety (w wersji 3.32-1). Zobacz przykład, w którym znajdują regmodel.

Wygląda na to, że pakiet po prostu upewnia się, że używasz prawidłowych wag podczas wywoływania glm. Tak więc, jeśli twój wynik jest ciągły i zakładasz, że jest normalnie dystrybuowany, powinieneś użyć family = gaussian(). Wynikiem jest ważony model liniowy. Ta odpowiedź

Dlaczego nie możemy uruchomić OLS w surveypakiecie, podczas gdy wydaje się, że jest to możliwe w przypadku ważonych danych w Stata?

stwierdzając, że rzeczywiście można to zrobić z surveypakietem. Co do następującego pytania

Jaka jest różnica w interpretacji między odchyleniem uogólnionego modelu liniowego a wartością kwadratową?

Jest to prosta formuła, aby uzyskać z jak niektórzy ludzie wspomniano w komentarzach. Dodanie ciężarów również niczego nie zmienia, jak pokazano poniżejR2)family = gaussian()

> set.seed(42293888)
> x <- (-4):5
> y <- 2 + x + rnorm(length(x))
> org <- data.frame(x = x, y = y, weights = 1:10)
> 
> # show data and fit model. Notice the R-squared
> head(org) 
   x          y weights
1 -4  0.4963671       1
2 -3 -0.5675720       2
3 -2 -0.3615302       3
4 -1  0.7091697       4
5  0  0.6485203       5
6  1  3.8495979       6
> summary(lm(y ~ x, org, weights = weights))

Call:
lm(formula = y ~ x, data = org, weights = weights)

Weighted Residuals:
    Min      1Q  Median      3Q     Max 
-3.1693 -0.4463  0.2017  0.9100  2.9667 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   1.7368     0.3514   4.942  0.00113 ** 
x             0.9016     0.1111   8.113 3.95e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Residual standard error: 2.019 on 8 degrees of freedom
Multiple R-squared:  0.8916,    Adjusted R-squared:  0.8781 
F-statistic: 65.83 on 1 and 8 DF,  p-value: 3.946e-05

> 
> # make redundant data set with redundant rows
> idx <- unlist(mapply(rep, x = 1:nrow(org), times = org$weights))
> org_redundant <- org[idx, ]
> head(org_redundant)
     x          y weights
1   -4  0.4963671       1
2   -3 -0.5675720       2
2.1 -3 -0.5675720       2
3   -2 -0.3615302       3
3.1 -2 -0.3615302       3
3.2 -2 -0.3615302       3
> 
> # fit model and notice the same R-squared
> summary(lm(y ~ x, org_redundant))

Call:
lm(formula = y ~ x, data = org_redundant)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.19789 -0.29506 -0.05435  0.33131  2.36610 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.73680    0.13653   12.72   <2e-16 ***
x            0.90163    0.04318   20.88   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Residual standard error: 0.7843 on 53 degrees of freedom
Multiple R-squared:  0.8916,    Adjusted R-squared:  0.8896 
F-statistic: 436.1 on 1 and 53 DF,  p-value: < 2.2e-16

> 
> # glm gives you the same with family = gaussian()  
> # just compute the R^2 from the deviances. See 
> #   /stats//a/46358/81865
> fit <- glm(y ~ x, family = gaussian(), org_redundant)
> fit$coefficients
(Intercept)           x 
  1.7368017   0.9016347 
> 1 - fit$deviance / fit$null.deviance
[1] 0.8916387

Odchylenie jest tylko sumą błędów kwadratowych podczas używania family = gaussian().

Ostrzeżenia

Zakładam, że chcesz model liniowy z twojego pytania. Ponadto nigdy nie korzystałem z surveypakietu, ale szybko go przejrzałem i poczyniłem założenia dotyczące tego, co robi, co stwierdzam w mojej odpowiedzi.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.