هانیه مهدوی
هانیه مهدوی
خواندن ۷ دقیقه·۱ سال پیش

جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه بیست‌وسوم - آزمون فیشر و مقدار P

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

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

پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.


در جلسه گذشته با آزمون فرض آشنا شدیم و دیدیم که چقدر مفهوم مهمی هست. از بین آزمون‌های فرضی هم که وجود دارن آزمون Z رو بررسی کردیم. این جلسه قراره با یک نوع آزمون فرض دیگه با عنوان آزمون فیشر آشنا بشیم.

برگردیم به همون مثال شرکت دارویی که در جلسه گذشته دیدیم. دو گروه داریم، به 50 نفر یه دارویی رو دادیم و به 50 نفر یک داروی بی‌اثر دادیم و جدول زیر حاصل شده:

قراره بررسی کنیم اگر افرادی که دارو بهشون دادیم و بهبود یافتن، اگر به جای 30 نفر، 29 نفر بودن چی؟ ترشلدمون روی چند نفر باشه که بتونیم بگیم دارو موثر بوده؟

آزمونی وجود داره با عنوان فیشر که فرض صفرش میگه ستون‌ها از سطرها مستقل هستن و فرض یکش میگه ستون‌ها به سطرها وابسته هستن.

با توجه به مثالی که زدیم، فرض صفر داره میگه که اگر بدونیم یک نفر دارو گرفته یا دارو نگرفته این هیچ تاثیری در بهبود یا عدم بهبود فرد نداره. یعنی انگار دارو بی‌اثره.

حالا، بیایم فرض کنیم که فرض صفر برقراره. می‌تونیم تو این حالت مثالمون رو تبدیل کنیم به مثال کیسه و گوی‌های رنگی. یعنی انگار 50 تا گوی سبز داریم و 50 تا گوی قرمز. بعد میایم 40 تا گوی رو تصادفی از این کیسه خارج می‌کنیم (40 برابر هست با مجموع تعداد کسانی که بهبود یافتن چه اونایی که دارو گرفتن چه اونایی که داروی بی‌اثر گرفتن). حالا، می‌خوایم ببینیم چقدر احتمال داره که 30 تا گوی سبز ببینیم و 10 تا گوی قرمز.

چون تعداد هر کدوم از گوی‌ها 50 تاست، احتمال میره که با رندوم برداشتن گوی‌ها در نهایت 20 تا گوی قرمز ببینیم و 20 تا گوی سبز. خیلی احتمالش کمتره که 30 تا گوی سبز ببینیم و 10 تا گوی قرمز. حالا در ادامه قراره این احتمال رو محاسبه کنیم.

جدول زیر رو در نظر بگیرید:

داره میگه در مجموع a+c تا گوی سبز داریم و b+d تا گوی قرمز. از این تعداد قراره a+b تا گوی رو بیرون بکشیم.

می‌خوایم در کل a+c تا گوی رو بیرون بکشیم. به چند روش امکان داره که از a+c تا گوی سبز، دقیقاً a تارو بیرون بکشیم؟ این تعداد:

حالا به چند روش می‌تونیم از b+d تا گوی قرمز دقیقاً b تارو بیرون بکشیم؟ این همه:

کل تعداد حالاتی که میشه گوی بیرون بکشیم میشه ضرب دو تعداد به دست اومده:

و تعداد کل حالاتی که وجود داره میشه بیرون کشیدن a+b تا گوی به صورت رندوم از a+b+c+d تا گوی:

حالا اگه بخوایم احتمال رو محاسبه کنیم داریم:

فرمولی که ارائه شده یکی از فرمول‌های فیشر هست.

در ادامه مواردی که گفتیم رو با R پیاده‌سازی می‌کنیم و بعد به ازای تعداد گوی‌هایی که تو این حالت داریم احتمال رو محاسبه می‌کنیم.

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

حالا اگر بیایم با توجه به صورت مسئله‌ای که مطرح کردیم احتمال فیشر رو محاسبه کنیم داریم:

همونطور که بالاتر هم گفتیم وقتی از دو رنگ 50 تا گوی داشته باشیم خیلی احتمالش کمه که به صورت رندوم 30 تا گوی سبز و 10 تا گوی قرمز خارج کنیم.

مفهوم P-value

تا اینجا به کمک فرمول فیشر فهمیدیم که چقدر احتمال داره دقیقاً همون اعدادی که از تست به دست آوردیم رو ببینیم. حالا چقدر احتمال داره که با در نظر گرفتن فرض صفر، وضعیت‌های سخت‌تری رو ببینیم؟ منظورمون از وضعیت‌های سخت‌تر اینکه به جای اینکه به جای نسبت 30 به 20 (افرادی که بهشون دارو داریم) اعداد 31 و 19 یا اعداد 29 و 21 رو ببینیم. به این مقدار احتمال تو این حالت، p-value گفته میشه.

به عبارتی دیگه برای تعریف p-value داریم:

حالا فرض کنید اگر فرض H0 برقرار باشه توزیع آماره به صورت زیر در میاد:

بعد شرایط سخت‌تر رو میشه به صورت زیر مشخص کرد:

اون مساحتی که قرمز شده تو عکس بالا در واقع همون p-value هست. یعنی احتمال اینکه با فرض برقرار بودن H0، همون مقدار اولیه‌ای که آماره داشته یا شرایط سخت‌تر رو ببینیم. منظورمون از مقدار اولیه تو مثال دارو همون اعداد 30 و 20 هست.

حالا اصلاً مفهوم p-value چیه؟ میگه چقدر احتمال داره اون تفاوتی که در اثر انجام یک کاری انجام شده (مثلاً دارو دادن به بیمار و بهبود یافتن) بخاطر شانس بوده باشه. مثلاً فرض کنید مقدار p-value برابر با 0.1 باشه. در حالتیکه فرض صفر برقرار باشه، به این معنی هست که چه به بیمار دارو بدیم چه داریم ندیم، 10 درصد احتمال بهبود وجود داره.

یا فرض کنید مقدار p-value برابر با 0.001 باشه. تو این حالت چون 0.1 درصد احتمال داره که با برقرار بودن فرض H0، خوردن یا نخوردن دارو در بهبود بیماری اثر داشته باشه، میشه نتایج رو به صورت معنی‌دار یا significant گزارش کرد. یعنی تو این حالت حق داریم که فرض صفر رو رد کنیم.

حالا چه حدی رو برای p-value در نظر بگیریم که اگر مقدار به دست اومده از اون کمتر بود بتونیم نتایج رو به صورت معنی‌دار گزارش کنیم و فرض صفر رو رد کنیم؟ معمولاً مقدار 0.05 یا 0.01 رو در نظر می‌گیرن و بهش p-value cutoff گفته میشه.

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

X = a+c Y = b+d Z = a+b W = c+d

حالا فرض کنید a رو آماره در نظر گرفتیم و قراره تغییرش بدیم تا ببینیم چه وضعیتی پیدا می‌کنه. از طرفی مقادیر X و Y و Z و W رو هم بهمون دادن. با این فرضیات مقادیر b و d و c به صورت زیر به دست میاد:

c = X-a b = Z - a d = Y - b

بعد هم وقتی مقادیر مشخص بشن با فرمول فیشر می‌تونیم بیایم و احتمال رو محاسبه کنیم.

همه این‌هارو با R پیاده‌سازی می‌کنیم و به ازای X=50 و Y=50 و Z=40 نتایج رو می‌بریم رو نمودار ببینیم چطور میشه:

نمودار بالا داره چی میگه؟ داره میگه اگر 50 تا گوی سبز و 50 تا گوی قرمز رو داخل یک کیسه ریخته باشی و ازش 40 تا گوی رو بیرون کشیده باشی، توزیعی که خواهی داشت به صورت بالا در میاد. در واقع توزیع تحت برقرار بودن شرط صفر به صورت بالا میشه. در حالتیکه که مقدار a=20 هست، توزیع بیشترین مقدار احتمال رو داره.

برای به دست آورد مقدار p-value چه کنیم؟ قراره یک a رو در نظر بگیریم بعد مقادیر احتمال کوچیک‌تر یا مساوی با a متناظر رو جمع بزنیم. اگه به R کدش رو بنویسیم به صورت زیر میشه:

حالا همون مقادیری که تو مثال اول داشتیم رو به تابع میدیم تا مقدار p-value رو برامون محاسبه کنه:

چه اتفاقی میفته؟ میاد میگه از اونجایی که a=30 شده به بعد رو مقادیر احتمال رو فیشر رو براش بگیر و جمع بزن و در نهایت بهم بده. حالا خود عدد به دست اومده چی داره میگه؟ داره میگه اگر دارویی که ساخته شده اثر نداشت، 0.0000415432 احتمال داشت که 30 نفر یا 31 نفر یا 29 نفر بهبود پیدا کنن. چون مقدار p-value خیلی کم شده اینجا میشه فرض صفر رو رد کرد و به این نتیجه رسید که دارو اثر داره.

حالا فرض کنید اون دسته‌ای که بهشون دارو ندادیم و بهبود پیدا کردن (c) از 10 نفر بشن 20 نفر، اون موقع مقدار p-value برابر میشه با:

با این کار مقدار p-value بزرگ‌تر میشه و نمیشه فرض صفر رو رد کرد.

الان با این مقدار p-value می‌تونیم بگیم که دقیقاً چند تا بیمار بهبود پیدا بکنن میشه دارو رو تایید کرد و فروخت.

جمع‌بندی مطالب ارائه شده

با آزمون فیشر و p-value آشنا شدیم و دیدیم که چطور در رد کردن یا پذیرفتن فرضیه‌های آماری می‌تونن بهمون کمک کنن.


اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم. همچنین، پیشنهاد می‌کنم که حتماً صفحه گیت‌هاب این دوره رو مورد بررسی قرار بدین. حتماً به دردتون می‌خوره.

ویدیو این جلسه

صفحه گیت‌هاب مرتبط با این دوره

جزوه جلسه قبلی (جلسه بیست‌ودوم)

جزوه جلسه بعدی (جلسه بیست‌وچهارم)

من هانیه‌ام. مدتیه شروع کردم به تولید محتوا در قالب متن و به زبان فارسی، از روی دوره‌هایی که می‌گذرونم. اگر دوست داشتین برام قهوه بخرید: https://coffeete.ir/honio
شاید از این پست‌ها خوشتان بیاید