تجزیه و تحلیل رگرسیون دو جمله ای منفی در R
دسترسی سریع
(require(foreign (require(ggplot2 (require(MASS
نمونه هایی از رگرسیون دو جمله ای منفی مثال 1. مدیران مدرسه مطالعه رفتار حضور دانش آموزان دبیرستان در دو مدرسه می کنند. پیش بینی تعداد روزهای غیبت شامل نوع برنامه که در آن دانش آموز ثبت نام در آزمون استاندارد ریاضی کرده است . مثال 2. یک محقق مرتبط با سلامت در حال مطالعه تعداد بازدیدکننده داشته است بیمارستان در 12 ماه گذشته توسط شهروندان ارشد در یک جامعه بر اساس ویژگی های افراد و انواع برنامه های بهداشتی که تحت آن هر یک پوشانده است . شرح داده اجازه دهید مثال 1 از بالا دنبال کنند. ما داده های حضور و غیاب در 314 جوانان دبیرستانی از دو مدرسه بالا شهری در فایل nb_data . متغیر پاسخ از علاقه روز وجود ندارد، daysabs . متغیر math می دهد نمره ریاضی استاندارد برای هر دانش آموز. متغیر prog یک متغیر اسمی سه سطح نشان می دهد نوع برنامه آموزشی است که در آن دانش آموز ثبت نام کرده است.که نوع ورود داده ها به صورت زیر است .dat <- read.dta("http://www.ats.ucla.edu/stat/stata/dae/nb_data.dta") dat <- within(dat, { prog <- factor(prog, levels = 1:3, labels = c("General", "Academic", "Vocational")) id <- factor(id) })
summary(dat)
## id gender math daysabs ## 1001 : 1 female:160 Min. : 1.0 Min. : 0.00 ## 1002 : 1 male :154 1st Qu.:28.0 1st Qu.: 1.00 ## 1003 : 1 Median :48.0 Median : 4.00 ## 1004 : 1 Mean :48.3 Mean : 5.96 ## 1005 : 1 3rd Qu.:70.0 3rd Qu.: 8.00 ## 1006 : 1 Max. :99.0 Max. :35.00 ## (Other):308 ## prog ## General : 40 ## Academic :167 ## Vocational:107 ## ## ## ##
ggplot(dat, aes(daysabs, fill = prog)) + geom_histogram(binwidth = 1) + facet_grid(prog ~ ., ("margins = TRUE, scales = "free
هر متغیر دارای 314 مشاهدات معتبر و توزیع آنها به نظر می رسد کاملا معقول. میانگین بی قید و شرط از متغیر نتیجه ما بسیار پایین تر از واریانس آن است. اجازه دهید با توصیف ما از متغیر در این مجموعه داده ادامه. در جدول زیر اعداد به طور متوسط از روز وجود ندارد بر اساس نوع برنامه را نشان می دهد و به نظر می رسد نشان می دهد که نوع برنامه کاندید خوبی برای پیش بینی تعداد روزهای وجود ندارد، متغیر نتیجه ما است، چرا که مقدار متوسط از نتیجه به نظر می رسد توسط متفاوت prog . واریانس در هر سطح prog بالاتر از وسیله در هر سطح. این به معنای مشروط و واریانس می باشد. این تفاوت نشان می دهد که بیش از پراکندگی موجود است و مدل دوجمله ای منفی مناسب خواهد بود.with(dat, tapply(daysabs, prog, function(x) { sprintf("M (SD) = %1.2f (%1.2f)", mean(x), sd(x)) }))
## General Academic Vocational ## "M (SD) = 10.65 (8.20)" "M (SD) = 6.93 (7.45)" "M (SD) = 2.67 (3.73)"
روشهای تجزیه و تحلیل • رگرسیون دو جمله ای رگرسیون دو جمله ای منفی منفی می تواند برای بیش از پراکنده داده شمارش استفاده می شود، این است که زمانی که واریانس شرطی بیش از میانگین شرطی. این را می توان به عنوان یک تعمیم رگرسیون پواسون در نظر گرفته از آن است که ساختار متوسط همان رگرسیون پواسون و آن را تا یک پارامتر اضافی به مدل بیش از پراکندگی. اگر توزیع مشروط متغیر نتیجه بیش از حد پراکنده، فاصله اطمینان برای رگرسیون دو جمله ای منفی به نظر می رسد باریک تر در مقایسه با کسانی که از یک مدل رگرسیون پواسون است. • رگرسیون پواسون - رگرسیون پواسون است که اغلب برای اطلاعات تعداد مدل سازی استفاده می شود. رگرسیون پواسون تا به تعدادی از الحاقات برای مدل تعداد دفعات مشاهده شده مفید است. • مدل رگرسیون صفر متورم - مدل صفر متورم به حساب تلاش برای صفر اضافی می باشد. به عبارت دیگر، دو نوع از صفر تصور می شود در داده ها، "صفر واقعی" و "صفر اضافی" وجود داشته باشد. مدل های صفر متورم برآورد دو معادله به طور همزمان، یکی برای مدل تعداد دفعات مشاهده شده و یکی برای صفر اضافی می باشد. • رگرسیون OLS - تعداد متغیرهای گاهی اوقات ورود تبدیل و با استفاده از رگرسیون OLS استفاده شد. بسیاری از مسائل را با این روش بوجود می آیند، از جمله از دست دادن داده ها با توجه به ارزش های تعریف نشده تولید با در نظر گرفتن ورود به سیستم از صفر (که تعریف نشده)، و همچنین کمبود ظرفیت برای مدل پراکندگی است . تجزیه و تحلیل رگرسیون دو جمله ای منفی در زیر استفاده از glm.nb تابع از MASS بسته بندی به منظور برآورد رگرسیون دو جمله ای منفی است.summary(m1 <- glm.nb(daysabs ~ math + prog, data = dat))
## ## Call: ## glm.nb(formula = daysabs ~ math + prog, data = dat, init.theta = 1.032713156, ## link = log) ## ## Deviance Residuals: ## Min 1Q Median 3Q Max ## -2.155 -1.019 -0.369 0.229 2.527 ## ## Coefficients: ## Estimate Std. Error z value Pr(>|z|) ## (Intercept) 2.61527 0.19746 13.24 < 2e-16 *** ## math -0.00599 0.00251 -2.39 0.017 * ## progAcademic -0.44076 0.18261 -2.41 0.016 * ## progVocational -1.27865 0.20072 -6.37 1.9e-10 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## (Dispersion parameter for Negative Binomial(1.033) family taken to be 1) ## ## Null deviance: 427.54 on 313 degrees of freedom ## Residual deviance: 358.52 on 310 degrees of freedom ## AIC: 1741 ## ## Number of Fisher Scoring iterations: 1 ## ## ## Theta: 1.033 ## Std. Err.: 0.106 ## ## 2 x log-likelihood: -1731.258
R اولین تماس و باقیمانده انحراف نشان می دهد. بعد، ما می بینیم ضرایب رگرسیون برای هر یک از متغیرها، همراه با خطاهای استاندارد، Z-نمرات، و مقدار p. متغیر math ضریب -0.006، است که از نظر آماری قابل توجه است. این به این معنی است که برای هر یک واحد افزایش در math ، تعداد ورود به سیستم انتظار می رود از تعداد روز کاهش می یابد توسط 0.006 وجود ندارد. متغیر شاخص نشان داده شده است به عنوان progAcademic تفاوت انتظار می رود در تعداد دفعات ورود به سیستم بین گروه 2 و گروه مرجع (است prog 1 =). تعداد دفعات ورود به سیستم انتظار می رود برای رسیدن به سطح 2 از prog است .44 کمتر از تعداد ورود به سیستم انتظار می رود برای رسیدن به سطح 1. متغیر شاخص برای progVocational تفاوت انتظار می رود در تعداد دفعات ورود به سیستم بین گروه 3 و group.The مرجع انتظار می رود تعداد دفعات ورود به سیستم برای رسیدن به سطح 3 از prog است 1.28 پایین تر از تعداد دفعات ورود به سیستم انتظار می رود برای رسیدن به سطح 1. برای تعیین اینکه prog به خودی خود، به طور کلی، از نظر آماری قابل توجه است، ما می توانیم یک مدل با و بدون مقایسه prog . به این دلیل مهم است که به تناسب مدل جداگانه، این است که مگر ما انجام می دهیم، پارامتر overdispersion ثابت برگزار می شود.m2 <- update(m1, . ~ . - prog) anova(m1, m2)
## Likelihood ratio tests of Negative Binomial Models ## ## Response: daysabs ## Model theta Resid. df 2 x log-lik. Test df LR stat. ## 1 math 0.8559 312 -1776 ## 2 math + prog 1.0327 310 -1731 1 vs 2 2 45.05 ## Pr(Chi) ## 1 ## 2 1.652e-10
• درجه آزادی آزمون دو کای دو نشان می دهد که prog پیش بینی آماری معنی دار است daysabs . • انحراف صفر از رهگیری فقط مدل با 313 درجه آزادی محاسبه می شود. سپس انحراف باقی مانده، انحراف از مدل کامل را ببینید. ما همچنین نشان داده شده است AIC و 2 * ورود به سیستم احتمال. • پارامتر تتا نشان داده شده است پارامتر پراکندگی است. چک کردن فرض مدل همانطور که قبلا ذکر شد، مدل دو جمله ای منفی فرض کنیم به معنای مشروط به واریانس شرطی برابر نیست. این نابرابری است با برآورد یک پارامتر پراکندگی (در خروجی نشان داده نشده است) است که به ثابت در یک مدل پواسون برگزار شد دستگیر شده است. بنابراین، مدل پواسون است که در واقع در مدل دو جمله ای منفی تو در تو. سپس می توان با استفاده از آزمون نسبت احتمال را به مقایسه این دو و آزمون این فرض مدل. برای این کار، ما مدل خود را به عنوان یک پواسون را اجرا خواهد کرد.m3 <- glm(daysabs ~ math + prog, family = "poisson", data = dat) pchisq(2 * (logLik(m1) - logLik(m3)), df = 1, lower.tail = FALSE)
## 'log Lik.' 2.157e-203 (df=5)
در این مثال مقدار مجذور مربع وجود 926.03 با یک درجه آزادی است. این شدت نشان می دهد مدل دو جمله ای منفی، برآورد پارامتر پراکندگی، مناسب تر از مدل پواسون است. ما می توانیم فاصله اطمینان برای ضریب های پروفایل تابع احتمال دریافت کنید.(est <- cbind(Estimate = coef(m1), confint(m1))) ## Waiting for profiling to be done... ## Estimate 2.5 % 97.5 % ## (Intercept) 2.615265 2.2421 3.012936 ## math -0.005993 -0.0109 -0.001067 ## progAcademic -0.440760 -0.8101 -0.092643 ## progVocational -1.278651 -1.6835 -0.890078
ما ممکن است علاقه مند در نگاه به نسبت میزان حادثه به جای ضرایب. برای این کار، ما می توانیم ضرایب مدل ما exponentiate. همین امر به فواصل اعتماد به نفس است.exp(est) ## Estimate 2.5 % 97.5 % ## (Intercept) 13.6708 9.4127 20.3470 ## math 0.9940 0.9892 0.9989 ## progAcademic 0.6435 0.4448 0.9115 ## progVocational 0.2784 0.1857 0.4106
خروجی بالا نشان می دهد که این نرخ حادثه برای prog = 2 0.64 برابر نرخ حادثه برای گروه مرجع (است prog 1 =). به همین ترتیب، نرخ حادثه برای prog = 3 0.28 برابر نرخ حادثه برای گروه مرجع نگه داشتن سایر متغیرها ثابت است. تغییر درصد در میزان حادثه از daysabs کاهش 1٪ برای هر واحد افزایش است math . مقادیر پیش بینی شده برای کمک به درک بیشتر مدل، ما می توانیم در تعداد پیش بینی شده برای سطوح مختلف از پیش بینی های ما نگاه کنید. در زیر ما مجموعه داده های جدید را با ارزش های ایجاد math و prog و سپس با استفاده از predict دستور برای محاسبه تعداد پیش بینی شده از وقایع. اول، ما می توانیم در تعداد پیش بینی شده برای هر مقدار از نگاه prog در حالی که برگزاری math در متوسط آن است. برای این کار، ما یک مجموعه داده جدید با ترکیبی از prog و math که ما دوست داریم که برای پیدا کردن مقادیر پیش بینی شده، سپس با استفاده از predict فرمان است.newdata1 <- data.frame(math = mean(dat$math), prog = factor(1:3, levels = 1:3, labels = levels(dat$prog))) newdata1$phat <- predict(m1, newdata1, type = "response") newdata1 ## math prog phat ## 1 48.27 General 10.237 ## 2 48.27 Academic 6.588 ## 3 48.27 Vocational 2.850
در خروجی بالا، ما می بینیم که تعداد پیش بینی شده از حوادث (به عنوان مثال، روز وجود ندارد) برای یک برنامه کلی در مورد 10.24 است، برگزاری math در متوسط آن است. تعداد پیش بینی شده از وقایع برای یک برنامه تحصیلی پایین تر در 6.59 است، و تعداد پیش بینی رویدادها برای یک برنامه حرفه ای است در مورد 2.85. در زیر ما به میانگین پیش بینی شده تعدادی از حوادث برای مقادیر به دست آوردن math در سراسر دامنه خود را برای هر سطح از prog و نمودار این.newdata2 <- data.frame( math = rep(seq(from = min(dat$math), to = max(dat$math), length.out = 100), 3), prog = factor(rep(1:3, each = 100), levels = 1:3, labels = levels(dat$prog)))
newdata2 <- cbind(newdata2, predict(m1, newdata2, type = "link", se.fit=TRUE)) newdata2 <- within(newdata2, { DaysAbsent <- exp(fit) LL <- exp(fit - 1.96 * se.fit) UL <- exp(fit + 1.96 * se.fit) })
ggplot(newdata2, aes(math, DaysAbsent)) + geom_ribbon(aes(ymin = LL, ymax = UL, fill = prog), alpha = .25) + geom_line(aes(colour = prog), size = 2) + labs(x = "Math Score", y = "Predicted Days Absent")
نمودار نشان می دهد تعداد مورد انتظار در سراسر طیف وسیعی از نمرات ریاضی، برای هر نوع از برنامه همراه با فاصله اطمینان 95 درصد است. توجه داشته باشید که خطوط مستقیم نمی کند چرا که این مدل ورود به سیستم خطی است، و آنچه که به رسم ارزش انتظار می رود، نه ورود به سیستم از مقادیر مورد انتظار می باشد. نکات • توصیه نمی شود که مدل دو جمله ای منفی به نمونه های کوچک استفاده شود. • یکی از دلایل شایع بیش از پراکندگی صفر اضافی توسط یک فرایند تولید داده های اضافی است. در این وضعیت، مدل صفر متورم باید در نظر گرفته شود. • اگر فرایند تولید داده ها برای هر 0s و (مانند تعداد روز را صرف در بیمارستان) اجازه نمی دهد، پس از آن یک مدل صفر کوتاه ممکن است مناسب تر باشد. • تعداد داده ها اغلب یک متغیر قرار گرفتن در معرض، که نشان می دهد چند بار این رویداد می تواند رخ داده است. این متغیر باید در مدل دو جمله ای منفی رگرسیون خود را با استفاده از گنجانیده offset گزینه. مشاهده glm اسناد و مدارک برای جزئیات بیشتر. • متغیر پیامد در یک رگرسیون دو جمله ای منفی می تواند اعداد منفی ندارد.نظرات
هیچ نظری وجود ندارد.
افزودن نظر
Sitemap
Copyright © 2017 - 2023 Khavarzadeh®. All rights reserved