رگرسیون خطی یا linear regression چیست
رگرسیون خطی به انگلیسی linear regression یک معادله خط است که بر اساس یک مجموعه از ازواج مرتب برای تخمین رفتار توابع رسم میشود, و میتواند براساس موئلفه اول, موئلفه دوم را پیش بینی کند.
رگرسیون خطی, برای پیش بینی روابط شبه خطی, یا توابع غیر خطی در دامنه محدود کاربرد دارد, اما باید توجه داشت که در مثال های واقعی, احتمال خطاء میتواند بسیار بالا باشد.
فرمول
رگرسیون خطی همانطور که از اسمش پیداست, یک معادله خط, به شکل عمومی f(x) = mx + b است؛ برای محاسبه شیب و عرض از مبداء, ابتداء باید میانگین موئلفه های اول (x) و دوم (y) را حساب کنیم, و مقدار متغیر های زیر را نیز بدست آوریم.
به SS جمع مربعات یا sum of squares گفته میشود؛ در این مرحله, مجموع مربع اختلاف موئلفه اول با میانگین موئلفه های اول بدست میآید.
به SP جمع مضارب یا sum of products گفته میشود.
شیب
بنا بر اطلاعات فوق, شیب برابر است با:
در زبان پایتون نیز به صورت زیر خواهد بود
import numpy as np
SP = np.sum( (x - np.mean(x)) * (y - np.mean(y)) )
SS = np.sum((x - np.mean(x)) ** 2)
slope = SP / SS
عرض از مبدا
عرض از مبدا رگرسیون خطی, به صورت زیر محاسبه میشود.
نکته: اگر رابطه ما یک تابع نباشد میتوانیم چندین رگرسیون خطی داشته باشیم. یعنی اگر به ازای x ما ۲ y داشته باشیم.
مثال
اگر رابطه زیر را از یک تابع خط داشته باشیم, معادله آن چه خواهد بود؟
{(1,2), (2,4), (3,6), (4,8), (10, 5)}
با کمی دقت میتوان فهمید که رابطه بین x و y برابر 2x است, و لذا شیب خط y/x خواهد بود؛ به عبارت دیگر رگرسیون خطی برابر $f(x) = 2x = y$ است؛ در این مثال, معادله رگرسیون خط, از تمام ازواج مرتب داده شده عبور میکند, اما گاهی اینطور نیست.
اگر مجموعه زیر از ازواج مرتب یک تابع به ما داده شده باشد, معادله رگرسیون خطی آن را حساب کنید.
A = {(1, 5),(2, 10),(3, 6)}
اول داده هارا حساب میکنیم.
- مجموع x ها: 6 | مجموع y ها: 21
- میانگین x ها: 2 | میانگین y ها: 7
- جمع مربعات (SS) موئلفه های اول: 2
- مجموع محصولات (SP) رابطه: 1
پاسخ:
- $a = m = {1\over 2} = 0.5 = {(14-{43\over 3}) \over (4-{14\over 3})}$
- $ b = 7-0.5*2 = 6 $
- $f(x) = 0.5x + 6$