আমি যা বলতে পারি তা থেকে, ভারী ডেটা এবং survey
প্যাকেজটি ব্যবহার করার সময় আমরা আর কোনও সাধারণ সর্বনিম্ন স্কোয়ার রিগ্রেশন চালাতে পারি না । এখানে, আমাদের ব্যবহার করতে হবে svyglm()
, যা পরিবর্তে একটি সাধারণীকরণীয় রৈখিক মডেল চালায় (যা একই জিনিস হতে পারে? আমি এখানে ভিন্ন কি তার নিরিখে अस्पष्ट)।
svyglm
যদি আপনি ব্যবহার করেন family = gaussian()
যা জরিপের ভিগনেট (সংস্করণে 3.32-1) থেকে ডিফল্ট বলে মনে হয় আপনি লিনিয়ার মডেল দেবেন । উদাহরণটি দেখুন যেখানে তারা সন্ধান করে regmodel
।
মনে হচ্ছে যে প্যাকেজ ঠিক নিশ্চিত করুন যে আপনি সঠিক ওজন যখন এটি কল ব্যবহার করে তোলে glm
। সুতরাং, যদি আপনার ফলাফল অবিরত থাকে এবং আপনি ধরে নেন যে এটি সাধারণত আইড বিতরণ করা হয় তবে আপনার ব্যবহার করা উচিত family = gaussian()
। ফলাফলটি ভারিত লিনিয়ার মডেল is এই উত্তর
আমরা কেন survey
প্যাকেজে ওএলএস চালাতে পারি না , যখন মনে হয় স্টাটাতে ভারী ডেটা দিয়ে এটি করা সম্ভব?
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
প্যাকেজটি কখনও ব্যবহার করি নি তবে দ্রুত এটির মাধ্যমে স্ক্যান করেছি এবং আমার উত্তরে আমি যা উল্লেখ করি তা কী করে তা নিয়ে অনুমান করা যায়।