R-квадрат в линейной модели отклонения стихов в обобщенной линейной модели?


13

Вот мой контекст для этого вопроса: Из того, что я могу сказать, мы не можем запустить обычную регрессию наименьших квадратов в R при использовании взвешенных данных и surveyпакета. Здесь мы должны использовать svyglm(), который вместо этого запускает обобщенную линейную модель (что может быть тем же самым? Я нечеткий здесь с точки зрения того, что отличается).

В OLS и через lm()функцию он вычисляет значение R-квадрата, интерпретацию которого я понимаю. Однако, svyglm()кажется, не рассчитывает это, а вместо этого дает мне отклонение, которое, как говорит моя короткая поездка по Интернету, является мерой соответствия, которая интерпретируется иначе, чем R-квадрат.

Так что, по-моему, у меня, по сути, есть два вопроса, на которые я надеялся получить какое-то направление:

  1. Почему мы не можем запустить OLS в surveyпакете, хотя кажется, что это возможно сделать со взвешенными данными в Stata?
  2. Какая разница в интерпретации между отклонением обобщенной линейной модели и значением r-квадрата?

2
Добро пожаловать на сайт @RichardBlissett, +1 за хороший вопрос. Регрессия OLS является частным случаем обобщенной линейной модели, где функция связи является функцией тождества, а распределение ответов является нормальным (см. Мой ответ здесь: различие между logit-and-probit-models , для получения дополнительной информации). Существуют «псевдо-R2» для GLiM, но они противоречивы (см. Здесь: who -псевдо-r2-to-report-for-logistic-regression , для получения дополнительной информации).
gung - Восстановить Монику

1
Большое спасибо за ваш комментарий (и извините, что я так долго отвечал ... Я потерял этот вопрос и совершенно забыл, что не ставлю его на SO). Это была потрясающая пара объяснений, спасибо. Тогда я думаю, что мой вопрос таков: я предполагаю, что эти статистические пакеты не запускают OLS, потому что есть некоторая фундаментальная проблема с запуском этого с данными, взвешенными по результатам опроса. Однако я не могу понять, что это за проблема.
RickyB

1
Отклонение является обобщением дисперсии, а ожидаемое отклонение является обобщением R-квадрата. Проблема в том, что, похоже, нет простого или общего ответа на ожидаемое отклонение, см., Например, здесь: stats.stackexchange.com/questions/124306/…
nukimov

Ответы:


2

Из того, что я могу сказать, мы не можем запустить обычную регрессию наименьших квадратов в R при использовании взвешенных данных и surveyпакета. Здесь мы должны использовать svyglm(), который вместо этого запускает обобщенную линейную модель (что может быть тем же самым? Я нечеткий здесь с точки зрения того, что отличается).

svyglmдаст вам линейную модель, если вы используете, family = gaussian()которая, кажется, по умолчанию из виньетки опроса (в версии 3.32-1). Смотрите пример, где они находят regmodel.

Кажется, что пакет просто гарантирует, что вы используете правильные веса при вызове glm. Таким образом, если ваш результат является непрерывным, и вы предполагаете, что он обычно распределяется, тогда вам следует использовать family = gaussian(). Результатом является взвешенная линейная модель. Этот ответ

Почему мы не можем запустить OLS в surveyпакете, хотя кажется, что это возможно сделать со взвешенными данными в Stata?

заявив, что вы действительно можете сделать это с surveyпакетом. Что касается следующего вопроса

Какая разница в интерпретации между отклонением обобщенной линейной модели и значением r-квадрата?

р2family = 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

Отклонение - это просто сумма квадратичных ошибок при использовании family = gaussian().

Предостережения

Я предполагаю, что вы хотите линейную модель из вашего вопроса. Кроме того, я никогда не использовал surveyпакет, но быстро просмотрел его и сделал предположения о том, что он делает, что я заявляю в своем ответе.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.