کلیدستان

نسخه‌ی کامل: برنامه نویسی pls
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام .
یکی از دوستان در مورد برنامه نویسی pls سوال پرسیده بودند .
گاهی در صنعت نیاز داریم که از متغیرهایی استفاده کنیم که قابل کنترل (controllable) یا قابل اندازه گیری به آسانی (easy-to-measure) می باشند (factors) و باید آنها را توضیح بدهیم ، تنظیم کنیم یا رفتار سایر متغیرها (یعنی responses) را بر اساس آنها ، پیش بینی کنیم .
وقتی که تعداد factor ها ، اندک باشد آنگاه به اندازه کافی ، خطی (collinear-هم طراز) نمی باشند و رابطه آنها با response ها ، به طور واضح و خوب تعریف می شود . در این موارد ، multiple linear regression یک روش خوب برای ارتباط دادن factor ها با response ها می باشد (MLR) . اما چنانچه شرایط اینگونه نباشد ، آنگاه MLR دیگر مناسب نیست . اینگونه موارد را ، soft science applications می نامند . در این موارد ، محقق با تعداد زیادی factor سر و کار دارد و روابط به خوبی معلوم نیست . اکنون باید بر اساس آنها یک مدل پیش بینی طراحی شود . Partial least squares روشی برای ساخت یک مدل پیش بینی می باشد (PLS) . بنابراین زمانی که تعداد factor ها زیاد باشد و خیلی خطی (collinear) باشند ، از روش PLS برای ساخت مدل پیش بینی استفاده می کنیم .
هر عملیات صنعتی ممکن است دارای صدها متغیر قابل کنترل (controllable) و ده ها خروجی باشد و بنابراین روش PLS بسیار سودمند خواهد بود .
دستور plsregress در متلب برای اجرای روش PLS به کار میره . ساده ترین شکل استفاده از دستور plsregress در متلب ، به صورت زیر می باشد :


کد:
[XL,YL] = plsregress(X,Y,ncomp)


که در آن ، X همان factors و Y همان responses می باشد . در واقع در سیستم مورد نظرمان ، مقادیر Y از مقادیر X حاصل شده اند . X به صورت یک ماتریس دو بعدی می باشد که هر ردیف آن مربوط به مقادیر مشاهده شده برای تمامی متغیر است ، بنابراین در ستون ماتریس ، مقادیر مشاهده شده برای یک متغیر نوشته می شود (مثلا اگر 20 متغیر داشته باشیم که برای هر کدام ، 100 اندازه گیری (مشاهده) داشته باشیم ، آنگاه ماتریس X دارای 20 ستون و 100 ردیف خواهد بود) . چون تعداد مشاهده برای factors و responses برابر است بنابراین تعداد ردیف دو ماتریس X و Y با هم برابر می باشد و تنها در تعداد ستون با هم تفاوت دارند .
پارامتر ncomp را باید به صورت یک عدد تعریف کنیم که در واقع ، تعداد اجزای PLS را مشخص می کند (PLS components) . در واقع مدل پیشبینی که توسط روش PLS طراحی می شود ، بر اساس ضرایبی از اجزای PLS می باشد . این ضرایب ، یک ترکیب خطی از اجزای PLS را به وجود می آورند . یک سری ضرایب ، برای متغیرهای مربوط به X تعیین می شوند (factors) که در XL که خروجی اول است ، ذخیره خواهند شد و یک سری ضرایب نیز برای متغیرهای مربوط به Y تعیین می شوند (responses) که در YL که خروجی دوم است ، ذخیره خواهند شد
.
برای هر متغیر ، تعداد ncomp ضریب ، تعیین خواهد شد . مثلا اگر اندازه ماتریس های X و Y به صورت زیر باشد :
X >> دارای n ردیف و p ستون (بنابراین دارای p متغیر که از هر کدام ، n مشاهده داریم)
Y >> دارای n ردیف و m ستون (بنابراین دارای m متغیر که از هر کدام ، n مشاهده داریم)
آنگاه خروجی های XL و YL دارای اندازه های زیر می باشند :
XL >> دارای p ردیف و ncomp ستون (چون X دارای p متغیر بوده و برای هر متغیر باید تعداد ncomp ضریب تعیین شود)
YL >> دارای m ردیف و ncomp ستون (چون Y دارای m متغیر بوده و برای هر متغیر باید تعداد ncomp ضریب تعیین شود)

خوب حالا دستور plsregress را به صورت کاملتر به کار می بریم :


کد:
[XL,YL,XS,YS] = plsregress(X,Y,ncomp)


همان طور که می بینید دو خروجی دیگر به نام های XS و YS داریم . قبلا گفته بودیم که در XL و YL ، ضرایبی نوشته می شوند که این ضرایب ، به صورت ضریب برای اجزای PLS می باشند (PLS components) . حال مثلا XS همان اجزای PLS است که ضرایب در آن ضرب شده اند (predictor scores) . در واقع ، XS همان اجزای PLS می باشد که به صورت ترکیب خطی از متغیرهای X تعریف شده اند . YS نیز به طور مشابه ، دارای همین مفهوم برای Y می باشد .