کمترین مربعات
روش حداقل مربعات روشی در تحلیل رگرسیون است که برای حل دستگاه معادلاتی به کار می‌رود که تعداد معادله‌هایش بیش از تعداد مجهول‌هایش است. مهم‌ترین کاربرد روش کمترین مربعات در برازش منحنی بر داده‌ها است. مدل برازش شده بر داده‌ها، مدلی است که در آن کمیت formula_1 کمینه باشد. formula_2 این روش را نخستین بار کارل فردریش گاوس در سال ۱۷۹۴ استفاده کرد. روش حداقل مربعات در زبان برنامهٔ نویسی R، بیشتر نرم‌افزارهای آماری و ریاضی (مانند Excel, SPSS, MATLAB و …) و ماشین حساب‌های مهندسی وجود دارد.
منشأ روش حداقل مربعات از نجوم و یافتن موقعیت ستارگان بوده‌است.
برای برازش منحنی formula_3 بر داده‌ها، فرض می‌کنیم اندازه‌گیری‌ها مستقل از هم انجام شده‌اند و خطای formula_4 نیز در مقابل خطای formula_5 قابل صرف نظر است (مقادیر formula_4 بدون خطا هستند). تابع formula_7 علاوه بر formula_4، به ثوابتی که آن‌ها را با بردار formula_9 نشان می‌دهیم بستگی دارند. هدف، پیدا کردن مقادیر formula_9 است، به گونه‌ای که تابع formula_11 دقیق‌ترین پیش‌بینی را از formula_5 ارائه دهد. به این منظور، کمیت باقی مانده را به صورت
formula_13
تعریف می‌کنیم. اگر هر formula_14 از توزیع نرمال حول مقدار واقعی formula_15 با پهنای formula_16 پیروی کند، احتمال به دست آوردن formula_14 متناسب است با: formula_18 است. احتمال مشاهدهٔ تمام مقادیر formula_5 این‌طور به دست می‌آید: formula_20 formula_21 کمیت formula_1 که در نما قرار دارد به صورت
formula_23
تعریف می‌شود. پس هدف، پیدا کردن formula_9 است؛ به گونه‌ای که formula_1 کمینه شود. formula_26 برای بدست پارامتر بهینه باید از تابع مربعات گرادیان گرفته و آن را برابر با صفر قرار دهیم: formula_27 اگر فرض کنیم formula_28ها برای همهٔ داده‌ها برابر است، خواهیم داشت:
formula_29 سایر انواع روش حداقل مربعات، عبارت‌اند از کمترین مربعات دارای قید (Constrained)، کمترین مربعات وزن‌دار (Weighted) و کمترین مربعات مجموع (Total)
برای خط، formula_30 با مشتق‌گیری جزئی، خواهیم داشت: formula_31
formula_32 در نتیجه: formula_33 با انجام محاسبات بالا برای خط مبدأ گذر خواهیم داشت: formula_34 برای سهمی، formula_35 در نهایت، دستگاه معادلات برازش چنین به دست می‌آید: formula_36
formula_37
formula_38 اگر فرض کنیم بُعد ورودی formula_39 است، یعنی formula_40 و تابع formula_41 یک تابع خطی است، مسئله رگرسیون به یک مسئله بهینه‌سازی برای پیداکردن formula_42 پارامتر تبدیل می‌شود. به این معنی که ما یک پارامتر چند متغیره به اسم formula_43 داریم و سعی می‌کنیم formula_5 را با ترکیبی خطی از formula_4تخمین بزنیم یعنی formula_46. حال اگر یک بعد دیگر به متغیر formula_4 اضافه کنیم و مقدارش را همیشه عدد ثابت formula_48 در نظر بگیریم (formula_49) و formula_4 را به صورتِ formula_51 تغییر دهیم، تخمینی که از formula_5 داریم در واقع ضرب نقطه ای بردار ورودی و بردار پارامترهای ماست یعنی formula_53. حال فرض کنیم که تعداد مثالهایی که قرار است برای تخمین پارامترها استفاده کنیم
formula_54 است و این مثالها را به این شکل نمایش دهیم formula_55. همان‌طور که در مقدمه گفتیم پارامتر بهینه پارامتری است که تابع formula_56 را به حداقل برساند یعنی تابع پایین را:
formula_57
از آنجا که تابع formula_58 نسبت به formula_9 تابعی کاملاً محدب است، در نقطه مینیمم گرادیان ما صفر خواهد بود و این روش پارامتر بهینه را بدست می‌دهد. برای تسهیل کار شکل تابع را با بکارگیری چند ماتریس ساده می‌کنیم. دو ماتریس برای این کار نیاز داردیم ماتریس formula_60 و ماتریس formula_61. ماتریس formula_60 ماتریس ورودهای چندمتغیره ماست. هر سطر معادل یک نمونه از داده ماست، سطر formula_63ام برابر است با formula_63امین نمونه ورودی ما یعنی بردار formula_65، از اینرو formula_60 یک ماتریس formula_67 خواهد بود. ماتریس formula_61 از طرف دیگر برابر است با مجموعه متغیرهای وابسته داده ما. سطر formula_63ام این ماتریس برابر است با متغیر وابسته برای formula_63امین نمونه داده ما یا همان formula_14. ماتریس formula_61 یک ماتریس formula_73 است. با کمک این دو ماتریس می‌توان تابع ضرر را به شکل ذیل تعریف کرد: formula_74 حال گرادیان این تابع را نسبت به formula_9 پیدا می‌کنیم که می‌شود: formula_76 با برابر قرار دادن گرادیان با صفر پارامتر بهینه بدست می‌آید: formula_77 پس پارامتر بهینه ما برابر است با: formula_78 خطای شیب و عرض از مبدأ خط برازش شده برابر است با (formula_79): formula_80 برای خط مبدأ گذر formula_81 در زبان R، برازش تابع خطی به فرم formula_82 بر داده‌ها به کمک تابع lsfit انجام می‌شود. قطعه کدهای زیر، نحوهٔ پیاده‌سازی و خروجی را برای یک تابع ۲ متغیره نشان می‌دهد. x = matrix(c(1.19, 1.08, 2.45, 2.53, 3.30, 2.97, 1.65, 0.58, 0.26, 4.39, 4.06, 0.55, 1.80, 1.68, 3.24, 2.23, 3.80, 4.63, 3.78, 4.84, # x_1 values y = c(23.59, 31.95, 33.15, 34.00, 37.80, 41.07, 42.38, 43.76, 44.10, 44.16, 46.83, 50.52, 56.81, 59.04, 60.12, 61.84, 62.16, 64.18, 75.45, 76.77) lsfit(x, y, intercept = TRUE)
در نرم‌افزار اکسل، برازش تابع خطی به فرم formula_82 بر داده‌ها به کمک تابع LINEST انجام می‌شود. این تابع جزو توابع آرایه‌ای است و با فشردن Ctrl+Enter اجرا می‌شود. ورودی تابع به شکل LINEST(known_y's, [known_x's], [const], [stats]) است که در آن به ترتیب مقادیر y، مقادیر x و سپس دو مقدار بولی وارد می‌شوند که اولی برای مبدأ گذر نبودن و دومی برای بازگرداندن مقادیر خطا، رگرسیون و … است. خروجی تابع در جدولی به صورت زیر برگردانده می‌شود:
منظور از formula_84 خطا است. خانه‌های ردیف دوم به بعد، در صورتی نشان داده می‌شوند که stats=TRUE باشد.
اکثر ماشین حساب‌های مهندسی مجهز به ویژگی برازش منحنی به روش کمترین مربعات هستند. در ماشین حساب‌های کاسیو این ویژگی در بخش STAT قرار دارد.
لاسو یک مدل تنظیم شده از مدل کمترین مربعات است. تنظیم به این صورت است که formula_85 یا نرم L-norm کمتر از مقدار مشخصی باشد. این معادل این است که در هنگام بهینه‌سازی هزینهٔ کمترین مربعات formula_86 را نیز اضافه کرده باشیم. معادل بیزی این مدل این است که توزیع پیشین توزیع لاپلاس را برای پارامترهای مدل خطی استفاده کرده باشیم.
تفاوت اساسی بین مدل ridge regression و لاسو این است که در اولی علی‌رغم افزایش جریمه، ضرایب در عین غیرصفر بودن کوچکتر می‌شوند، علی‌رغم اینکه صفر نمی‌شوند، در صورتی که در لاسو با افزایش جریمه، تعداد بسیار بیشتری از ضرایب به سمت صفر میل می‌کنند. می‌توان بهینه‌سازی مربوط به لاسو را با روش‌های بهینه‌سازی درجه دوم یا در حالت کلی بهینه‌سازی محدب انجام داد. به دلیل ایجاد ضرایب کم، لاسو در بسیاری از کاربردها مانند سنجش فشرده مورد استفاده قرار می‌گیرد.
پیچیدگی مدلهای پارامتری با تعداد پارامترهای مدل و مقادیر آن‌ها سنجیده می‌شود. هرچه این پیچیدگی بیشتر باشد خطر بیش‌برازش (Overfitting) برای مدل بیشتر است. پدیده بیش‌برازش زمانی رخ می‌دهد که مدل بجای یادگیری الگوهای داده، داده را را حفظ می‌کند و در عمل یادگیری به خوبی انجام نمی‌شود. برای جلوگیری از بیش‌برازش در مدلهای خطی مانند رگرسیون خطی جریمه‌ای به تابع هزینه اضافه می‌شود تا از افزایش زیاد پارامترها جلوگیری شود. به این کار تنظیم مدل یا Regularization گفته می‌شود. یکی از این روشهای تنظیم مدل روش لاسو است که در آن ضریبی از نُرمِ formula_87به تابع هزینه اضافه می‌شود، در رگرسیون خطی تابع هزینه به شکل پایین تغییر می‌کند: formula_88 این روش تنظیم مدل باعث می‌شود که بسیاری از پارامترهای مدل نهائی صفر شوند و مدل به اصلاح خلوت (Sparse) شود.