چقد عنوان طولانی شد :(

سلام و خسته نباشید .

 

اول از همه تشکر میکنم از همه ی دوستان عزیزی که اندازه پا و قدشون رو ارسال کردند . چه دوستان بیانی و چه دوستانی که شخصا ازشون پرسیدم .

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

پیش نیاز این قسمت اینه که درک خیلی پایه ای از ریاضیات داشته باشید (در حدی که یکم در مورد معادلات خطی درجه ۱ بدونید) .

 

با یه سوال شروع میکنیم . آیا واقعا میشه از رد پای به جا مونده ، قد رو پیشبینی کرد ؟ جواب قطعا بله هستش ولی خب همواره با مقداری خطا رو به رو هستیم . یعنی نمیتونیم دقیقا قد رو بدست بیاریم . میتونیم یه پیشبینی تا حدی نزدیک به واقعیت انجام بدیم.

 

برای این پیشبینی از روشی استفاده میکنیم به نام رگرسیون (regression) . رگرسیون نوع های مختلفی داره . نوعی که ما اینجا ازش استفاده میکنیم رگرسیون خطی ساده (Simple Linear Regression) هستش.

 

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

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

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

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

 

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

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

اما واژه خطی رو داخلش میبینیم . بین خیلی از فاکتور ها تو زندگی های ما رابطه خطی وجود داره . مثلا : رابطه بین تعداد ساعاتی که تو روز درس میخونیم و نمره ای که میگیریم . این که رابطه خطی دارن یعنی اینکه این نمره گرفتن ما یک رابطه مستقیم با تعداد ساعاتی داره که درس میخونیم . بنابراین هرچه تعداد ساعات بیشتری درس بخونیم ، نمره بیشتری میگیریم . حالا ما تو رگرسیون خطی ساده میایم یک معادله خطی درجه ۱ بین متغییر های مستقل و وابسته در میاریم اینجوری میتونیم با داشتن متغییر مستقل ، مقدار وابسته رو پیشبینی کنیم .

 

یکم کار عملی شروع کنیم . قد و وزن رو فرض کنید . قطعا این دو رابطه خطی دارن . به طور معمول هرچی وزن بیشتر میشه قد هم باید بیشتر بشه (رو حالت رشد طبیعی) . بنابراین میتونیم بگیم این دوتا رابطه خطی دارن . بیاید تلاش کنیم با استفاده از رگرسیون خطی ساده ،‌قد رو از روی وزن تشخیص بدیم .

 

خب برای اینکار من یک عالمه جفت داده وزن - قد افراد رو از اینترنت دانلود کردم :

 

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

خب همینطور که میبینید این یک پیشنمایش از داده هایی هست که ما در دسترس داریم . یک ستون Gender داریم ، که جنسیت شخص رو مشخص کرده که برای ما مهم نیست فعلا . دو ستون مهم دیگه داریم به نام های Height و Weight که قد و وزن هستند به ترتیب . در واقع هر ردیف این جدول مشخص کننده ی اطلاعات جنسیت ، قد و وزن یک شخص هست .

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

حالا گفتیم ما میخوایم قد رو از روی وزن پیشبینی کنیم . یعنی به عبارتی وزن میشه متغییر مستقلمون (X) و قد میشه متغییر وابستمون (Y) . اسماش رو همینجور که تو پرانتز نوشتم X و Y گذاشتیم .

الان هر کدوم از ردیف ها یک X (همون وزن)‌ و یک Y (همون قد) رو دارن .

بیاید این داده ها رو روی نمودار نشون بدیم . یعنی برای هر ردیف که یک X  و Y داریم بریم یک نقطه به طول X و به عرض Y روی نمودار مشخص کنیم . من صد ردیف از این داده ها رو جدا میکنم و روی نمودار نشون میدم :

 

روی نمودار دقت کنید . هر کدوم از این نقطه ها یک ردیف از اون جدول داده هامون هستند که یک X (وزن) و یک Y (قد)‌ دارن .

متوجه خطی بودن نمودار شدید ؟  میتونیم یک خط بین این نقطه ها تصور کنیم . اینجوری‌ مثلا :‌

خب حالا این خط به چه دردی میخوره ؟ همینطور که میدونید این یک خط درجه ۱ حساب میشه . معادله خط های درجه یک تو ریاضی چی بود ؟‌

y = ax +  b

که a شیب خط و b عرض از مبدا بود . تو اینجا هم ما یک خط داریم . تکلیف x , y که مشخصه . x همون وزنه و y هم که قده و درموردش صحبت کردیم . الان فرض کنید ما بتونیم به یک روشی a و b رو تو معادله بالا بدست بیاریم . چی میشه ؟ به یه معادله میرسیم که اگه x (وزن) رو داخلش جایگذاری کنیم ، y (قد) بدست میاد :) .

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

حالا اینجوری که ممکنه هزاران خط بتونیم بین این نقطه ها رسم کنیم . کدومش درسته ؟ اون خطی که کمترین خطا رو داره درست تره (منظور از خطا در واقع فاصله بین هر نقطه روی نمودار با خطی هستش که کشیدیم یعنی فاصله Y واقعی با Yبدست اومده از طریق معادله) . کل چالش ما اینه که چجوری a , b رو پیدا کنیم تو معادله بالا . اگه این دوتا رو بدست بیاریم دیگه حله . برای بدست اوردن این دوتا فرمول های مخصوصی هست .

تو بحث رگرسیون میان به این a  و b اسم های دیگه میدن . به این صورت که به a یعنی ضریب x میگن β1 (بتا ۱) و به b هم میگن β0 (بتا صفر)

برای بدست اوردن بتا ۱ (شیب خط) از فرمول زیر استفاده میشه :

طبق فرمول ، داخل صورت کسر اینکارو انجام میدیم :‌ به ازای هر ردیف توی داده هامون ،  میایم  x رو منهای میانگین x ها میکنیم . سپس y رو هم منهای میانگین y ها میکنیم و این دوتا رو توهم ضرب میکنیم . با توجه به اینکه سیگما داریم ، پس برای هر ردیف اینکارو انجام میدیم و نهایتا همشونو باهم جمع میکنیم . این میشه صورت کسرمون . 

برای مخرج کسر هم میایم هر x رو منهای میانگین x ها میکنیم و جواب رو به توان ۲ میرسونیم . برای هر ردیف این عبارت رو بدست میاریم و همشونو باهم جمع میکنیم . اینم میشه مخرج کسر .

نهایتا حاصل تقسیم صورت کسر به مخرج کسر ، ضریب x یا همین بتا ۱ میشه .

 

حالا که بتا ۱ رو داریم ، برای بدست اوردن بتا صفر  از رابطه زیر استفاده میکنیم :

رابطه بالاییش رو کاری نداریم توضیح دادیم که چطوری بتا ۱ بدست میاد . رابطه پایینی که بتا صفر هست هم بر حسب همین بتا ۱ که بدست اوردیم بدست میاد . طبق فرمول بالا کافیه بیایم بتا ۱ رو ضربدر میانگین x ها بکنیم و از میانگین y ها کم کنیم تا بتا صفر بدست بیاد .

 

تا اینجا ما رابطه یک خط نسبتا بهینه رو بین اون نقطه ها بدست اوردیم و میتونیم با جایگذاری x ها y ها رو بدست بیاریم .

برای اون بحث قد و وزن ما اگه یادتون باشه فقط نمودار ۱۰۰ ردیفشو کشیدیم . بیاید نمودار کلشو بکشیم :

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

الان معادله خطش رو هم داریم به راحتی میتونیم x (وزن) رو داخل معادله جایگذاری کنیم و y (قد پیشبینی شده) رو بدست بیاریم .

 

این فقط یک مثال از کارکرد رگرسیون خطی ساده بود . رگرسیون های چندگانه هم وجود دارن که بیش از یک مستقل دارن . مثلا تو مثال بالا فرض کنید به جای اینکه بخوایم قد شخص رو از طریق فقط وزنش حدس بزنیم ، بیایم قدش رو از طریق وزن و جنسیتش پیشبینی کنیم . خب اینجا دو متغییر مستقل داریم (وزن و جنسیت)‌. این میشه رگرسیون چندگانه .

 

حالا اون بحث رد پا رو هم میتونیم با همین روش حل کنیم . دلیل اینکه به طول پا و قدتون نیاز داشتیم این بود که یه جدول از این داده ها درست کنیم تا بتونیم یک خط رگرسیون بینش در بیاریم و حساب کنیم .

که البته خیلی ممنونم که فرستادید ولی تعدادش به اندازه کافی نبود . حدودا نزدیک ۳۰ تا شد ولی بیشتر از اینا نیازه.

فرض کنید یه مجموعه داده خیلی بزرگ از طول پای افراد و قدشون در اختیار داشته باشیم . یه رگرسیون بینش میتونیم حساب کنیم و اینجوری از روی متغییر مستقل (طول پا) ، متغییر وابسته (قد)‌ پیشبینی کنیم .

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

 

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

 

امیدوارم لذت برده باشید :)

موافقین ۵ مخالفین ۰

واو

Oh My God

اصن فکرشم نمیکردم ریاضی اینقد کاربردی باشه

و به این جملت رسیدم ک گفتی جرم شناسی ایز سو بیوتیفول :)

خیلی جالب بود

قطعا چندین هزار برابر ریاضی کاربردی تر از چیزیه که شاید تو این پست میشه متوجهش شد ...
:)
خداروشکر :)

عالی بود

خداقوت میگم بهتون خیلی نتایج قشنگ بود

در پناه خدا موفق و پیروز باشین

ممنونم اقای یوسفی .
مرسی که دیدید :)
همچنین :)
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">