جستجو کردن
Close this search box.

رگرسیون گام به گام در R

رگرسیون گام به گام در R
فهرست مطالب

در این مقاله قصد دارم به آموزش رگرسیون گام به گام در R بپردازم. تا انتهای این مقاله همراه کیارا آکادمی باشید تا آموزش نرم افزار R را به صورت کاربردی دریافت نمایید.

آموزش رگرسیون گام به گام در R

رگرسیون گام به گام روشی است که می‌توانیم از آن برای ساختن یک مدل رگرسیون از مجموعه‌ای از متغیرهای پیش‌ بینی‌کننده با وارد کردن و حذف پیش‌ بینی‌کننده‌ها به صورت گام به گام در مدل استفاده کنیم تا زمانی که هیچ دلیل معتبر آماری برای وارد کردن یا حذف بیشتر وجود نداشته باشد. هدف از رگرسیون گام به گام ساختن یک مدل رگرسیونی است که شامل تمام متغیرهای پیش بینی کننده است که از نظر آماری به طور معنی داری با متغیر پاسخ مرتبط هستند.

این آموزش نحوه انجام مراحل رگرسیون گام به گام زیر را در R توضیح می دهد:

  1. انتخاب گام به گام به جلو (Forward Stepwise)
  2. انتخاب گام به گام به عقب (Backward Stepwise)
  3. انتخاب گام به گام هر دو جهت (Both-Direction Stepwise)

برای هر مثال از مجموعه داده داخلی mtcars استفاده می کنیم:

#view first six rows of mtcars
head(mtcars)

گام به گام در R

ما یک مدل رگرسیون خطی چندگانه را با استفاده از mpg (مایل در هر گالن) به عنوان متغیر پاسخ و همه 10 متغیر دیگر در مجموعه داده به عنوان متغیرهای پیش‌بینی‌کننده بالقوه برازش خواهیم داد.

تحلیل آماری

برای هر مثال از تابع () step داخلی از بسته stats برای انجام انتخاب گام به گام استفاده می شود که از نحو زیر استفاده می کند:

step(intercept-only model, direction, scope)

تحلیل فرمول بالا:

  • مدل فقط رهگیری: فرمول مدل فقط رهگیری
  • جهت: حالت جستجوی گام به گام، می تواند “هر دو”، “عقب” یا “به جلو” باشد.
  • scope: فرمولی که مشخص می‌کند کدام پیش‌بینی‌کننده‌ها را می‌خواهیم وارد مدل کنیم

مثال 1: انتخاب گام به گام به جلو

کد زیر نحوه انجام انتخاب گام به گام رو به جلو را نشان می دهد:

#define intercept-only model
intercept_only <- lm(mpg ~ 1, data=mtcars)
#define model with all predictors
all <- lm(mpg ~ ., data=mtcars)
#perform forward stepwise regression
forward <- step(intercept_only, direction=’forward’, scope=formula(all), trace=0)
#view results of forward stepwise regression
forward$anova

گام به گام در R 1

#view final model
forward$coefficients

گام به گام در R 2

نکته: آرگومان trace=0 به R می گوید که نتایج کامل انتخاب گام به گام را نمایش ندهد. اگر تعداد زیادی متغیر پیش‌بینی‌کننده وجود داشته باشد، می‌تواند فضای کمی را اشغال کند. در اینجا نحوه تفسیر نتایج آمده است:

  1. ابتدا، مدل فقط رهگیری را برازش می کنیم. این مدل دارای AIC 115.94345 بود.
  2. در مرحله بعد، ما هر مدل یک پیش بینی کننده ممکن را برازش می کنیم. مدلی که کمترین AIC را تولید کرد و همچنین کاهش معنی‌داری در AIC در مقایسه با مدل فقط رهگیری داشت از پیش‌بینی‌کننده wt استفاده کرد. این مدل دارای AIC 73.21736 بود.
  3. در مرحله بعد، ما هر مدل دو پیش بینی کننده ممکن را برازش می کنیم. مدلی که کمترین AIC را تولید کرد و همچنین کاهش آماری معنی داری در AIC نسبت به مدل تک پیش بینی داشت، سیکل پیش بینی کننده را اضافه کرد. این مدل دارای AIC 63.19800 بود.
  4. در مرحله بعد، ما هر مدل سه پیش بینی ممکن را برازش می کنیم. مدلی که کمترین AIC را تولید کرد و همچنین از نظر آماری کاهش معنی داری در AIC نسبت به مدل دو پیش بینی کننده داشت، اسب بخار پیش بینی کننده را اضافه کرد. این مدل دارای AIC 62.66456 بود.

در مرحله بعد، ما هر مدل چهار پیش بینی ممکن را برازش می کنیم. مشخص شد که هیچ یک از این مدل ها کاهش قابل توجهی در AIC ایجاد نکردند، بنابراین ما این روش را متوقف کردیم. مدل نهایی به نظر می رسد:

mpg ~ 38.75 – 3.17*wt – 0.94*cyl – 0.02*hyp

مثال 2: انتخاب گام به گام به عقب یا Backward Stepwise

کد زیر نحوه انجام انتخاب گام به گام به عقب را نشان می دهد:

#define intercept-only model
intercept_only <- lm(mpg ~ 1, data=mtcars)
#define model with all predictors
all <- lm(mpg ~ ., data=mtcars)
#perform backward stepwise regression
backward <- step(all, direction=’backward’, scope=formula(all), trace=0)
#view results of backward stepwise regression
backward$anova

گام به گام در R 3

#view final model
backward$coefficients

گام به گام در R 4

در اینجا نحوه تفسیر نتایج آمده است:

  1. ابتدا، مدلی را با استفاده از همه پیش بینی کننده های p برازش می کنیم. این را به صورت Mp تعریف کنید.
  2. بعد، برای k = p، p-1، … 1، ما همه مدل‌های k را که شامل همه پیش‌بینی‌کننده‌ها به جز یکی از Mk هستند، برای مجموع متغیرهای پیش‌بینی‌کننده k-1 برازش می‌دهیم. بعد، بهترین را از بین این مدل های k انتخاب کنید و آن را Mk-1 بنامید.
  3. در نهایت، ما بهترین مدل را از بین M0…Mp با استفاده از AIC انتخاب می کنیم.

مدل نهایی به نظر می رسد:

mpg ~ 9.62 – 3.92*wt + 1.23*qsec + 2.94*am

مثال 3: انتخاب گام به گام هر دو جهت Both-Direction Stepwise

کد زیر نحوه انجام انتخاب گام به گام دو جهته را نشان می دهد:

#define intercept-only model
intercept_only <- lm(mpg ~ 1, data=mtcars)
#define model with all predictors
all <- lm(mpg ~ ., data=mtcars)
#perform backward stepwise regression
both <- step(intercept_only, direction=’both’, scope=formula(all), trace=0)
#view results of backward stepwise regression
both$anova

گام به گام در R 5

#view final model
both$coefficients

گام به گام در R 6

در اینجا نحوه تفسیر نتایج آمده است:

  • ابتدا، مدل فقط رهگیری را برازش می کنیم.
  • در مرحله بعد، پیش‌بینی‌کننده‌ها را به‌طور متوالی به مدل اضافه کردیم، درست مانند انتخاب گام‌به‌گام. با این حال، پس از افزودن هر پیش‌بینی‌کننده، پیش‌بینی‌کننده‌هایی را که دیگر بهبودی در تناسب مدل ایجاد نمی‌کردند، حذف کردیم.
  • این روند را تا رسیدن به مدل نهایی تکرار کردیم.

مدل نهایی به نظر می رسد:

mpg ~ 9.62 – 3.92*wt + 1.23*qsec + 2.94*am

توجه داشته باشید که انتخاب گام به گام رو به جلو و انتخاب گام به گام هر دو جهت، مدل نهایی یکسانی را تولید می کند در حالی که انتخاب گام به گام به عقب مدل متفاوتی را تولید می کند.

مشاوره پایان نامه و رساله

منابع بیشتر برای مطالعه:

A Complete Guide to Stepwise Regression in R

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *