رگرسیون لجستیک

از testwiki
پرش به ناوبری پرش به جستجو

الگو:تحلیل رگرسیون رگرسیون لجستیک الگو:انگلیسی یک مدل آماری رگرسیون برای متغیرهای وابسته دوسویی مانند بیماری یا سلامت، مرگ یا زندگی است. این مدل را می‌توان به عنوان مدل خطی تعمیم‌یافته‌ای که از تابع لوجیت به عنوان تابع پیوند استفاده می‌کند و خطایش از توزیع چندجمله‌ای پیروی می‌کند، به‌حساب‌آورد. منظور از دو سویی بودن، رخ داد یک واقعه تصادفی در دو موقعیت ممکنه است. به عنوان مثال خرید یا عدم خرید، ثبت نام یا عدم ثبت نام، ورشکسته شدن یا ورشکسته نشدن و … متغیرهایی هستند که فقط دارای دو موقعیت هستند و مجموع احتمال هر یک آن‌ها در نهایت یک خواهد شد. کاربرد این روش عمدتاً در ابتدای ظهور در مورد کاربردهای پزشکی برای احتمال وقوع یک بیماری مورد استفاده قرار می‌گرفت. لیکن امروزه در تمام زمینه‌های علمی کاربرد وسیعی یافته‌است. به عنوان مثال مدیر سازمانی می‌خواهد بداند در مشارکت یا عدم مشارکت کارمندان کدام متغیرها نقش پیش‌بینی دارند؟ مدیر تبلیغاتی می‌خواهد بداند در خرید یا عدم خرید یک محصول یا برند چه متغیرهایی مهم هستند؟ یک مرکز تحقیقات پزشکی می‌خواهد بداند در مبتلا شدن به بیماری عروق کرنری قلب چه متغیرهایی نقش پیش‌بینی‌کننده دارند؟ تا با اطلاع‌رسانی از احتمال وقوع کاسته شود.

رگرسیون لجستیک می‌تواند یک مورد خاص از مدل خطی عمومی و رگرسیون خطی دیده شود. مدل رگرسیون لجستیک، بر اساس فرض‌های کاملاً متفاوتی (دربارهٔ رابطه متغیرهای وابسته و مستقل) از رگرسیون خطی است. تفاوت مهم این دو مدل در دو ویژگی رگرسیون لجستیک می‌تواند دیده شود. اول توزیع شرطی y|x یک توزیع برنولی به جای یک توزیع گوسی است چونکه متغیر وابسته دودویی است. دوم مقادیر پیش‌بینی احتمالاتی است و محدود بین بازه صفر و یک و به کمک تابع توزیع لجستیک به‌دست می‌آید رگرسیون لجستیک احتمال خروجی پیش‌بینی می‌کند.

این مدل به صورت

الگو:وسط‌چین

logit(p)=ln(p1p)=β0+β1x1,i++βkxk,i,

الگو:پایان وسط‌چین الگو:وسط‌چین

i=1,,n,

الگو:پایان وسط‌چین است که الگو:وسط‌چین

p=Pr(yi=1).

الگو:پایان وسط‌چین الگو:وسط‌چین

p=Pr(yi=1|xi;β)=eβ0+β1x1,i++βkxk,i1+eβ0+β1x1,i++βkxk,i=11+e(β0+β1x1,i++βkxk,i).

الگو:پایان وسط‌چین

تابع لجستیک استاندارد

رگرسیون لجستیک را می‌توان توسط تابع لجستیک تعریف کرد. دامنه این تابع اعداد حقیقی هستند و برد این تابع بین صفر و یک می‌باشد.[۱] این تابع با σ:(0,1) نمایش داده می‌شود و به نحو پایین محاسبه می‌شود:[۱] الگو:وسط‌چین σ(t)=etet+1=11+et الگو:پایان وسط‌چین با احتساب تابع لجستیک، رگرسیون لجستیک را می‌توان به شکل پایین بازنویسی کرد:[۱] الگو:وسط‌چین Pr(yi=1|xi;β)=11+e(β0+β1x1,i++βkxk,i)=σ(β0+β1x1,i++βkxk,i) الگو:پایان وسط‌چین

برآورد پارامترهای بهینه

برای به‌دست آوردن پارامترهای بهینه یعنی β=[β0,β1,,βk] می‌توان از روش برآورد درست نمایی بیشینه (Maximum Likelihood Estimation) استفاده کرد. اگر فرض کنیم که تعداد مثال‌هایی که قرار است برای تخمین پارامترها استفاده کنیم n است و این مثال‌ها را به این شکل نمایش دهیم D=(x1,y1),(xn,yn). پارامتر بهینه پارامتری است که برآورد درست نمایی را بیشینه کند، البته برای سادگی کار برآورد لگاریتم درست نمایی را بیشینه می‌کنیم. لگاریتم درست نمایی داده D برای پارامتر β را با L(D,β) نمایش می‌دهیم: الگو:وسط‌چین L(D,β)=log(i=1nPr(yi=1|xi;β)yi×Pr(yi=0|xi;β)1yi)=i=1nyi×logPr(yi=1|xi;β)+(1yi)logPr(yi=0|xi;β) الگو:پایان وسط‌چین اگر برای داده i ام yi=1 باشد، هدف افزایشPr(yi=1|xi;β) است و اگر yi صفر باشد هدف افزایش مقدار Pr(yi=0|xi;β) است. از این رو از فرمول Pr(yi=1|xi;β)yi×Pr(yi=0|xi;β)1yi استفاده می‌کنیم که اگر yi=1 باشد، فرمول به ما Pr(yi=1|xi;β) را بدهد و اگر yi=0 بود به ما Pr(yi=0|xi;β) را بدهد.

حال برای به‌دست آوردن پارامتر بهینه باید β یی پیدا کنیم که مقدار L(D,β) را بیشینه کند. از آنجا که این تابع نسبت به β مقعر است حتماً یک بیشینه مطلق دارد. برای پیدا کردن جواب می‌توان از روش گرادیان افزایشی از نوع تصادفی اش استفاده کرد (Stochastic Gradient Ascent). در این روش هر بار یک مثال را به‌صورت اتفاقی از نمونه‌های داده انتخاب کرده، گرادیان درست نمایی را حساب می‌کنیم و کمی در جهت گرادیان پارامتر را حرکت می‌دهیم تا به یک پارامتر جدید برسیم. گرادیان جهت موضعی بیشترین افزایش را در تابع به ما نشان می‌دهد، برای همین در آن جهت کمی حرکت می‌کنیم تا به بیشترین افزایش موضعی تابع برسیم. اینکار را آنقدر ادامه می‌دهیم که گرادیان به اندازه کافی به صفر نزدیک شود. به‌جای اینکه داده‌ها را به‌صورت تصادفی انتخاب کنیم می‌توانیم به ترتیب داده شماره 1تا داده شماره n را انتخاب کنیم و بعد دوباره به داده اولی برگردیم و این کار را به‌صورت متناوب چندین بار انجام دهیم تا به اندازه کافی گرادیان به صفر نزدیک شود. از لحاظ ریاضی این کار را می‌توان به شکل پایین انجام داد، پارامتر β را در ابتدا به‌صورت تصادفی مقدار دهی می‌کنیم و بعد برای داده iام و تمامی j‌ها، یعنی از j=1 تا j=m+1 تغییر پایین را اعمال می‌کنیم، دراینجا α همان مقداریست که در جهت گرادیان هربار حرکت می‌کنیم و (yi11+e(β0+β1x1,i++βkxk,i))xi,j مشتق جزئی داده iام در بُعد jام است: الگو:وسط‌چین {Initializeβoldrandomlyloop until convergence :fori=0ton:forj=0tom:βjnew=βjold+α(yi11+e(β0old+β1oldx1,i++βkoldxk,i))xi,jβold=βnew الگو:پایان وسط‌چین

تنظیم مدل (Regularization)

پیچیدگی مدل‌های پارامتری با تعداد پارامترهای مدل و مقادیر آن‌ها سنجیده می‌شود. هرچه این پیچیدگی بیشتر باشد خطر بیش‌برازش (Overfitting) برای مدل بیش‌تر است.[۲] پدیده بیش‌برازش زمانی رخ می‌دهد که مدل به‌جای یادگیری الگوهای داده، داده را را حفظ کند و در عمل، فرآیند یادگیری به خوبی انجام نمی‌شود. برای جلوگیری از بیش‌برازش در مدل‌های خطی مانند رگرسیون خطی یا رگرسیون لجستیک جریمه‌ای به تابع هزینه اضافه می‌شود تا از افزایش زیاد پارامترها جلوگیری شود. تابع هزینه را در رگرسیون لجستیک با منفی لگاریتم درست‌نمایی تعریف می‌کنیم تا کمینه کردن آن به بیشینه کردن تابع درست نمایی بینجامد. به این کار نرمال‌سازی (تنظیم مدل یا Regularization) گفته می‌شود. دو راه متداول تنظیم مدل‌های خطی روش‌های L1 و L2 هستند.[۳] در روش L1 ضریبی از نُرمِ L1 به تابع هزینه اضافه می‌شود و در روش L2 ضریبی از نُرمِ L2 که همان نُرمِ اقلیدسی است به تابع هزینه اضافه می‌شود.

کانتورهای قرمز تابع هزینه را نمایش می‌دهند و اشکال آبی مقید سازی نرم پارامتر را. شکل سمت چپ مربوط به L1 است که پارامتر β با نابرابری |β1|+|β2|t مقید شده‌است و شکل سمت راست مربوط به L2 است که پارامتر آن با نابرابری β12+β22t2 مقید شده‌است.[۴]

در تنظیم مدل به روش L1 تابع هزینه را به این شکل تغییر می‌دهیم:[۵] الگو:وسط‌چین Lr(D,β)=L(D,β)+λ||β||1=i=1nyi×logPr(yi=1|xi;β)+(1yi)logPr(yi=0|xi;β)+λk=0m|βk| الگو:پایان وسط‌چین این روش تنظیم مدل که به روش لاسو (Lasso) نیز شهرت دارد باعث می‌شود که بسیاری از پارامترهای مدل نهائی صفر شوند و مدل به اصطلاح خلوت (Sparse) شود.[۶]

در تنظیم مدل به روش L2 تابع هزینه را به این شکل تغییر می‌دهیم: الگو:وسط‌چین Lr(D,β)=L(D,β)+λ||β||22=i=1nyi×logPr(yi=1|xi;β)+(1yi)logPr(yi=0|xi;β)+λk=0mβk2 الگو:پایان وسط‌چین در روش تنظیم از طریق L2 سعی می‌شود طول اقلیدسی بردار β کوتاه نگه داشته شود. λ در روش L1 و L2 یک عدد مثبت است که میزان تنظیم مدل را معین می‌کند. هرچقدر λ کوچکتر باشد جریمه کمتری برا بزرگی نرم بردار پارامترها یعنی β پرداخت می‌کنیم. مقدار ایدئال λ از طریق آزمایش بر روی داده اعتبار (Validation Data) پیدا می‌شود.

تفسیر احتمالی تنظیم مدل

اگر به‌جای روش درست نمایی بیشینه از روش بیشینه سازی احتمال پسین استفاده کنیم به ساختار «تنظیم مدل» یا همان regularization خواهیم رسید.[۷] اگر مجموعه داده را با D نمایش بدهیم و پارامتری که به دنبال تخمین آن هستیم را با β، احتمال پسین Pr(β|D)، طبق قانون بیز متناسب خواهد بود با حاصلضرب درست نمایی یعنی Pr(D|β) و احتمال پیشین یعنی Pr(β):[۸] الگو:وسط‌چین Pr(β|D)=Pr(D|β)×Pr(β)Pr(D) الگو:پایان وسط‌چین ازین رو الگو:وسط‌چین argmaxβPr(β|D)=argmaxβPr(D|β)×Pr(β)Pr(D)=argmaxβPr(D|β)×Pr(β) الگو:پایان وسط‌چین معادله خط پیشین نشان می‌دهد که برای یافتن پارامتر بهینه فقط کافیست که احتمال پیشین را نیز در معادله دخیل کنیم. اگر احتمال پیشین را یک توزیع احتمال با میانگین صفر و کوواریانس τ2I در نظر بگیریم به معادله پایین می‌رسیم:[۸] الگو:وسط‌چین argmaxβlogPr(D|β)=argmaxβlogi=1nPr(yi|xi;β)Pr(β)=argmaxβlog(i=1nPr(yi=1|xi;β)yi×Pr(yi=0|xi;β)1yi12πτexp(||β||22τ)) الگو:پایان وسط‌چین با ساده کردن این معادله به نتیجه پایین می‌رسیم: الگو:وسط‌چین argmaxβlogPr(D|β)=argmaxβi=1nyi×logPr(yi=1|xi;β)+(1yi)logPr(yi=0|xi;β)12τ2||β||2log2πτ الگو:پایان وسط‌چین با تغییر علامت معادله، بیشینه‌سازی را به کمینه‌سازی تغییر می‌دهیم، λ در این معادله همان 12τ2 است: الگو:وسط‌چین argmaxβlogPr(D|β)=argminβ(i=1nyi×logPr(yi=1|xi;β)+(1yi)logPr(yi=0|xi;β))+λ||β||2 الگو:پایان وسط‌چین همان‌طور که دیدیم جواب همان تنظیم مدل با نرم L2 است.

حال اگر توزیع پیشین را از نوع توزیع لاپلاس با میانگین صفر در نظر بگیریم به تنظیم مدل با نرم L1 خواهیم رسید.[۸]

از آنجا که میانگین هر دو توزیع پیشین صفر است، پیش‌فرض تخمین پارامتر بر این بنا شده‌است که اندازه پارامتر مورد نظر کوچک و به صفر نزدیک باشد و این پیش‌فرض با روند تنظیم مدل همخوانی دارد.[۸]

کاربردها

رگرسیون لجستیک در زمینه‌های مختلف از جمله یادگیری ماشین، اکثر رشته‌های پزشکی و علوم اجتماعی مورد استفاده قرار می‌گیرد. برای مثال، میزان آسیب‌دیدگی الگو:انگلیسی، که به‌طور گسترده برای پیش‌بینی مرگ و میر در بیماران مصدوم مورد استفاده قرار می‌گیرد، توسط بوید و همکارانش با استفاده از رگرسیون لجستیک ایجاد شد.[۹] مقیاسهای پزشکی دیگری که برای ارزیابی شدت بیماری به کار می‌رود با استفاده از رگرسیون لجستیک ساخته شده‌اند.[۱۰][۱۱][۱۲][۱۳] رگرسیون لجستیک ممکن است برای پیش‌بینی خطر ابتلا به یک بیماری خاص (به عنوان مثال دیابت؛ بیماری انسداد قلب)، بر اساس ویژگی‌های مشاهده شده بیمار (سن، جنس، شاخص توده بدنی، نتایج آزمایش‌های مختلف خون و غیره) مورد استفاده قرار گیرد.[۱۴][۱۵] رگرسیون لجستیک در علوم سیاسی هم کاربرد دارد. به عنوان مثال این مدل می‌تواند بر روی پیش‌بینی این‌که رای‌دهنده اهل نپال به کنگره نپال یا حزب کمونیست نپال یا هر حزب دیگری رأی دهد، بر اساس سن، درآمد، جنس، نژاد، وضعیت سکونت، آراء در انتخابات‌های قبلی و غیره کار کند.[۱۶] این روش همچنین می‌تواند در مهندسی مورد استفاده قرار گیرد، به ویژه برای پیش‌بینی احتمال عدم موفقیت یک فرایند، سیستم یا محصول معین.[۱۷][۱۸] همچنین در برنامه‌های بازاریابی مانند پیش‌بینی تمایل مشتری برای خرید یک محصول یا متوقف کردن اشتراک و غیره مورد استفاده قرار گیرد.[۱۹]

تاریخچه

تابع لجستیک به عنوان مدلی برای پیش‌بینی رشد جمعیت توسط پیر فرانسوا ورهولست و کمک آدولف کوتله در دهه ۱۸۳۰ و ۱۸۴۰ توسعه یافت و «لجستیک» نامگذاری شد.[۲۰]

تابع لجستیک به‌طور مستقل در شیمی برای مدل‌سازی واکنش خودکاتالیزی توسعه یافت.[۲۱] واکنش خودکاتالیزی یک واکنش شیمیایی است که یکی از محصولات واکنش خود یک فروکافت برای همان واکنش یا یک واکنش جفت باشد.[۲۲]

تابع لجستیک به‌طور مستقل به عنوان مدلی برای پیش‌بینی رشد جمعیت در سال ۱۹۲۰ توسط ریموند پرل و لاول رید دوباره ایجاد و به چاپ رسید که منجر به استفاده آن در علم آمار شد. آن‌ها در ابتدا این مدل را برای مدل‌سازی جمعیت ایالات متحده آمریکا به کار گرفته بودند.[۲۳] ریموند پرل و لاول رید در ابتدا از کار ورهولست بی‌خبر بودند و احتمالاً در مورد آن از گوستاو دو پاسگیر آگاهی یافتند، اما اعتبار کمی به او دادند و اصطلاحات او را اتخاذ نکردند.[۲۴] تقدم کار ورهولست بعدها مورد تأکید قرار گرفت و اصطلاح «لجستیک» توسط اودنی یول در سال ۱۹۲۵ احیا شد و از آن زمان مورد استفاده قرار گرفت.[۲۵]

در دهه ۱۹۳۰، مدل پروبیت توسط چستر ایتنر بلیس و جان گادوم ابداع شد و اصطلاح «پروبیت» برای آن مورد استفاده قرار گرفت. فیشر کمی بعدتر مدل پروبیت را با تخمین از طریق برآورد درست‌نمایی بیشینه توسعه داد. مدل پروبیت در ابتدا اساساً برای زیست سنجی مورد استفاده قرار می‌گرفت و پیش از آن هم در کارهای مشابهی در این زمینه در دهه ۱۸۶۰ از آن استفاده می‌شد. مدل پروبیت بر توسعه بعدی رگرسیون لجستیک تأثیر گذاشت؛ این دو مدل رقیب یکدیگر بودند.[۲۶]

مدل لجستیک احتمالاً برای اولین بار به عنوان جایگزینی برای مدل پروبیت در زیست سنجی توسط ادوین بیدول ویلسون و شاگردش جین ورسستر در مورد استفاده قرار گرفت.[۲۷] با این حال، توسعه مدل لجستیک به عنوان یک جایگزین کلی برای مدل پروبیت، عمدتاً ناشی از کار جوزف برکسون طی چند دهه بود. وی کلمه «لوجیت» را با قیاس به «پروبیت» ایجاد کرد.[۲۸] مدل لوجیت در ابتدا به عنوان مدلی ضعیف‌تر از پروبیت رد شد،[۲۹] اما به تدریج به برابری با مدل پروبیت دست یافت و بعد از آن پیشی‌گرفت. این محبوبیت نسبی بخاطر سادگی محاسباتی، خصوصیات ریاضی و کلی بودن مدل بود که اجازه استفاده از آن را در حوزه‌های گوناگون می‌داد.[۳۰] دیوید کاکس بعدها اصلاحات فراوانی بر روی مدل لوجیت اعمال کرد.[۳۱]

با توسعه مدل لوجیت به مدلی چندجمله‌ای دامنه کاربرد و محبوبیت مدل به شدت افزایش پیدا کرد.[۳۲]

جستارهای وابسته

منابع

الگو:پانویس الگو:آمار