با رگرسیون خطی (Linear Regression) آشنا شوید!
رگرسیون خطی (Linear Regression) روشی آماری برای یافتن رابطهی میان متغیرهای مستقل (Dependent Variables)و وابسته (Independent Variables)است. این روش در یادگیری ماشین با ناظر (Supervised Machine Learning) بسیار کاربرد دارد.
- 1. مقدمه
- 2. رگرسیون چیست؟
- 3. با رگرسیون خطی (Linear Regression) چیست؟
- 3.1. یک مثال: رگرسیون خطی (Linear Regression) و سابقهی کاری و حقوق
- 6.1. طرز کار با گرادیان نزولی برای بهروزرسانی پارامترهای معادله
مقدمه
اخیراً هوش مصنوعی (Artificial Intelligence) بسیار مورد توجه قرار گرفته است و افراد در حوزههای مختلف سعی میکنند از هوش مصنوعی استفاده کنند تا کارهایشان بسیار راحتتر پیش رود؛ برای مثال، اقتصاددانان از هوش مصنوعی برای پیشبینی قیمت بازار در آینده برای کسب سود استفاده میکنند، پزشکان از هوش مصنوعی برای طبقهبندی بدخیم یا خوشخیمبودن تومور استفاده میکنند، هواشناسان برای پیشبینی آبوهوا از هوش مصنوعی استفاده میکنند، استخدامکنندگان منابع انسانی از هوش مصنوعی برای بررسی و تأیید و رد رزومهی متقاضیان استفاده میکنند.
برای آشنایی با هوش مصنوعی این مطلب را مطالعه کنید:
محرکی که در پشت پردهی چنین استفادهی همهگیری از هوش مصنوعی وجود دارد الگوریتمهای یادگیری ماشین (Machine Learning) است. الگوریتم سادهای که همهی علاقهمندان به یادگیری ماشین، یادگیری خود را با آن شروع میکنند الگوریتم رگرسیون خطی (Linear Regression) است. در این مطلب قصد داریم با این الگوریتم بیشتر آشنا شویم و ببینیم چطور کار میکند.
برای آشنایی با یادگیری ماشین این مطلب را مطالعه کنید:
رگرسیون چیست؟
رگرسیون (Regression) نوعی تکنیک مدلسازی پیشبینی (Predictive Modelling) است که رابطهی میان یک متغیر وابسته و مستقل را بررسی میکند.
این تعریف درواقع تعریفی کتابی است؛ اگر بخواهیم سادهتر بگوییم، میتوانیم رگرسیون را اینگونه تعریف کنیم: «یافتن بهترین خط مناسب یا معادلهی رگرسیون با استفاده از رابطهی میان متغیرها که میتواند برای پیشبینی استفاده شود.»
انواع مختلفی از رگرسیون، مانند رگرسیون خطی (Linear Regression)، رگرسیون چندجملهای (Polynomial Regression) و رگرسیون لجستیک (Logistic Regression)، وجود دارد. در ادامه میخواهیم رگرسیون خطی را بررسی کنیم.
با رگرسیون خطی (Linear Regression) چیست؟
رگرسیون خطی نوعی تجزیهوتحلیل اولیه و متداول است که معمولاً روی دادههای پیوسته کار میکند. در این رگرسیون ما قصد داریم بهترین خطی را که با نقاط دادههای موجود تناسب دارد انتخاب کنیم. درواقع میخواهیم بهترین معادلهی خطی را برای دادههای مدنظر داشته باشیم تا با استفاده از آن معادله بتوانیم خروجی مدنظر برای دادهی جدید را پیشبینی کنیم.
رگرسیون خطی ساده نوعی تحلیل رگرسیون است که در آن تعداد متغیرهای مستقل یک است و بین متغیر مستقل (x) و وابسته (y) رابطهی خطی وجود دارد؛ البته رگرسیون خطی چندمتغیره هم داریم که در آن تعداد متغیرهای مستقل بیشتر از یک است.
یک مثال: رگرسیون خطی (Linear Regression) و سابقهی کاری و حقوق
برای درک بهتر موضوع بهتر است با هم مثالی را بررسی کنیم: بیایید این مجموعهداده را با هم در نظر بگیریم. در جدول دادههای مربوط به سابقهی کاری یا همان سالهای تجربهی کاری و حقوقی که شخص بهازای سابقهی کاریاش میگیرد مشخص شده است. در این مثال ستون سالهای تجربه، متغیر مستقل و مقادیر ستون حقوق (واحد آن ۱۰۰۰ دلار است) متغیرهای وابسته هستند؛ اما چرا حقوق متغیر وابسته است؟ چون میتوانیم براساس سالهای تجربه، مقدار ستون حقوق (متغیرهای وابسته) را تعیین یا پیشبینی کنیم. اگر به دادهها نگاه کنیم، میبینیم که مقادیر ستون وابسته (حقوق) براساس سالهای تجربه افزایش یا کاهش مییابد؛ یعنی وقتی فردی سالهای بیشتری تجربه کاری داشته باشد، حقوق بیشتری دریافت کنیم و اگر سالهای کمتری تجربه داشته باشد، حقوقش هم کمتر خواهد بود.
حال اگر این دادهها را در فضای ویژگی به نمایش بگذاریم، میبینیم که این دادهها تقریباً بهصورت یک خط در فضا قرار دارند.
ما باید آن خطی را پیدا کنیم که بهبهترین شکل این دادهها را به نمایش میگذارد. درواقع این هدفی است که در رگرسیون خطی دنبال میکنیم.
بیایید ببینیم مراحل انجامدادن آن به چه شکل است.
مراحل رگرسیون خطی
رگرسیون خطی با رگرسیون خطی (Linear Regression) چند مرحله را شامل است:
- مقداردهی تصادفی پارامترها برای تابع فرضی؛ یعنی درواقع ابتدا یک معادلهی خطی با مقادیر رندوم را در نظر میگیریم.
- محاسبهی خطا با استفاده از یک تابع زیان (Cost Function) که در آن میبینیم خطی که بهصورت فرضی در نظر گرفتیم، چقدر با مقادیر واقعی فاصله دارد.
- در این مرحله لازم است پارامترها را با توجه به مشتقات جزئی و نرخ یادگیری بهروزرسانی کنیم که درواقع این کار را الگوریتم گرادیان نزولی (Gradient Descent) انجام میدهد.
- تکرار این روند تا بهحداقلرسیدن مقدار خطا.
همانطور که توضیح دادیم، هدف از رگرسیون خطی رسیدن به یک معادلهی خطی مناسب با کمترین خطاست. این معادله را میتوان بهاین شکل نشان داد:
که در این معادله:
«b» اینترسپت (Intercept) یا مقدار ثابت
«y» متغیر وابسته است.
دو پارامتر شیب (m) و مقدار ثابت (b) در این معادله در ابتدا بهصورت رندوم در نظر گرفته میشوند تا طبق مراحلی که توضیح داده شد، بهبهترین مقدار ممکن برسند.
همانطور که در مراحل رگرسیون خطی دیدیم، بعد از اینکه یک معادلهی خطی با پارامترهای رندوم ایجاد شد، لازم است با استفاده از تابع زیان (رگرسیون خطی چیست؟ Cost Function) خطای موجود را به دست آوریم. در بخش بعد به یکی از معروفترین توابع زیان اشاره خواهیم کرد.
تابع زیان
بیایید بار دیگر مثالمان را در نظر بگیریم. بهمنظور بهدستآوردن بهترین خط میان نقاط موجود در دادهها، میتوانیم از معیاری بهنام «مجموع خطای مربع» (SSE/ Sum of Squared Error) استفاده کنیم تا با کاهش خطا بهترین تناسب را بیابیم. خطا مجموع تفاوت میان مقدار واقعی و مقدار پیشبینی شده است.
توابع زیان مختلفی برای محاسبهی خطا وجود دارد که ما در اینجا تابع SSE را بررسی میکنیم.
برای یافتن خطا باید از این فرمول استفاده کنیم.
بیایید فرض کنیم مقادیر رندومی که برای دو پارامتر شیب (m) و مقدار ثابت (b) در نظر گرفته شده بهاین صورت است:
حال ما میخواهیم با استفاده از تابع زیان SSE مقدار خطای این معادله را بررسی کنیم:
میبینیم که مقدار خطای SSE برابر با ۲۴۵/۳۸ است. طبق مراحل رگرسیون خطی ما باید بعد از مشخصکردن مقدار خطا، لازم است با استفاده از الگوریتم گرادیان نزولی (Gradient Descent) مقدار پارامترهای معادله را بهروزرسانی کنیم تا مقدار خطا کم شود و به خطی که بهبهترین شکل دادهها را به نمایش میگذارد بیشتر نزدیک شویم.
الگوریتم گرادیان نزولی
مفهوم مهم بعدی موردنیاز برای درک رگرسیون خطی گرادیان نزولی (Gradient Descent) است. گرادیان نزولی یک روش بهروزرسانی پارامترها برای کاهش تابع زیان است. همانطور که قبلاً هم اشاره کردیم، ما با مقادیر رندوم شروع میکنیم و سپس این مقادیر را بهطور مکرر تغییر میدهیم تا خطا کاهش یابد. گرادیان نزولی به ما در نحوهی تغییر مقدار این پارامترها کمک میکند.
برای درک بهتر، بیایید گودالی را بهشکل U تصور کنیم که در بالاترین نقطهی گودال ایستادهایم و هدف ما رسیدن به پایین گودال است، اما یک مشکل وجود دارد، آنهم این است که فقط میتوانید تعداد مشخصی گام جداگانه برای رسیدن به پایین گودال برداریم. اگر تصمیم بگیریم گامبهگام جلو برویم، درنهایت به انتهای گودال میرسیم، اما مدتزمان بیشتری طول میکشد. اگر هر بار قدمهای بلندتری برداریم، زودتر به آن میرسیم، اما این احتمال وجود دارد که از انتهای گودال فراتر برویم و از آن رد شویم. در الگوریتم گرادیان نزولی، تعداد گامهایی که برمیداریم برای رسیدن به خطای حداقل، نرخ رگرسیون خطی چیست؟ یادگیری نامیده میشود. این مقدار تعیین میکند که الگوریتم با چه سرعتی به حداقل خطا برسد.
طرز کار با گرادیان نزولی برای بهروزرسانی پارامترهای معادله
شاید برایتان این سوال پیش آمده باشد که چگونه میتوان از گرادیان نزولی برای بهروزرسانی پارامترهای معادله استفاده کرد. برای بهروزرسانی پارامترها، گرادیان تابع زیان را محاسبه میکنیم. برای یافتن این گرادیان مشتقات جزئی را نسبت به دو پارامتر شیب و اینترسپت (Intercept) محاسبه میکنیم.
حال بیایید در نظر بگیریم که تابع زیان ما خطای میانگین مربع (MSE / Mean Squared Error) است. این تابع یکی دیگر از معروفترین توابع زیانی است که برای رگرسیون خطی استفاده میشود. در این تابع ما مربع اختلاف خطا را برای تمامی نقاط داده محاسبه میکنیم؛ سپس این مقادیر را با هم جمع و آن مقدار را بر تعداد کل نقاط داده تقسیم میکنیم. فرمول این تابع بهاین شکل است:
حال باید مشتق جزئی این تابع را در نسبت با پارامترهای معادلهی خطی به دست آوریم. این معادلهی خطی ماست:
طبق فرمول تابع زیان (MSE)، مشتق جزئی این تابع در نسبت با دو پارامتر a0 و a1 بهاین شکل محاسبه میشود:
محاسبهی این مشتقات جزئی به دانش آمار و ریاضی نیاز دارد.
بعد از محاسبهی مشتقات جزئی، حال باید مقدار این دو پارامتر را با توجه به مشتقها بهروزرسانی کنیم:
مشتقات جزئی درواقع همان گرادیان هستند و از آنها برای بهروزرسانی مقادیر a0 و a_1 استفاده میشود. آلفا (α) نرخ یادگیری است که پیشتر دربارهی آن صحبت کردیم. Predi درواقع همان معادلهی خطی است که در هر مرحله پیشبینی میکنیم که با معادله قبلی مقایسه میشود.
مراحل رگرسیون چندین بار تکرار میشود تا درنهایت به کمترین خطای ممکن یا همان انتهاب گودال برسیم.
جمعبندی مطالب دربارهی رگرسیون خطی (Linear Regression)
در این مطلب یکی از سادهترین الگوریتمهای یادگیری ماشین با ناظر یعنی رگرسیون خطی (Linear Regression) را معرفی کردیم. رگرسیون خطی الگوریتمی است که همهی علاقهمندان به یادگیری ماشین باید بدانند و همچنین مبدأ مناسبی برای شروع افرادی است که میخواهند یادگیری ماشین را بیاموزند. رگرسیون خطی یک الگوریتم ساده اما مفید است که در مواردی که میخواهیم کمیتی را براساس فاکتورهایی که میتوانند با یک خط مستقیم توصیف شوند، پیشبینی کنیم استفاده میشود.
آموزش رگرسیون خطی ساده، مرحله به مرحله و با مثال
آموزش رگرسیون خطی ساده به همراه مثال
در این مطلب ما از روش "Ordinary Least Squares (OLS)" یا «کمترین مربعات معمولی» استفاده می کنیم.
فرض می کنیم که جدول زیر نشان دهنده متراژ و قیمت چند خانه است.
مثال از رگرسیون خطی ساده
ستون Area در این جدول نشان دهنده متراژ و ستون Price نشان دهنده قیمت آن خانه است. برای مثال قیمت خانه 1 متری 1 تومان، خانه 2 متری 3 تومان است.
اگر مقادیر جدول بالا را بر روی نمودار رسم کنیم، متوجه وجود یک رابطه خطی بین متراژ و قیمت می شویم، به طوری که در نتیجه افزایش متراژ، قیمت نیز افزایش می یابد.
https://www.aparat.com/v/Cmohf داده های مثال رگرسیون خطی بر روی نمودار
برای رسم این نمودار از کد زیر استفاده شده است:
در چنین مواردی که یک رابطه خطی بین متغیرها وجود دارد، می توانیم برای پیش بینی مقادیر جدید، از رگرسیون خطی استفاده کنیم.
در رگرسیون خطی (Linear Regression)، به طور کلی دو نوع متغیر وجود دارد:
- متغیرهای مستقل، که اغلب با x نشان داده می شوند. در این مثال «متراژ»، یک متغیر مستقل است.
- متغیرهای وابسته، که در نتیجه متغیرهای مستقل محاسبه می شوند و به طور معمول با y نشان داده می شوند. در این مثال، «قیمت خانه» یک متغیر وابسته به متراژ است.
اگر یک نوع متغیر مستقل داشته باشیم، رگرسیون رگرسیون خطی چیست؟ خطی از نوع ساده (Simple Linear Regression) و در صورتی که چند نوع متغیر مستقل داشته باشیم، رگرسیون خطی چندگانه (Multiple Linear Regression) است. برای مثال قیمت نهایی خانه برگرفته از عواملی نظیر: متراژ، عمر بنا و محله باشد.
فرمول کلی رگرسیون خطی ساده
فرمول کلی محاسبه رگرسیون خطی ساده
با استفاده از این فرمول ما می توانیم به ازای هر ورودی x، خروجی y را محاسبه کنیم. با در نظر گرفتن مثال بالا، می خواهیم پیش بینی کنیم قیمت یک خانه 6 متری چقدر است.
بدین ترتیب، در فرمول معرفی شده، مقدار x، 6 خواهد بود و با محاسبه B1 و B0 می توانیم Y که همان قیمت این خانه است را پیش بینی کنیم.
فرمول محاسبه بتا رگرسیون خطی چیست؟ صفر در رگرسیون خطی ساده فرمول محاسبه بتا یک در رگرسیون خطی ساده
مشخص است که ابتدا باید B1 را حساب کنیم و سپس B0 را به دست بیاوریم.
برای محاسبه صورت کسر فرمول B1، برای هر ردیف، مقدار ستون x را از میانگین x ها کم می کنیم، مقدار ستون y را از میانگین y ها کم می کنیم، حاصل را در هم ضرب می کنیم.
برای تمامی ردیف ها این فرآیند را انجام می دهیم و در پایان تمامی این مقادیر را با هم جمع می کنیم.
محاسبه میانگین مقادیر در رگرسیون خطی ساده مثال مرحله به مرحله رگرسیون خطی ساده محاسبه بتا یک در رگرسیون خطی ساده
کد زیر، مربوط محاسبه B1 است.
در نتیجه اجرای این کد مقادیر زیر به دست می آیند:
Average of x: 3.0
Average of y: 2.8
Beta1 = 0.8در مرحله بعد، Beta0 را محاسبه می کنیم.
فرمول بتا صفر در رگرسیون خطی ساده محاسبه بتا صفر در مثال رگرسیون ساده خطی
در نتیجه اجرای این کد مقدار Beta0 به صورت زیر محاسبه می شود:
Beta0 = 2.8 - ( 0.8 * 3.0 ) = 0.39999999999999947
پس از محاسبه Beta1 و Beta0 می توانیم معادله خط رگرسیون را به دست بیاوریم:
Y = Beta0 + Beta0 x
Y = 0.8 + ( 0.399 * x)
در این معادله x، مقدار ورودی کاربر (با توجه به مثال، متراژ خانه) و Y نیز پاسخ نهایی یا همان قیمت خانه مورد نظر است.
ارزیابی مدل رگرسیون خطی ساده
پس از به دست آوردن معادله خط رگرسیون، نوبت به ارزیابی آن می رسد. برای این کار متراژ خانه ها را به تابع ساخته شده می دهیم و قیمت های محاسبه شده را با قیمت های اصلی مقایسه می کنیم.
ارزیابی مدل رگرسیون خطی ساده
ستون Predicted price در جدول قیمت های محاسبه شده را نشان می دهد. همانطور که مشخص است، مدل ساخته شده دارای خطا است. برای محسابه این بخش از کد زیر استفاده می شود:
حاصل اجرای کد بالا نیز به صورت زیر است:
Predicted values are: [1.1999999999999995, 1.9999999999999996, 3.5999999999999996, 2.8, 4.3999999999999995]
که همان مقادیر ستون Predicted price هستند.
در نمودار زیر نقاط آبی رنگ، قیمت های اصلی و نقاط قرمز رنگ قیمت های پیش بینی شده هستند.
مقایسه مقادیر پیش بینی شده توسط مدل رگرسیون خطی ساده با مقادیر اصلی
فاصله هر نقطه آبی تا نقطه نارنجی در همان عرض، نشان دهنده میزان خطای مدل در پیش بینی قیمت ها است.
نمودار بالا با استفاده از کد زیر رسم شده است:
محاسبه میزان خطای جذر میانگین مربعات (RMSE)
همانطور که گفته شده مشخص است مدل ساخته شده دارای خطا است، اما میزان خطای این مدل چقدر است؟
یکی از رایج ترین معیارهای سنجش خطا در مدل های رگرسیون و به طور کلی در مباحث ماشین لرنینگ، خطای Root Mean Squared Error است که به صورت زیر محاسبه می شود.
فرمول خطای جذر میانگین مربعات محاسبه فرمول خطای جذر میانگین مربعات مثال خطای جذر میانگین مربعات
قطعه کد بالا، RMSE را برای مقادیر مثال مطرح شده محاسبه می کند.
تمامی کدهای نوشته شده در این مطلب، به صورت یکجا از لینک زیر قابل دریافت هستند:
همانطور که گفته شد ما در این مطلب از روش کمترین مربعات معمولی (به انگلیسی: Ordinary Least Squares) (به اختصار OLS) استفاده کردیم. این روش برای مسایلی که تعداد متغیرهای وابسته و مستقل کم است و به طور کلی مسئله ساختار ساده ای دارد می تواند استفاده شود، اما در مسایل پیچیده تر که حجم داده ها و تعداد متعیرها بیشتر می شود نیاز است تا از روش هایی مثل «گرادیان کاهشی» استفاده کنیم که به صورت تکرار شونده و در چند مرحله بهترین مقدار را برای Beta1 و Beta0 به دست بیاورم تا در نهایت خط رگرسیون در مطلوبترین حالت رسم شود.
رگرسیون خطی به زبان ساده برای مدیران
یکی از مهمترین روشهای تحلیل داده در کسبوکار، رگرسیون خطی (Linear Regression) است. رگرسیون خطی، یکی از مهمترین الگوریتمهای یادگیری ماشین هم هست. اگرچه در بیشتر موارد مدیران خود چنین تحلیلهایی را انجام نمیدهند، برای تصمیمگیری بر مبنای خروجیهای تحلیل رگرسیون نیاز است تا با مفاهیم آن آشنا باشند. من در این مقاله به معرفی تحلیل رگرسیون میپردازم.
تحلیل رگرسیون چیست؟
فرض کنید شما مدیر بازاریابی یک خردهفروشی زنجیرهای هستید و علاقهمندید میزان فروش ماه آینده کالایی را پیشبینی کنید. شما میدانید که صدها عامل مانند وضعیت آبوهوا تا برنامههای ترویجی رقبا بر روی میزان تقاضای آن کالا اثر میگذارد. برخی از همکاران شما هم حدسهای خود را دارند. برای مثال یکی از آنها اصرار دارد که در ماههای بارانی میزان فروش آن محصول بالا میرود. دیگری میگوید به تجربه فهمیده که پس از گذشت چهار هفته از زمانی که خردهفروش رقیب تخفیفهای ویژه میگذارد، فروش آن کالا رشد چشمگیری میکند.
اینها همه فرضیاتی هستند که باید آزمایش شوند. تحلیل رگرسیون یک روش ریاضی است که به ما کمک میکند بفهمیم کدامیک از این عوامل در واقعیت مؤثر هستند. تحلیل رگرسیون به پرسشهایی مانند زیر پاسخ میدهد:
کدام عوامل مهمترین اثر را دارند؟
از کدامیک میتوان صرفنظر کرد؟
اثر متقابل این عوامل چگونه است؟
چقدر از میزان اثرگذاری این عوامل مطمئن هستیم؟
در تحلیل رگرسیون این عوامل “متغیر” نامیده میشوند. متغیر وابسته عاملی است که میخواهیم پیشبینی کنیم. در مثال خردهفروشی میزان فروش ماهیانه کالا متغیر وابسته است. عواملی که حدس میزنیم بر روی متغیر وابسته اثر میگذارند، متغیرهای مستقل نامیده میشوند.
چگونه تحلیل رگرسیون خطی انجام میشود؟
برای انجام تحلیل رگرسیون بهعنوان یکی از روشهای دادهکاوی (Data Mining) باید از یک سری گامهای کلی پیروی کرد که من در مقاله دیگری درباره فرآیند انجام پروژههای دادهکاوی توضیح دادهام. در اینجا تنها روی تحلیل دادهها متمرکز میشوم.
طبیعتاً برای تحلیل رگرسیون خطی لازم است تا در مورد متغیرهای موردنظر داده جمعآوری کرد. در مثال گفتهشده، لازم است تا دادههای میزان فروش ماهیانه در چند سال گذشته استخراج شود. فرض کنید اثر بارندگی را بر روی میزان فروش میخواهیم بسنجیم. بهاینترتیب باید دادههای میزان بارش متوسط ماهیانه در منطقه را برای همان دوره زمانی استخراج کرد. فرض کنید نمودار پراکندگی این دادهها را رسم کردیم و مانند شکل-۱ شده است.
شکل-۱
در شکل-۱ محور عمودی نشاندهنده متغیر وابسته (میزان فروش ماهیانه) و محور افقی نشاندهنده متغیر مستقل (میزان بارش متوسط ماهیانه) است. با نگاه کردن به شکل-۱ این دیدگاه تقویت میشود که در ماههای پربارش میزان فروش افزایش مییابد. گرچه این موضوع جالب است ولی میزان اثرگذاری بارش بر روی فروش چقدر است؟ برای مثال اگر در ماهی بارش متوسط ۱۵ میلیمتر باشد، چه برآوردی از میزان فروش میتوان داشت؟ اگر میزان بارش ۳۰ میلیمتر باشد چطور؟
حال تصور کنید از نمودار شکل-۱ خطی را عبور دهیم که بهطور تقریبی از میان همه نقاط عبور کند. این خط به ما کمک میکند تا با حدی از قطعیت، تخمین بزنیم وقتی میزان مشخصی از بارش داشته باشیم، میزان فروش چقدر خواهد بود. این خط، خط رگرسیون نامیده میشود (شکل-۲). با استفاده از نرمافزارهایی مانند اکسل (Excel) یا R میتوان بهراحتی این خط را رسم کرد. خط رگرسیون بهترین خطی است که میتوان از دادهها عبور داد. بهعبارتدیگر این خط بهترین خطی است که رابطه بین متغیر وابسته و متغیر مستقل را توضیح میدهد. علاوه بر نمایش این خط، میتوان معادله آن را نیز به دست آورد.
شکل-۲
فرض کنید معادله خط رگرسیون در شکل-۲ از رابطه زیر به دست آید:
فرمول بالا رابطه بین میزان بارش () و میزان فروش را بیان میکند. همچنین بیانگر میزان خطا در برآورد است. اگر آن را نادیده بگیریم، رابطه بالا به شکل زیر درمیآید:
بر این اساس اگر هیچ بارشی نداشته باشیم، انتظار میرود فروش ماهیانه ۱۵۰ واحد باشد. این جمله بدان معنی است که بر اساس دادههای تاریخی در ماههایی که بارشی نداشتیم، میانگین میزان فروش ۱۵۰ واحد بوده است و اگر روند گذشته تکرار شود این میزان فروش مورد انتظار خواهد بود. ضریب متغیر بیان میکند به ازای هر میلیمتر افزایش بارش بهطور متوسط ۲٫۵ واحد به فروش اضافه میشود.
اما درستی چنین نتیجهگیری به میزان خطا بستگی دارد. خط رگرسیون همواره با خطا همراه است. در دنیای واقعی متغیر مستقل هیچگاه پیشبینی کننده دقیق متغیر وابسته نیست. درواقع با استفاده از دادههای جمعآوریشده این خط یک برآورد از رابطه است. میزان خطا به ما میگوید تا چه حد به این برآورد مطمئن هستیم. هرچه میزان خطا بیشتر باشد، اطمینان ما به خط رگرسیون کاهش مییابد.
در این مثال تنها یک متغیر مستقل (میزان بارش) در معادله در نظر گرفته شد. معمولاً در تحلیلهای رگرسیون ما علاقهمند هستیم تا اثر چندین متغیر مستقل را بدانیم. اضافه کردن متغیرهای مستقل دیگر مانند اثر برنامههای ترویجی رقبا میتواند خطای مدل را کاهش دهد، اگرچه اضافه کردن متغیرهای زیاد هم مسائل خود را دارد که خارج از بحث این مقاله است. یکی از مزایای مهم رگرسیون آن است که شما میتوانید بهطور همزمان اثر متغیرهای مختلف را بر روی متغیر وابسته سنجش کنید. از این تکنیک بهعنوان رگرسیون چند متغیره (Multiple Regression) نام برده میشود.
چگونه مدیران کسبوکارها میتوانند از تحلیل رگرسیون خطی استفاده کنند؟
بسیاری از تصمیمات مدیریتی بر اساس روابطی که تصمیمگیر بین چند متغیر فرض میکند بنا میشود. برای مثال اگر مدیر بر این باور باشد که میزان تبلیغات بر روی میزان فروش مؤثر است، بهمنظور افزایش فروش میزان تبلیغات را افزایش میدهد. در برخی موارد مدیران تنها بر روی شهود خود متکی هستند تا این روابط را شناسایی کنند. اما روشهای شهودی تحت تأثیر خطاهای رفتاری هستند. در مقابل در تصمیمگیری دادهمحور، تصمیمگیر با تکیهبر شواهد، مبتنی برداده و بهرهگیری از روشهای آماری به قضاوت نهایی میرسد. تحلیل رگرسیون یکی از روشهای مهم و پرکاربردی است که مدیران میتوانند از آن استفاده کنند تا روابط بین متغیرهای درگیر در مسئله را به شکل کمّی دربیاورند و تبیین کنند.
موردکاوی در حوزه بازاریابی و فروش
در اینجا بهاختصار به یک موردکاوی در حوزه بازاریابی و فروش میپردازم. یک شرکت تولیدی در حوزه مواد غذایی و خوراکی در آستانه عرضه محصول جدیدش با عنوان “شوکوهایپ” است. شوکوهایپ یک نوع شکلات انرژیزاست. اگرچه بازار شکلاتهای انرژیزا در ابتدا به ورزشکاران حرفهای مانند کوهنوردان و دوچرخهسواران محدود میشد اما با محبوب شدن تناسباندام و بدنسازی بین عموم مردم مصرف این نوع شکلاتها که کالری مناسبی دارند و با ویتامین و پروتئین غنی شدهاند، طرفدار پیدا کرده است. این بازار هنوز در ابتدای راه خود است و گرچه چند محصول مشابه نیز در بازار وجود دارند ولی شرکت به دنبال آن است تا با یک کمپین تبلیغاتی قدرتمند سهم زیادی از بازار را به خود اختصاص دهد.
این شرکت با رویکرد تصمیمگیری دادهمحور آشناست. آنان بهمنظور کاهش ریسک، قبل از عرضه این محصول در سطح گسترده، سعی میکنند این ایده را در بازار آزمایش کنند. به همین دلیل شش ماهی است که شوکوهایپ را بهصورت آزمایشی در دو شهر کرج و مشهد عرضه کردند. هدف آن است تا بهزودی محصول را در بازار اصلی یعنی تهران عرضه کنند.
لازم به ذکر است در دوره آزمایشی این محصول با قیمتهای متفاوت عرضه شد تا واکنش مصرفکنندگان نسبت به قیمت سنجیده شود. همینطور بهمنظور افزایش آگاهی مشتریان از محصول جدید روشهای ترویجی درون فروشگاهی مانند پوسترهای تبلیغاتی و ارائه کوپنهای تخفیف استفاده شد. دادههای فروش ۳۴ فروشگاه در دوره آزمایشی جمعآوری شدهاند. این دادهها شامل تعداد فروش در هر فروشگاه، قیمت عرضه، هزینه تبلیغات درون فروشگاهی، محل عرضه محصول در قفسه فروشگاه (جایگاههای ویژه جداگانه در مقابل قفسههای معمولی درون فروشگاهی) و وجود یا عدم وجود دستگاه توزیع کوپن تخفیف در فروشگاه است.
تحلیل رگرسیون نشان داد وجود یا عدم وجود دستگاه توزیع کوپن تخفیف تأثیری بر میزان فروش ندارد. در مقابل قیمت، هزینه تبلیغات درون فروشگاهی و محل عرضه عوامل مؤثر بر میزان فروش هستند. معادله رگرسیون برای این دادهها به شکل زیر است:
توجه کنید این رابطه یک رگرسیون چند متغیره است چراکه بهطور همزمان اثر چندین متغیر مستقل بر روی متغیر وابسته مشخص شده است. این رابطه رگرسیون میتواند به تصمیمگیریهای کلیدی در زمان عرضه گسترده محصول کمک کند.
اول، با بهرهگیری از این رابطه رگرسیون، میتوان تحلیل حساسیت تقاضا نسبت به قیمت را انجام داد. ضریب متغیر در رابطه رگرسیون میگوید هر واحد افزایش قیمت، تقریباً ۰٫۷ واحد از میزان تقاضا میکاهد (بهطور متوسط هر ۱۰۰ تومان افزایش قیمت ۷۰ واحد از تقاضا میکاهد). همچنین حال که رابطه قیمت با تقاضا روشن شده است با جایگذاری در رابطه زیر، میتوان قیمت بهینه را که در آن سود بیشینه میشود، مشخص کرد.
دوم، با توجه به بودجه محدود بازاریابی که قرار است صرف فعالیتهای ترویجی در هر فروشگاه شود، میتوان میزان کارایی روشهای مختلف را مشخص کرد. همانطور که مشخص شد استفاده از کوپنهای تخفیف کارایی چندانی نداشته است. ضرایب رگرسیون کمک میکند تا اثر تبلیغات پوستری درون فروشگاهی و عرضه محصول در جایگاههای ویژه جداگانه بر روی افزایش فروش مشخص شود. برای مثال رابطه رگرسیون نشان میدهد که عرضه محصول در جایگاههای ویژه جداگانه میزان فروش را ۷۷۱ واحد افزایش میدهد (توجه شود متغیر یک متغیر دودویی است و مقدار ۰ یا ۱ میگیرد؛ صفر به معنی عرضه در قفسههای معمولی و یک به معنی عرضه در جایگاههای ویژه). با داشتن هزینههای هر روش تبلیغاتی میتوان تحلیل فایده-هزینه (Benefit/Cost Analysis) نیز انجام داد.
سوم، با دانستن این رابطه امکان پیشبینی اثر همزمان سناریوهای مختلف قیمتگذاری و تخصیص بودجه به روشهای مختلف تبلیغاتی به وجود میآید.
در تحلیل رگرسیون خطی باید به چه نکاتی توجه کرد؟
در استفاده از رگرسیون خطی باید توجه کرد که همبستگی (Correlation) با علّیت (Causation) تفاوت دارد. در مقاله “چرا مدیران باید تفاوت بین همبستگی و رابطه علّی را بدانند؟” بهطور مفصل با ارائه نمونههایی توضیح دادهام که چرا این نکته اهمیت دارد. بهطور خلاصه همزمانی دو پدیده لزوماً به این معنی نیست که یکی عامل دیگری است.
اینکه دادهها نشان میدهد بین آمدن باران و فروش محصول رابطه وجود دارد، دلیلی بر این نیست که آمدن باران دلیل افزایش فروش محصول میشود. در اینجا لازم است یک رابطه منطقی بین دو متغیر وجود داشته باشد. وجود رابطه علّیت با مطالعات میدانی یا قضاوت فردی است که باید مشخص شود. اگر منطقاً بتوان دو متغیر را به یکدیگر مربوط فرض کرد و با استفاده از رگرسیون خطی یا سایر روشهای آماری این رابطه تائید شود، میتوان به نتایج اعتماد کرد. در مقاله دیگری توضیح دادم چه زمانی میتوان بر اساس همبستگی رگرسیون خطی چیست؟ عمل کرد.
در مقاله “چگونه رابطه علّی را تشخیص دهیم؟” به سه معیاری میپردازم که با توجه به آنها وجود رابطه علّی را میتوانید تشخیص دهید.
مانند هر پروژه دادهکاوی دیگر، همراهی و همکاری کسانی که شهود خوبی نسبت به کسبوکار دارند با کسانی که مدلسازیهای آماری انجام میدهند ضروری است. مدیر نباید کارشناس دادهکاوی را به حال خود رها کند تا در دادهها به دنبال روابط بگردد. مدیر به همراه کارشناس دادهکاوی فرضیاتی را مطرح میکند و با استفاده از داده درستی یا نادرستی آن فرضیات بررسی میگردد. اگر دانشمند داده بدون هیچ فرضیهسازی به دنبال روابط درون دادهها بگردد، بالاخره روابطی پیدا خواهد کرد؛ روابطی که ممکن است تنها براثر تصادف در دادهها ایجاد شدهاند و رگرسیون خطی چیست؟ در دنیای واقعی مصداقی ندارند. مثل این میماند که آنقدر سکه بیندازید تا احساس کنید الگوی جالبی در پرتاب سکهها پیدا کردید؛ برای مثال چند بار پشت سرهم خط بیاید. درحالیکه این الگو تنها در اثر شانس بوده است.
نکته دیگر مربوط به خطا در میزان برآورد () است. اگر رگرسیون را روی هر مجموعه از دادههایی امتحان کنید، حتماً یک معادله ریاضی به دست میآورید. اما این بدان معنی نیست که لزوماً آن رابطه ریاضی در دنیای واقعی بین متغیرها برقرار است. همیشه رابطه به دست آمده با عدم قطعیت همراه است. اگر تحلیل رگرسیون خطی نشان دهد که ۹۰ درصد تغییرات متغیر وابسته توسط آن رابطه توضیح داده میشود این خبر خوبی است. ولی اگر رابطه رگرسیون تنها ۱۰ درصد تغییرات را توضیح میدهد، رابطه قوی بین متغیرها برقرار نیست. به عبارتی رگرسیون کمک میکند میزان قطعیت در پیشبینی را مشخص کنید. درواقع رگرسیون نمیگوید چگونه بارندگی روی فروش اثر میگذارد بلکه میگوید با چه احتمالی بارندگی روی فروش مؤثر است.
نکته آخر اینکه مدیر باید در فرآیند مدلسازی نقش فعال داشته باشد. شهود مدیران باید همراه مدلهای ریاضی باشد و قرار نیست جایگزین آن شود. همچنین اگر نتیجهای با شهود شما همخوانی ندارد بلافاصله نتایج را رد نکنید. بلکه به دنبال بررسی و تحلیل بیشتر در دنیای واقعی باشید.
برای آشنایی بیشتر با نحوه فکر کردن به مسائل دنیای واقعی مبتنی بر رویکرد داده-محور مقاله “چگونه مانند یک دانشمند داده فکر کنید؟ راهنمایی برای مدیران اجرایی” را مطالعه کنید.
Camm, D.C., Cochran, J.J., Fry, M.J., Ohlmann, J.W., Anderson, D. R., Sweeney, D.J., Williams, T.A. (2015). “Essentials of Business Analytics”, Cengage Learning
Harvard Business Review (2017). “HBR Guide to Data Analytics Basics for Managers”, Harvard Business Review Press, Boston, Massachusett
کلیات رگرسیون خطی ساده (فرمولها)
یکی از پرکاربردترین روش های آماری در علوم مختلف، اجرای انواع روش های رگرسیون برای تعیین رابطه ی بین یک متغیر وابسته با یک یا چند متغیر مستقل می باشد . متغیر وابسته ، پاسخ و متغیرهای مستقل ، متغیرهای توضیحی نیز نامیده می شوند.
اجرای یک مدل رگرسیونی با تعریف مدل رگرسیون امکان پذیر است. مدل رگرسیون ساده با متغیر وابسته یY وp-1 متغیر مستقل X1,X2,…,Xp-1 به صورت زیر تعریف می شود ،
به عنوان مثال فرض کنید یک محقق قصد دارد اثر دو متغیر سن و وزن را بر فشارخون اندازه گیری نماید. برای این مطالعه مقادیر سن و وزن برای n=500 نفر اندازه گیری می شود. در این مطالعه سن و وزن متغیرهای مستقل یا پیشگو و متغیر فشارخون متغیر وابسته می باشد.
معادله ی (1) را می توان به فرم ماتریسی زیر نیز تعریف کرد:
ماتریس X مقادیر مشاهده شده ی p-1 متغیر را برای n نفر نشان می دهد. بردار Y نیز مقادیر مشاهده شده ی متغیر وابسته برای نمونه ای به حجم n می باشد. در یک مدل رگرسیونی Βj ها پارامترهای مدل بوده و به کمک روش های مختلفی مانند روش حداقل مربعات و روش درستنمایی ماکزیمم برآورد می شوند. εi ها نیز جملات خطا نامیده می شوند و دارای توزیع نرمال با میانگین صفر و واریانس σ 2 هستند.
معادله ی رگرسیون با تعریف ماتریس متغیرهای توضیحی و بردارهای متغیر پاسخ ، پارامترهای مدل و جملات خطا به صورت زیر تعریف می رگرسیون خطی چیست؟ شود :
برآورد ضرایب رگرسیون
به کمک روش حداقل مربعات مقادیر بردار βp*1 با می نیمم کردن معادله
حاصل می شود. برآورد بردار βp*1 را با bp*1 نشان داده و با توجه به فرم ماتریسی تعریف شده در معادله (2) به صورت زیر محاسبه می شود
مقادیر برازش شده و خطاها
با برآورد پارامترهای مدل ، برآورد بردارYبا استفاده از رابطه ی
حاصل می شود. به Ŷ مقادیر برازش شده گفته می شود.
تفاوت بین مقادیر واقعی و مقادیر برازش شده مانده های رگرسیون نامیده می شوند؛
مجموع و میانگین مربعات
برای تهیه ی جدول آنالیز واریانس و بررسی معنی داری مدل برازش داده شده به معرفی مقادیر مجموع مربعات خطا و میانگین مربعات خطا می پردازیم.
مجموع مربعات کل
این مقدار مجموع توان دوم تفاضل هریک از اعضای بردار Y از میانگین این بردار حاصل می شود. مجموع مربعات کل با SSTO نمایش داده شده و به صورت زیر تعریف می شود .
SSTO دارای n-1 درجه آزادی است .
J ماتریسی n*n است که تمام اعضای آن 1 هستند.
مجموع مربعات رگرسیون
این مقدار میزان تغییراتی از متغیر پاسخ را که توسط مدل برازش شده تبیین می شود، نشان می دهد. مجموع مربعات رگرسیون دارای p-1 درجه آزادی می باشد:
مجموع مربعات خطا
میزان تغییراتی از متغیر پاسخ که توسط مدل رگرسیون بیان نمی شود ، در مجموع مربعات خطا قرار می گیرد. این عبارت دارای n-p درجه ی آزادی است.
ماتریس H به شکل زير تعریف می شود :
با توجه به تعاریف ارائه شده ذکر این نکته لازم به نظر می رسد که مجموع تغییرات متغیر پاسخ به وسیله ی دو جزء مجموع مربعات رگرسیون و مجموع مربعات خطا قابل بیان می باشد.
SSTO = SSR + SSE
به این ترتیب میانگین مربعات رگرسیون و میانگین مربعات خطا از تقسیم SSR وSSE بر درجه آزادی هریک حاصل می شوند و داریم :
منبع : کتاب مقدمه ای بر مدل های خطی آماری . نوشته ی مایکل کاتنر (Michael H.Kutner) و جان نتر (John Neter).
رگرسیون خطی
رگرسیون خطی یا تنازل خطی یا وایازی خطی یکی از روش های تحلیل رگرسیون است. رگرسیون یک نوع مدل آماری ست برای پیش بینی یک متغیر از روی یک یا چند متغیر دیگر. به عنوان مثال برای پیش بینی قیمت خانه می توان از یک مدل رگرسیون استفاده کرد که در آن از متغیرهایی همچون مساحت خانه (متراژ)، تعداد اتاق ها و سرویس های بهداشتی، موقعیت خانه (شهر و/یا محله) و سایر اطلاعات استفاده شده است. یکی از ساده ترین مدل های رگرسیون، رگرسیون خطی است که در آن متغیر وابسته — متغیری که قرار است پیش بینی شود — به صورت ترکیبی خطی از متغیرهای مستقل پیش بینی می شود، بدین معنی که هر کدام از متغیرهای مستقل در ضریبی که در فرایند تخمین برای آن متغیر به دست آمده ضرب می شود؛ جواب نهائی مجموع حاصل ضرب ها به علاوه یک مقدار ثابت خواهد بود که آن هم در فرایند تخمین به دست آمده است.
امید ریاضی مانده ها صفر است.
مانده ها از یک توزیع طبیعی پیروی می کنند.
مانده ها از هم مستقل هستند.
واریانس مانده ها ثابت است.
بین متغیرهای مستقل هم خطی وجود ندارد.
رابطه بین میانگین متغیر وابسته و متغیرهای مستقل خطی است.
فرایند تخمین سعی می کند ضرایبِ مدل رگرسیون خطی را به گونه ای انتخاب کند که با داده های موجود همخوانی داشته باشد، یعنی پیش بینی ها به مقادیر مستقل نزدیک باشند. از این رو یادگیریِ مدل رگرسیون، نمونه ای از فرایند بهینه سازی است که راه های مختلفی برای حل آن وجود دارد. اگر ضرایب مدل را با β ، متغیر وابسته برای داده i ام را با y i > و متغیرهای مستقل این داده را با بردار x i → >>> نمایش دهیم، پیش بینی مدل برای این داده β → . x i → >\,.\,>>> خواهد بود. برای نزدیکی هرچه بیشتر پیش بینی ها به داده های مستقل، فرایند یادگیری سعی می کند مجموع مربع تفاضل آن ها را - که در مدل سازی آماری به آن تابع هزینه می گویند - کمینه کند. یکی از روش های متداول برای کمینه کردن این تابع، روش کمترین مربعات است. این روش مستلزم پیدا کردن وارونه ضرب خارجی ماتریس تمام داده های مستقل با ماتریس ترانهاده آن است، فرآیندی که می تواند پرهزینه و ناکارا باشد، به خصوص زمانی که تعداد متغیرهای مستقل و داده ها زیاد است. علاوه بر این ممکن است ماتریس نهائی وارونه ناپذیر باشد. از این رو، برای کمینه کردن تابع هزینه عموماً از روش های جایگزین مانند گرادیان کاهشی تصادفی استفاده می شود. در این روش ابتدا پارامتر مدل را به صورت تصادفی مقداردهی می کنند و هر بار به کمک نمونه ای تصادفی از داده ها در جهت خلاف گرادیان حرکت کرده و پارامتر را به روز می کنند. این کار آنقدر ادامه پیدا می کند تا گرادیان به اندازهٔ کافی کوچک شود. از آنجا که تابع هزینه محدب است، تنها یک کمینه برایش وجود دارد و روش گرادیان کاهشی حتماً به جواب خواهد رسید.
اگر فرض را بر این قرار دهیم که متغیر وابسته از یک توزیع طبیعی با میانگینی که ترکیبی خطی از متغیرهای مستقل است و واریانسی ثابت پیروی می کند، و متغیرهای وابسته نسبت به هم مستقلند آنگاه برآورد درست نمایی بیشینه با پارامتری که از کمینه کردن تابع هزینه به دست می آید یکی خواهد بود. این تعبیر احتمالی برای محافظت مدل از بیش برازش مورد استفاده قرار می گیرد، به این شکل که با استفاده از قانون بیز فرض می شود خود پارامترهای مدل هم از یک توزیع احتمال که آن را توزیع پیشین می نامند پیروی می کنند و سپس با مشاهدهٔ داده ها، احتمال پسین محاسبه و بیشینه می شود. اگر احتمال پیشین به گونه ای باشد که پارامترهایی که نُرم کمتری دارند محتمل تر باشند مدل نهائی پارامترهایی را فراخواهد گرفت که بزرگ نیستند و این باعث حفاظت مدل از بیش برازش می شود.
رگرسیون خطی یک مدل آماری برای پیش بینی یک متغیر از روی یک یا چند متغیر دیگر است. به متغیری که پیش بینی بر روی آن انجام می شود متغیر وابسته و به متغیرهایی که پیش بینی به کمک آن ها انجام می شود متغیرهای مستقل می گویند. متغیر وابسته را معمولاً با y نمایش می دهند و متغیرهای مستقل را با x . اگر چند متغیر مستقل وجود داشته باشد برای سهولت کار همه را در یک بردار x → >> می گنجانند. اگر متغیر وابسته مقادیر عددی بگیرد مسئله مدل سازی رگرسیون نام می گیرد و در غیر این صورت دسته بندی آماری.
دیدگاه شما