بالاترین سوالات
زمانبندی
چت
دیدگاه
کمترین مربعات
از ویکیپدیا، دانشنامه آزاد
Remove ads
روش حداقل مربعات (به انگلیسی: method of least squares) روشی در تحلیل رگرسیون است که برای حل دستگاه معادلاتی به کار میرود که تعداد معادلههایش بیش از تعداد مجهولهایش است. مهمترین کاربرد روش کمترین مربعات در برازش منحنی بر دادهها است. مدل برازش شده بر دادهها، مدلی است که در آن کمیت کمینه باشد.

روش حداقل مربعات در زبان برنامهٔ نویسی R، بیشتر نرمافزارهای آماری و ریاضی (مانند Excel, SPSS, MATLAB و …) و ماشین حسابهای مهندسی وجود دارد.
Remove ads
تاریخچه
منشأ روش حداقل مربعات از نجوم و یافتن موقعیت ستارگان بودهاست.
ساختار ریاضی
خلاصه
دیدگاه
برای برازش منحنی بر دادهها، فرض میکنیم اندازهگیریها مستقل از هم انجام شدهاند و خطای نیز در مقابل خطای قابل صرف نظر است (مقادیر بدون خطا هستند). تابع علاوه بر ، به ثوابتی که آنها را با بردار نشان میدهیم بستگی دارند. هدف، پیدا کردن مقادیر است، به گونهای که تابع دقیقترین پیشبینی را از ارائه دهد. به این منظور، کمیت باقی مانده را به صورت
تعریف میکنیم. اگر هر از توزیع نرمال حول مقدار واقعی با پهنای پیروی کند، احتمال به دست آوردن متناسب است با:
است. احتمال مشاهدهٔ تمام مقادیر اینطور به دست میآید:
کمیت که در نما قرار دارد به صورت
تعریف میشود. پس هدف، پیدا کردن است؛ به گونهای که کمینه شود.
برای بدست پارامتر بهینه باید از تابع مربعات گرادیان گرفته و آن را برابر با صفر قرار دهیم:[۱]
حداقل مربعات بدون وزن
اگر فرض کنیم ها برای همهٔ دادهها برابر است، خواهیم داشت:
سایر روشها
سایر انواع روش حداقل مربعات، عبارتاند از کمترین مربعات دارای قید (Constrained)، کمترین مربعات وزندار (Weighted) و کمترین مربعات مجموع (Total)
Remove ads
نمونهها
خلاصه
دیدگاه
برازش خط
برای خط،
با مشتقگیری جزئی، خواهیم داشت:
در نتیجه:
برازش خط مبدأ گذر
با انجام محاسبات بالا برای خط مبدأ گذر خواهیم داشت:
برازش سهمی
برای سهمی،
در نهایت، دستگاه معادلات برازش چنین به دست میآید:[۲]
کمترین مربعات خطی
اگر فرض کنیم بُعد ورودی است، یعنی و تابع یک تابع خطی است، مسئله رگرسیون به یک مسئله بهینهسازی برای پیداکردن پارامتر تبدیل میشود. به این معنی که ما یک پارامتر چند متغیره به اسم داریم و سعی میکنیم را با ترکیبی خطی از تخمین بزنیم یعنی . حال اگر یک بعد دیگر به متغیر اضافه کنیم و مقدارش را همیشه عدد ثابت در نظر بگیریم () و را به صورتِ تغییر دهیم، تخمینی که از داریم در واقع ضرب نقطه ای بردار ورودی و بردار پارامترهای ماست یعنی . حال فرض کنیم که تعداد مثالهایی که قرار است برای تخمین پارامترها استفاده کنیم
است و این مثالها را به این شکل نمایش دهیم . همانطور که در مقدمه گفتیم پارامتر بهینه پارامتری است که تابع را به حداقل برساند یعنی تابع پایین را:
از آنجا که تابع نسبت به تابعی کاملاً محدب است، در نقطه مینیمم گرادیان ما صفر خواهد بود و این روش پارامتر بهینه را بدست میدهد.[۳] برای تسهیل کار شکل تابع را با بکارگیری چند ماتریس ساده میکنیم. دو ماتریس برای این کار نیاز داردیم ماتریس و ماتریس . ماتریس ماتریس ورودهای چندمتغیره ماست. هر سطر معادل یک نمونه از داده ماست، سطر ام برابر است با امین نمونه ورودی ما یعنی بردار ، از اینرو یک ماتریس خواهد بود. ماتریس از طرف دیگر برابر است با مجموعه متغیرهای وابسته داده ما. سطر ام این ماتریس برابر است با متغیر وابسته برای امین نمونه داده ما یا همان . ماتریس یک ماتریس است. با کمک این دو ماتریس میتوان تابع ضرر را به شکل ذیل تعریف کرد:
حال گرادیان این تابع را نسبت به پیدا میکنیم که میشود:
با برابر قرار دادن گرادیان با صفر پارامتر بهینه بدست میآید:
پس پارامتر بهینه ما برابر است با:
Remove ads
خطای روش حداقل مربعات
خلاصه
دیدگاه
خطای برازش خط
خطای شیب و عرض از مبدأ خط برازش شده برابر است با ():
برای خط مبدأ گذر
Remove ads
پیادهسازی روش حداقل مربعات
خلاصه
دیدگاه
زبان R
در زبان R، برازش تابع خطی به فرم
بر دادهها به کمک تابع 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
1.60, 5.88, 1.55, 1.86, 1.06, 3.85, 9.29, 13.04, 14.52, 0.50, 2.89, 16.99, 15.42, 17.36, 11.82, 16.38, 11.06, 9.08, 17.75, 15.17), # x_2 values
ncol = 2)
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)
خروجی کد |
$`coefficients`
Intercept X1 X2
12.288613 7.077099 2.046854
$residuals
[1] -0.3953270240 -0.0173795577 0.3498706172 -0.0008219408 -0.0127054659 -0.1179842888 -0.6010969324 0.6756982152 0.2510266287 -0.2205056134 -0.1070429923 -0.4370605663 0.2201255541 -0.6715185403 0.7077756472 0.2419934166
[17] 0.3402088176 0.5389865978 0.0783001530 -0.8225427255
$intercept
[1] TRUE
$qr
$`qt`
[1] -2.212992e+02 3.129112e+01 5.535317e+01 -2.381996e-03 -1.322400e-02 -8.789162e-02 -5.211540e-01 7.876776e-01 3.771369e-01 -2.122844e-01 -7.328712e-02 -2.753865e-01 3.800473e-01 -4.887202e-01 8.429438e-01 4.203504e-01
[17] 4.738731e-01 6.595889e-01 2.965789e-01 -6.215969e-01
$qr
Intercept X1 X2
[1,] -4.4721360 -11.40618275 -41.83012366
[2,] 0.2236068 6.23733076 -6.27846053
[3,] 0.2236068 -0.02374785 27.04305435
[4,] 0.2236068 -0.03657385 0.21992627
[5,] 0.2236068 -0.16002409 0.23339312
[6,] 0.2236068 -0.10711685 0.13713099
[7,] 0.2236068 0.10451214 -0.03640296
[8,] 0.2236068 0.27605988 -0.15267631
[9,] 0.2236068 0.32736388 -0.20070646
[10,] 0.2236068 -0.33477834 0.23128783
[11,] 0.2236068 -0.28187109 0.14981693
[12,] 0.2236068 0.28086963 -0.29811181
[13,] 0.2236068 0.08046339 -0.26621795
[14,] 0.2236068 0.09970239 -0.33544388
[15,] 0.2236068 -0.15040460 -0.16323517
[16,] 0.2236068 0.01152365 -0.31071652
[17,] 0.2236068 -0.24018659 -0.14685228
[18,] 0.2236068 -0.37325633 -0.09100707
[19,] 0.2236068 -0.23698009 -0.39381699
[20,] 0.2236068 -0.40692458 -0.32059869
$qraux
[1] 1.223607 1.195897 1.233064
$rank
[1] 3
$pivot
[1] 1 2 3
$tol
[1] 1e-07
attr(,"class")
[1] "qr"
|
نرمافزار Excel
در نرمافزار اکسل، برازش تابع خطی به فرم
بر دادهها به کمک تابع LINEST انجام میشود.[۵] این تابع جزو توابع آرایهای است و با فشردن Ctrl+Enter اجرا میشود. ورودی تابع به شکل
LINEST(known_y's, [known_x's], [const], [stats])
است که در آن به ترتیب مقادیر y، مقادیر x و سپس دو مقدار بولی وارد میشوند که اولی برای مبدأ گذر نبودن و دومی برای بازگرداندن مقادیر خطا، رگرسیون و … است. خروجی تابع در جدولی به صورت زیر برگردانده میشود:
منظور از خطا است. خانههای ردیف دوم به بعد، در صورتی نشان داده میشوند که stats=TRUE باشد.
ماشین حساب CASIO fx-82ES
اکثر ماشین حسابهای مهندسی مجهز به ویژگی برازش منحنی به روش کمترین مربعات هستند. در ماشین حسابهای کاسیو این ویژگی در بخش STAT قرار دارد.
Remove ads
لاسو (LASSO)
خلاصه
دیدگاه
لاسو یک مدل تنظیم شده (به انگلیسی: Regularized) از مدل کمترین مربعات است. تنظیم به این صورت است که یا نرم L1-norm کمتر از مقدار مشخصی باشد. این معادل این است که در هنگام بهینهسازی هزینهٔ کمترین مربعات را نیز اضافه کرده باشیم. معادل بیزی این مدل این است که توزیع پیشین توزیع لاپلاس را برای پارامترهای مدل خطی استفاده کرده باشیم.
تفاوت اساسی بین مدل ridge regression و لاسو این است که در اولی علیرغم افزایش جریمه، ضرایب در عین غیرصفر بودن کوچکتر میشوند، علیرغم اینکه صفر نمیشوند، در صورتی که در لاسو با افزایش جریمه، تعداد بسیار بیشتری از ضرایب به سمت صفر میل میکنند.[۶] میتوان بهینهسازی مربوط به لاسو را با روشهای بهینهسازی درجه دوم یا در حالت کلی بهینهسازی محدب انجام داد. به دلیل ایجاد ضرایب کم، لاسو در بسیاری از کاربردها مانند سنجش فشرده (به انگلیسی: compressed sensing) مورد استفاده قرار میگیرد.
لاسو در رگرسیون خطی
پیچیدگی مدلهای پارامتری با تعداد پارامترهای مدل و مقادیر آنها سنجیده میشود. هرچه این پیچیدگی بیشتر باشد خطر بیشبرازش (Overfitting) برای مدل بیشتر است.[۷] پدیده بیشبرازش زمانی رخ میدهد که مدل بجای یادگیری الگوهای داده، داده را را حفظ میکند و در عمل یادگیری به خوبی انجام نمیشود. برای جلوگیری از بیشبرازش در مدلهای خطی مانند رگرسیون خطی جریمهای به تابع هزینه اضافه میشود تا از افزایش زیاد پارامترها جلوگیری شود. به این کار تنظیم مدل یا Regularization گفته میشود.[۸] یکی از این روشهای تنظیم مدل روش لاسو است که در آن ضریبی از نُرمِ به تابع هزینه اضافه میشود، در رگرسیون خطی تابع هزینه به شکل پایین تغییر میکند:
این روش تنظیم مدل باعث میشود که بسیاری از پارامترهای مدل نهائی صفر شوند و مدل به اصلاح خلوت (Sparse) شود.[۶]
Remove ads
جستارهای وابسته
پانویس
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads