一般化線形モデルの偏差に対する線形モデルのR二乗?


13

この質問に対する私のコンテキストは次のとおりです。私が知ることができることから、加重データとsurveyパッケージを使用する場合、Rで通常の最小二乗回帰を実行することはできません。ここではsvyglm()、代わりに一般化線形モデルを実行するを使用する必要があります(これは同じものかもしれません。ここでは、何が違うのかという点であいまいです)。

OLS lm()では、関数を使用してRの2乗値を計算しますが、その解釈は理解できます。しかし、svyglm()これを計算していないようで、代わりに偏差を与えます。これは、インターネットを巡回する短い旅行で、Rの2乗とは異なる解釈の適合度の尺度であるとわかります。

だから私は基本的に、何らかの方向性を得ることを望んでいた2つの質問があると思います:

  1. surveyパッケージでOLSを実行できないのはなぜですか。これは、Stataで重み付けされたデータを使用して実行できるように思われますか?
  2. 一般化線形モデルの逸脱とr二乗値の解釈の違いは何ですか?

2
いい質問があれば、+ 1のサイト、RichardBlissettへようこそ。OLS回帰は、リンク関数が恒等関数であり、応答分布が正規である一般化線形モデルの特殊なケースです(詳細については、ここでの私の答えを参照してください:差額間ロジットとプロビットモデル)。GLiMには「擬似R2」がありますが、議論の余地があります(詳細については、which-pseudo-r2-to-report-for-logistic-regressionを参照)。
GUNG -復活モニカ

1
あなたのコメントに感謝します(そして、申し訳ありませんが、私が応答するのに非常に時間がかかりました...私はこの質問を失い、SOにそれを載せなかったことを完全に忘れていました)。それは素晴らしい説明でした、ありがとう。私の質問は、これだと思います。調査加重データでの実行には根本的な問題があるため、これらの統計パッケージはOLSを実行しないと思います。しかし、私はその問題が何であるか理解できないようです。
RickyB

1
逸脱は分散の一般化であり、予想される逸脱はR平方の一般化です。:ここでの問題は、例えば参照、予想逸脱への容易なまたは一般的な答えがあるように思われないということですstats.stackexchange.com/questions/124306/...
nukimov

回答:


2

私が言えることから、加重データとsurveyパッケージを使用する場合、Rで通常の最小二乗回帰を実行することはできません。ここではsvyglm()、代わりに一般化線形モデルを実行するを使用する必要があります(これは同じものかもしれません。ここでは、何が違うのかという点であいまいです)。

svyglmを使用family = gaussian()すると、サーベイビネット(バージョン3.32-1)のデフォルトのように見える線形モデルが得られます。彼らが見つける例を見なさいregmodel

パッケージはを呼び出すときに正しい重みを使用することを確認するだけのようですglm。したがって、結果が連続的であり、通常iid配布されていると想定する場合は、を使用する必要がありますfamily = gaussian()。結果は、重み付き線形モデルです。この答え

surveyパッケージでOLSを実行できないのはなぜですか。これは、Stataで重み付けされたデータを使用して実行できるように思われますか?

実際にsurveyパッケージでそれができると述べることによって。次の質問は

一般化線形モデルの逸脱とr二乗値の解釈の違いは何ですか?

R2family = 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パッケージを使用したことはありませんが、パッケージをすばやくスキャンして、それが何をするかについて推測しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.