در این مقاله قصد دارم به آموزش رگرسیون حداقل مربعات وزنی در R بپردازم. تا انتهای این مقاله همراه کیارا آکادمی باشید تا آموزش نرم افزار R را به صورت کاربردی دریافت نمایید.
رگرسیون حداقل مربعات وزنی
یکی از مفروضات کلیدی رگرسیون خطی این است که باقیمانده ها با واریانس مساوی در هر سطح از متغیر پیش بینی توزیع می شوند. این فرض به عنوان homoscedasticity شناخته می شود. هنگامی که این فرض نقض می شود، می گوییم که ناهمسانی در باقیمانده ها وجود دارد. هنگامی که این اتفاق می افتد، نتایج رگرسیون غیر قابل اعتماد می شود. یکی از راههای رسیدگی به این مسئله استفاده از رگرسیون حداقل مربعات وزنی است، که وزنهایی را روی مشاهدات قرار میدهد به طوری که به مشاهداتی که واریانس خطای کوچکی دارند وزن بیشتری داده میشود، زیرا حاوی اطلاعات بیشتری در مقایسه با مشاهدات با واریانس خطای بزرگتر هستند.
این آموزش یک مثال گام به گام از نحوه انجام رگرسیون حداقل مربعات وزن در R ارائه می دهد.
مرحله 1: ایجاد داده
کد زیر یک چارچوب داده ایجاد می کند که شامل تعداد ساعات مطالعه و نمره امتحان مربوطه برای 16 دانش آموز است:
df <- data.frame(hours=c(1, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 8), score=c(48, 78, 72, 70, 66, 92, 93, 75, 75, 80, 95, 97, 90, 96, 99, 99)) |
مرحله 2: رگرسیون خطی را انجام دهید
در مرحله بعد، از تابع ()lm برای برازش یک مدل رگرسیون خطی ساده استفاده می کنیم که از ساعت به عنوان متغیر پیش بینی و امتیاز به عنوان متغیر پاسخ استفاده می کند:
#fit simple linear regression model model <- lm(score ~ hours, data = df) |
#view summary of model summary(model) |
مرحله 3: تست ناهمگنی
در مرحله بعد، یک نمودار باقیمانده در برابر مقادیر برازش ایجاد می کنیم تا به صورت بصری ناهمسانی را بررسی کنیم:
#create residual vs. fitted plot plot(fitted(model), resid(model), xlab=’Fitted Values’, ylab=’Residuals’) |
#add a horizontal line at 0 abline(0,0) |
ما میتوانیم از نمودار ببینیم که باقیماندهها یک شکل “مخروطی” از خود نشان میدهند – آن ها با واریانس مساوی در سراسر نمودار توزیع نمیشوند. برای آزمایش رسمی ناهمگنی، میتوانیم آزمایش بروش-پاگان را انجام دهیم:
#load lmtest package library(lmtest) |
#perform Breusch-Pagan test bptest(model) |
آزمون بروش-پاگان از فرضیه های صفر و جایگزین زیر استفاده می کند:
- فرضیه صفر (H0): همسانی وجود دارد (باقیمانده ها با واریانس مساوی توزیع می شوند)
- فرضیه جایگزین (HA): ناهمسانی وجود دارد (باقیمانده ها با واریانس مساوی توزیع نمی شوند)
از آن جایی که p-value از آزمون 0.0466 است، فرضیه صفر را رد می کنیم و نتیجه می گیریم که ناهمسانی یک مشکل در این مدل است.
مرحله 4: رگرسیون حداقل مربعات وزنی را انجام دهید
از آن جایی که ناهمسانی وجود دارد، حداقل مربعات وزنی را با تعریف وزن ها به گونه ای انجام می دهیم که به مشاهدات با واریانس کمتر وزن بیشتری داده شود:
#define weights to use wt <- 1 / lm(abs(model$residuals) ~ model$fitted.values)$fitted.values^2 |
#perform weighted least squares regression wls_model <- lm(score ~ hours, data = df, weights=wt) |
#view summary of model summary(wls_model) |
از خروجی می بینیم که برآورد ضریب برای ساعات متغیر پیش بینی کننده کمی تغییر کرده و برازش کلی مدل بهبود یافته است. مدل حداقل مربعات وزنی دارای خطای استاندارد باقی مانده 1.199 در مقایسه با 9.224 در مدل رگرسیون خطی ساده اصلی است.
تجزیه و تحلیل داده های اکتشافی در R
این نشان می دهد که مقادیر پیش بینی شده تولید شده توسط مدل حداقل مربعات وزنی در مقایسه با مقادیر پیش بینی شده تولید شده توسط مدل رگرسیون خطی ساده بسیار به مشاهدات واقعی نزدیک تر است. مدل حداقل مربعات وزنی نیز دارای R-squared 0.6762 در مقایسه با 0.6296 در مدل رگرسیون خطی ساده اصلی است. این نشان می دهد که مدل حداقل مربعات وزنی قادر به توضیح بیشتر واریانس نمرات امتحان در مقایسه با مدل رگرسیون خطی ساده است. این معیارها نشان می دهد که مدل حداقل مربعات وزنی در مقایسه با مدل رگرسیون خطی ساده، برازش بهتری را با داده ها ارائه می دهد.
مطالعه منابع بیشتر: