در این مقاله قصد دارم به آموزش رگرسیون تکه ای یا piecewise regression در R بپردازم. تا انتهای این مقاله همراه کیارا آکادمی باشید تا آموزش نرم افزار R را به صورت کاربردی دریافت نمایید.
آموزش رگرسیون تکه ای
رگرسیون تکه ای یک روش رگرسیونی است که ما اغلب زمانی از آن استفاده می کنیم که “نقاط شکست” واضحی در یک مجموعه داده وجود دارد. مثال گام به گام زیر نحوه انجام رگرسیون تکه ای در R را نشان می دهد.
مرحله 1: ایجاد داده
ابتدا بیایید چارچوب داده زیر را ایجاد کنیم:
#view DataFrame df <- data.frame(x=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), y=c(2, 4, 5, 6, 8, 10, 12, 13, 15, 19, 24, 28, 31, 34, 39, 44)) |
#view first six rows of data frame head(df) |
آموزش مقایسه زوجی پس از تجربه در R و آزمون تعقیبی post hoc
مرحله 2: داده ها را تجسم کنید
در مرحله بعد، بیایید یک Scatterplot برای تجسم داده ها ایجاد کنیم:
#create scatterplot of x vs. y plot(df$x, df$y, pch=16, col=’steelblue’) |
می بینیم که رابطه بین x و y به طور ناگهانی در اطراف x = 9 تغییر می کند.
مرحله 3: برازش مدل رگرسیون تکه ای
ما میتوانیم از تابع () segmented از بسته قطعهبندی شده در R استفاده کنیم تا یک مدل رگرسیون تکهای را در مجموعه دادههای خود جای دهیم:
library(segmented) |
#fit simple linear regression model fit <- lm(y ~ x, data=df) |
#fit piecewise regression model to original model, estimating a breakpoint at x=9 segmented.fit <- segmented(fit, seg.Z = ~x, psi=9) |
#view summary of segmented model summary(segmented.fit) |
همگرایی در 2 دور به دست آمد. (تغییر مرتبط 0) تابع () segmented نقطه شکست را در x = 8.762 تشخیص می دهد.
مدل رگرسیون تکه ای برازش شده به صورت زیر است:
If x ≤ 8.762: y = .32143 + 1.59524*(x) If x > 8.762: y = .32143 + 1.59524*(8.762) + (1.59524+2.40476)*(x-8.762) |
به عنوان مثال، فرض کنید مقدار x = 5 داریم. مقدار y تخمین زده شده به صورت زیر خواهد بود:
y = 0.32143 + 1.59524*(x) y = 0.32143 + 1.59524*(5) y = 8.297 |
یا فرض کنید مقدار x = 12 داریم. مقدار y تخمین زده شده خواهد بود:
y = 0.32143 + 1.59524*(8.762) + (1.59524+2.40476)* (12-8.762) y = 27.25 |
مرحله 4: مدل رگرسیون تکه ای نهایی را تجسم کنید
ما می توانیم از کد زیر برای تجسم مدل رگرسیون تکه ای نهایی در بالای داده های اصلی خود استفاده کنیم:
#plot original data |
#add segmented regression model plot(segmented.fit, add=T) |
به نظر می رسد که مدل رگرسیون تکه ای به خوبی با داده ها مطابقت دارد.
مطالعه منابع بیشتر:
4 پاسخ
رگرسیون چندگانه را هم آموزش بدید ممنون میشم
https://kiaraacademy.com/multiple-regression-in-r/
https://kiaraacademy.com/multiple-linear-regression/
تقدیم به شما
خیلی خوب بود تنها سایتی هستید که همه مباحث آماری را پوشش میدید عالی
افتخار دادید مرسی