رگرسیون باثبات یا رگرسیون مقاوم امروزه در تحلیل های آماری اهمیت زیادی پیدا کرده است. در این مقاله قصد دارم به آموزش رگرسیون باثبات یا رگرسیون مقاوم (robust regression) در R بپردازم. تا انتهای این مقاله همراه کیارا آکادمی باشید تا آموزش نرم افزار R را به صورت کاربردی دریافت نمایید.
رگرسیون باثبات یا رگرسیون مقاوم چیست؟
رگرسیون قوی روشی است که میتوانیم از آن به عنوان جایگزینی برای رگرسیون حداقل مربعات معمولی استفاده کنیم، وقتی که در مجموعه دادهای که با آن کار میکنیم، موارد پرت یا مشاهدات تأثیر گذار وجود دارد.
رگرسیون باثبات یا رگرسیون مقاوم در R
برای انجام رگرسیون قوی در R، میتوانیم از تابع rlm از بسته MASS استفاده کنیم که از نحو زیر استفاده میکند: مثال گام به گام زیر نحوه انجام رگرسیون قوی در R را برای یک مجموعه داده مشخص نشان می دهد.
مرحله 1: ایجاد داده
ابتدا، بیایید یک مجموعه داده برای کار با آن ایجاد کنیم:
#داده ایجاد کنید
df <- data.frame(x1=c(1, 3, 3, 4, 4, 6, 6, 8, 9, 3,11, 16, 16, 18, 19, 20, 23, 23, 24, 25),
x2=c(7, 7, 4, 29, 13, 34, 17, 19, 20, 12,25, 26, 26, 26, 27, 29, 30, 31, 31, 32), y=c(17, 170, 19, 194, 24, 2, 25, 29, 30, 32,44, 60, 61, 63, 63, 64, 61, 67, 59, 70)) |
#مشاهده شش ردیف اول داده ها
head(df) |
مرحله 2: رگرسیون حداقل مربعات را انجام دهید:
در مرحله بعد، بیایید یک مدل رگرسیون حداقل مربعات معمولی را متناسب کنیم و نموداری از باقیمانده های استاندارد شده ایجاد کنیم. در عمل، ما اغلب هر باقیمانده استاندارد شده با مقدار مطلق بزرگتر از 3 را به عنوان یک نقطه پرت در نظر می گیریم.
#براساس مدل رگرسیون حداقل مربعات معمولی
ols <- lm(y~x1+x2, data=df) |
#ایجاد نمودار مقادیر y در مقابل باقیمانده های استاندارد شده
plot(df$y, rstandard(ols), ylab=’Standardized Residuals’, xlab=’y’) abline(h=0) |
از نمودار می توانیم ببینیم که دو مشاهده با باقیمانده های استاندارد شده در حدود 3 وجود دارد. این نشانه ای است که دو عدد دور افتاده بالقوه در مجموعه داده وجود دارد و بنابراین ممکن است به جای آن از انجام رگرسیون قوی بهره مند شویم.
اجرای رگرسیون باثبات در R
مرحله 3: رگرسیون قوی را انجام دهید
در مرحله بعد، از تابع rlm برای برازش یک مدل رگرسیون قوی استفاده می کنیم:
library(MASS) |
#برازش مدل رگرسیون قوی
robust <- rlm(y~x1+x2, data=df) |
برای تعیین این که آیا این مدل رگرسیون قوی تناسب بهتری با داده ها در مقایسه با مدل OLS ارائه می دهد، می توانیم خطای استاندارد باقی مانده هر مدل را محاسبه کنیم. خطای استاندارد باقیمانده (RSE) راهی برای اندازه گیری انحراف استاندارد باقیمانده ها در یک مدل رگرسیونی است.
هر چه مقدار RSE کمتر باشد، یک مدل بیشتر میتواند با دادهها برازش کند.
کد زیر نحوه محاسبه RSE را برای هر مدل نشان می دهد:
#یافتن خطای استاندارد باقیمانده مدل ols
summary(ols)$sigma |
#یافتن خطای استاندارد باقیمانده مدل ols
summary(robust)$sigma |
میتوانیم ببینیم که RSE برای مدل رگرسیون قوی بسیار کمتر از مدل رگرسیون حداقل مربعات معمولی است، که به ما میگوید که مدل رگرسیون قوی برازش بهتری با دادهها ارائه میدهد.
مطالعه منابع بیشتر: