تحلیل رگرسیون خطی ساده
رگرسیون خطی ساده یک تکنیک آماری است که برای تحلیل رابطه بین دو متغیر کمی استفاده میشود. متغیری که سعی در پیشبینی آن داریم، متغیر وابسته یا پاسخ نامیده میشود، در حالی که متغیری که برای پیشبینی استفاده میشود، متغیر مستقل یا پیشبینیکننده نامیده میشود. در رگرسیون خطی ساده، ما تلاش میکنیم بهترین خط مستقیمی را که رابطه بین این دو متغیر را توصیف میکند، پیدا کنیم.
مفاهیم اساسی رگرسیون خطی ساده
رگرسیون خطی ساده بر این فرض استوار است که بین متغیر وابسته \(Y\) و متغیر مستقل \(X\) رابطه خطی وجود دارد. شکل کلی یک مدل رگرسیون خطی ساده به صورت زیر است:
\[ Y = \beta_0 + \beta_1 X + \epsilon \]
کجا:
– \(Y \) متغیر وابسته است.
– \(X \) متغیر مستقل است.
- \( \beta_0 \) نقطه تقاطع است، که مقدار \(Y\) را زمانی که \(X = 0\) است، نشان میدهد.
– \( \beta_1 \) شیب یا گرادیان است که میانگین تغییر در \(Y\) به ازای هر واحد تغییر در \(X\) است.
- \( \epsilon \) خطا یا عبارت باقیماندهای است که نشاندهنده تغییرپذیری در \(Y\) است که نمیتوان آن را با \(X\) توضیح داد.
هدف رگرسیون خطی ساده، تخمین پارامترهای \(\beta_0\) و \(\beta_1\) است به طوری که بتوان از مدل برای پیشبینی مقدار \(Y\) مرتبط با مقدار \(X\) استفاده کرد.
روش حداقل مربعات
یکی از رایجترین روشهای مورد استفاده برای برازش یک مدل رگرسیون خطی ساده، روش کمترین مربعات است. هدف این روش، کمینه کردن مجموع مربعات انحرافات عمودی بین مشاهدات واقعی و مقادیر پیشبینیشده توسط مدل است. فرض کنید n مشاهده داریم که شامل جفتهای \((x_i, y_i)\) برای \(i = 1, 2, …, n\) هستند. تابعی که باید کمینه شود عبارت است از:
\[ S(\beta_0, \beta_1) = \sum_{i=1}^{n} (y_i – (\beta_0 + \beta_1 x_i))^2 \]
برای یافتن \(\beta_0\) و \(\beta_1\) که این تابع را به حداقل میرسانند، مشتقات جزئی \(S(\beta_0, \beta_1)\) را نسبت به هر پارامتر میگیریم و این مشتقات را برابر با صفر قرار میدهیم. محاسبه ریاضی را میتوان به صورت زیر ساده کرد:
\[ \beta_1 = \frac{\sum_{i=1}^{n} (x_i – \bar{x})(y_i – \bar{y})}{\sum_{i=1}^{n} (x_i – \bar{x})^2} \]
\[ \beta_0 = \bar{y} – \beta_1 \bar{x} \]
کجا:
- \(\bar{x}\) میانگین \(X\) است.
– \(\bar{y}\) میانگین \(Y\) است.
پس از بدست آوردن پارامترهای \(\beta_0\) و \(\beta_1\)، میتوان از یک مدل رگرسیون خطی ساده برای پیشبینی مقدار \(Y\) برای هر مقدار \(X\) استفاده کرد.
فرضیات در رگرسیون خطی ساده
برای نتایج معتبر و قابل اعتماد، رگرسیون خطی ساده چندین چیز را فرض میکند:
۱. خطی بودن: رابطه بین متغیر وابسته و متغیر مستقل باید خطی باشد.
۲. استقلال: مشاهدات باید مستقل از یکدیگر باشند.
۳. هموسکادیسیتی: تغییرپذیری باقیمانده باید در کل دامنه مقادیر متغیر مستقل ثابت باشد.
۴. نرمال بودن باقیماندهها: باقیماندهها (خطاها) باید از توزیع نرمال پیروی کنند.
اگر این فرضیات رعایت نشوند، نتایج یک مدل رگرسیون خطی ساده غیرقابل اعتماد خواهد بود و ممکن است قادر به پیشبینی دقیق نباشد.
ارزیابی مدل رگرسیون
یک راه برای ارزیابی اینکه یک مدل رگرسیون خطی ساده چقدر خوب پیشبینی کرده است، استفاده از ضریب تعیین (\(R^2\)) است. ضریب تعیین، نسبت تغییرپذیری در متغیر وابسته را نشان میدهد که میتواند توسط تغییرپذیری در متغیرهای مستقل توضیح داده شود.
\[ R^2 = \frac{\sum_{i=1}^{n} (\hat{y}_i – \bar{y})^2}{\sum_{i=1}^{n} (y_i – \bar{y})^2} \]
کجا:
– \(\hat{y}_i\) مقدار پیشبینیشده \(Y\) است.
- \(y_i\) مقدار واقعی \(Y\) است.
– \(\bar{y}\) میانگین مقادیر \(Y\) است.
مقدار \(R^2\) از 0 تا 1 متغیر است. مقدار \(R^2\) نزدیک به 1 نشان میدهد که مدل میتواند بیشتر تغییرپذیری در متغیر وابسته را توضیح دهد.
پیادهسازی در زبان برنامهنویسی
برای پیادهسازی رگرسیون خطی ساده، میتوانیم از نرمافزارهای آماری یا زبانهای برنامهنویسی مختلفی استفاده کنیم. در زیر یک نمونه پیادهسازی در پایتون با استفاده از کتابخانه `scikit-learn` آورده شده است:
«پایتون
numpy را به عنوان np وارد کنید
matplotlib.pyplot را به صورت plt وارد کنید
از sklearn.linear_model import LinearReggression
از sklearn.metrics import mean_squared_error، r2_score
داده ها
X = np.array([[1], [2], [3], [4], [5]]).astype(np.float64)
y = np.array([1.5, 3.6, 3.5, 2.9, 5.5]).astype(np.float64)
مدل
مدل = رگرسیون خطی ()
مدل.برازش(X، y)
پردیکسی
y_pred = model.predict(X)
ضریب
beta_0 = مدل.intercept_
beta_1 = model.coef_[0]
چاپ(f'رهگیری: {beta_0}')
چاپ(f'شیب: {beta_1}')
چاپ(f'میانگین مربعات خطا: {mean_squared_error(y, y_pred)}')
چاپ(f'ضریب تعیین (R^2): {r2_score(y, y_pred)}')
نمودار دادهها و خط رگرسیون
تابع پراکندگی (plt.scatter(X, y, color='blue'))
plt.plot(X, y_pred, color='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.show ()
""
در مثال بالا، ابتدا کتابخانههای لازم را وارد میکنیم، دادههای \(X\) و \(Y\) را تعریف میکنیم و سپس از شیء `LinearRegression` از `scikit-learn` برای برازش مدل با دادهها استفاده میکنیم. پس از برازش مدل، پیشبینیها را انجام میدهیم و ضرایب و همچنین میانگین مربعات خطا و ضریب تعیین را محاسبه میکنیم. در نهایت، دادهها و خط رگرسیون را رسم میکنیم.
نتیجه گیری
رگرسیون خطی ساده یک ابزار تحلیل آماری قدرتمند است که برای توضیح رابطه بین دو متغیر کمی استفاده میشود. با برخی فرضیات اساسی در مورد خطی بودن، استقلال، همگنی واریانس و نرمال بودن، میتوانیم مقدار متغیر وابسته را بر اساس مقادیر متغیرهای مستقل پیشبینی کنیم. روش کمترین مربعات روشی مؤثر برای برازش خط رگرسیون و تعیین پارامترهای بهینه ارائه میدهد. ارزیابی مدل از طریق ضریب تعیین (R2) بینشی در مورد عملکرد مدل ما ارائه میدهد.
اگرچه رگرسیون خطی ساده محدودیتهایی دارد، مانند اینکه فقط میتواند دو متغیر و فرضیاتی را که باید رعایت شوند، مدیریت کند، اما این تکنیک همچنان یک پایه مهم در آمار و تحلیل دادهها است و اغلب به عنوان اولین قدم در درک رابطه بین متغیرها قبل از حرکت به سمت روشهای پیچیدهتر استفاده میشود.