SatinBest
SatinBest
خواندن ۴ دقیقه·۵ سال پیش

آموزش رگرسیون خطی با استفاده از روش حداقل مربعات خطا در MATLAB

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

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

رگرسیون خطی

این رگرسیون زمانی استفاده میشود که متغیر پاسخ تنها به یک متغیر مستقل وابسته است. رابطه y=a+bx  یک مدل رگرسیون خطی را نشان میدهد، که پارامترهای a و b به ترتیب عرض از مبدأ خط و شیب خط را نشان میدهد و x و y نیز ورودی مستقل و پاسخ را نشان میدهد.

با توجه به اینکه همواره جهت رسیدن به پاسخ دقیق، پارامترهای a و b ممکن است تقریبی محاسبه شده باشند، مدل رگرسیون خطی y=a+bx+e معرفی میشود که به نوعی خطای محاسبه را نشان میدهد و به کمک آن میتوان تخمین دقیقتری از پارامترهای مدل را به دست آورد.

در این روش میتوان با توجه به اطلاعات گذشته، مدل ریاضی را ارائه و به پیشبینی آینده پرداخت. اما در صورتی میتوان از این روش استفاده کرد که شرایط عمومی حاکم بر سیستم استمرار را داشته باشد. شکل ۱ نمایش خط رگرسیون و نمونه های مختلف در یک فضای دوبعدی را نشان میدهد.

محور افقی متغیرهای مستقل است و محور عمودی پاسخ یا متغیر وابسته. خط رگرسیون مناسب خطی است که همه نمونه ها را در بر گیرد یا در صورت امکان کمترین فاصله را از هر نمونه داشته باشد.

شکل ۱) نمایش خط رگرسیون
شکل ۱) نمایش خط رگرسیون
?شکل۱)نمایشخطرگرسیون
شکل ۲) روابط مربوط به محاسبه پارامترهای خط رگرسیون و ضریب همبستگیل ۱) نمایش خط رگرسیون
شکل ۲) روابط مربوط به محاسبه پارامترهای خط رگرسیون و ضریب همبستگیل ۱) نمایش خط رگرسیون
?شکل۲)روابطمربوطبهمحاسبهپارامترهایخطرگرسیونوضریبهمبستگی

شکل ۳ برنامه نوشته شده جهت به تصویر کشیدن پراکندگی نمونه ها در یک فضای دو بعدی را نشان میدهد. خط اول تعداد سال های ساخت بیمارستان را نشان میدهد. خط دوم به تعریف سال های ساخت بیمارستان اشاره دارد. خط سوم، تعداد بیمارستان های ساخته شده را نشان میدهد.

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

در صورت عدم استفاده از این دستور محور افقی با مقادیر ۱ تا ۸ برچسب زده میشود. خط های هفتم و هشتم به ترتیب برای انتخاب عنوان مناسب برای محورهای افقی و عمودی استفاده میشوند. خط نهم نیز به محدودکردن محورهای افقی و عمودی اشاره میکند. محور افقی بین اعداد ۱ تا ۸ و محور عمودی بین اعداد ۱ تا ۱۰ محدود شده اند.

شکل ۳) تصویر برنامه نوشته شده جهت نمایش پراکندگی نمونه ها
شکل ۳) تصویر برنامه نوشته شده جهت نمایش پراکندگی نمونه ها
?شکل۳)تصویربرنامهنوشتهشدهجهتنمایشپراکندگینمونهها

خط های ۳ و ۴ مجموع مقادیر ورودی و خروجی را محاسبه کرده است. مجموع مقادیر ورودی ها به توان ۲ و همچنین خروجیها به توان ۲ در خط های ۵ و ۶ تعریف شده است. خط ۷ به مجموع ضرب ورودی در خروجی اختصاص دارد. خط های ۸ و ۹ به پیاده سازی روابط پارامترهای b و a ذکر شده در شکل ۲ پرداخته شده است.

خط ۱۰ به تخمین مقادیر خروجی با استفاده از روش رگرسیون اشاره دارد. خط های ۱۱ تا ۱۶ نیز برای رسم دو شکل روی هم استفاده میشود. که شکل اول مربوط به نمونه های واقعی و شکل دوم مربوط به خط رگرسیون است. خط ۱۷ نیز برای انتخاب برچسب مناسب برای دو شکل رسم شده در یک نمودار نوشته شده است. شکل ۵، تصویر نمونه های واقعی و خط رگرسیون را نشان میدهد.

شکل ۴) برنامه نوشته شده جهت ترسیم خط رگرسیون
شکل ۴) برنامه نوشته شده جهت ترسیم خط رگرسیون
شکل ۵) نمایش نمونه های واقعی و خط رگرسیون
شکل ۵) نمایش نمونه های واقعی و خط رگرسیون
?شکل۵)نمایشنمونههایواقعیوخطرگرسیون

به منظور تعیین میزان کارایی روش پیشنهادی در پیشبینی درست تعداد ساختمان های ساخته شده لازم است از روش حداقل مربعات خطا، میزان خطای روش ارائه شده تعیین شود. برای محاسبه درصد این خطا کافی است، مقدار پاسخ واقعی (y) را از پاسخ تخمین (y_hat) کم کرده و به توان ۲ برسانیم سپس با هم جمع کرده و بر تعداد نمونه ها (۸) تقسیم و در ۱۰۰ ضرب کنیم.

شکل ۶، نحوه محاسبه خطا معرفی شده در نرم افزار MATLAB را نشان میدهد. همچنین برای محاسبه تعداد بیمارستان های ساخته شده در سال ۱۳۹۸ باید مقدار سال نهم را در رابطه رگرسیون مطابق شکل ۶ قرار داد. همانطور که در این شکل مشخص است میزان خطا حدود ۲۷ درصد و تعداد بیمارستان پیشبینی شده برای ساخت در سال نهم نیز بیش از ۹ است.

?شکل۶)نحوهمحاسبهمیانگینمربعاتخطاوتعدادبیمارستانپیشبینیشدهجهتساختدرسالنهم
متلبرگرسیون
شاید از این پست‌ها خوشتان بیاید