सामान्यीकृत रैखिक मॉडल में रैखिक मॉडल छंद विचलन में आर-वर्ग?


14

यहाँ इस प्रश्न के लिए मेरा संदर्भ है: जो मैं बता सकता हूं, हम भारित डेटा और surveyपैकेज का उपयोग करते समय आर में एक साधारण न्यूनतम वर्ग प्रतिगमन नहीं चला सकते हैं । यहां, हमें उपयोग करना होगा svyglm(), जो सामान्यीकृत रैखिक मॉडल चलाता है (जो एक ही बात हो सकती है? मैं यहां अलग-अलग होने के मामले में फजी हूं)।

ओएलएस में और lm()फ़ंक्शन के माध्यम से , यह एक आर-स्क्वेर्ड मूल्य की गणना करता है, जिसकी व्याख्या मैं समझता हूं। हालांकि, svyglm()इसकी गणना नहीं लगती है और इसके बजाय मुझे एक डीवियनस देता है, जो कि इंटरनेट के बारे में मेरी संक्षिप्त यात्रा बताती है कि यह एक अच्छाई-से-फिट उपाय है जिसकी व्याख्या एक आर-स्क्वेर से अलग है।

इसलिए मुझे लगता है कि मेरे पास अनिवार्य रूप से दो प्रश्न हैं, जिन पर मैं कुछ दिशा पाने की उम्मीद कर रहा था:

  1. हम surveyपैकेज में ओएलएस क्यों नहीं चला सकते हैं , जबकि ऐसा लगता है कि स्टाटा में भारित डेटा के साथ ऐसा करना संभव है?
  2. सामान्यीकृत रैखिक मॉडल और आर-स्क्वेर्ड मूल्य के विचलन के बीच व्याख्या में क्या अंतर है?

2
एक अच्छे प्रश्न के लिए साइट @RichardBlissett, +1 पर आपका स्वागत है। ओएलएस प्रतिगमन सामान्यीकृत रैखिक मॉडल का एक विशेष मामला है, जहां लिंक फ़ंक्शन पहचान फ़ंक्शन है और प्रतिक्रिया वितरण सामान्य है (मेरा उत्तर यहां देखें: अंतर-लॉग-इन-लॉगिट-एंड-प्रॉबिट-मॉडल , अधिक जानकारी के लिए)। GLiMs के लिए 'छद्म-आर 2' हैं, लेकिन वे विवादास्पद हैं (यहां देखें: कौन सा-छद्म- r2-to-report-for-logistic-regression , अधिक जानकारी के लिए)।
गूँग - मोनिका

1
आपकी टिप्पणी के लिए बहुत बहुत धन्यवाद (और खेद है कि मुझे जवाब देने में इतना समय लगा ... मैंने यह सवाल खो दिया और पूरी तरह से भूल गया कि मैंने इसे एसओ पर नहीं रखा है)। यह स्पष्टीकरण की एक अद्भुत जोड़ी थी, धन्यवाद। मैं अपने प्रश्न का अनुमान लगाता हूं, क्या यह है: मैं मानता हूं, फिर ये सांख्यिकीय पैकेज ओएलएस नहीं चलते हैं क्योंकि सर्वेक्षण-भारित डेटा के साथ चलने के साथ कुछ मौलिक मुद्दा है। मैं यह पता लगाने के लिए प्रतीत नहीं कर सकता, हालांकि, वह मुद्दा क्या है।
रिकीब

1
डिविज़न विचरण का एक सामान्यीकरण है, और अपेक्षित विचलन आर-वर्ग का एक सामान्यीकरण है। समस्या यह है कि अपेक्षित विचलन के लिए एक आसान या सामान्य उत्तर नहीं लगता है, उदाहरण के लिए यहां देखें: आंकड़े
nukimov

जवाबों:


2

मैं जो बता सकता हूं, हम भारित डेटा और surveyपैकेज का उपयोग करते समय आर में एक साधारण न्यूनतम वर्ग प्रतिगमन नहीं चला सकते हैं । यहां, हमें उपयोग करना होगा svyglm(), जो सामान्यीकृत रैखिक मॉडल चलाता है (जो एक ही बात हो सकती है? मैं यहां अलग-अलग होने के मामले में फजी हूं)।

svyglmयदि आप उपयोग करते हैं तो आपको एक लीनियर मॉडल देगा family = gaussian()जो सर्वेक्षण विगनेट (संस्करण 3.32-1 में) से डिफ़ॉल्ट लगता है । उदाहरण देखें जहां वे पाते हैं regmodel

ऐसा लगता है कि पैकेज सिर्फ यह सुनिश्चित करता है कि आप कॉल करते समय सही वज़न का उपयोग करें glm। इस प्रकार, यदि आपका परिणाम निरंतर है और आप मानते हैं कि यह सामान्य रूप से वितरित किया गया है तो आपको उपयोग करना चाहिए family = gaussian()। परिणाम एक भारित रैखिक मॉडल है। यह उत्तर

हम surveyपैकेज में ओएलएस क्यों नहीं चला सकते हैं , जबकि ऐसा लगता है कि स्टाटा में भारित डेटा के साथ ऐसा करना संभव है?

यह कहते हुए कि आप surveyपैकेज के साथ वास्तव में ऐसा कर सकते हैं । निम्नलिखित प्रश्न के लिए के रूप में

सामान्यीकृत रैखिक मॉडल और आर-स्क्वेर्ड मूल्य के विचलन के बीच व्याख्या में क्या अंतर है?

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पैकेज का उपयोग नहीं किया है, लेकिन इसके माध्यम से जल्दी से स्कैन किया है और इस बारे में धारणा बनाई है कि यह मेरे जवाब में क्या करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.