چرا برنامه‌نویسا از دکترا باهوش‌ترن؟

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

تصور کنید یه بیماری داریم توی به اسم D که میزان ابتلا بهش هم ۸ تا تو هر ۱۰ هزار نفر هست؛ و یه تست داریم برای سنجش ابتلا بهش که ۹۹ درصد دقیقه (برای درک میزان دقتی که عرض کردم باید بگم گویا تست‌های کرونای توی ایران بین ۶۰ تا ۸۰ درصد دقیق هستن). توی این شرایط تست مثبت یعنی چی؟

بذارید یه سناریو رو مطرح کنم، جو از وقتی بچه بوده و گذرش به بیمارستان افتاده می‌دونه توی تشخیص طبی «مثبت» ینی ابتلا به بیماری و «منفی» ینی عدم ابتلا؛ درواقع مثبت ینی بد و منفی ینی خوب! جو یه روز توی خیابونا ول می‌چرخیده و منتظر بوده مدرسه دخترونه تعطیل شه که یهو می‌بینه روی یه تابلوی گنده نوشته «تست D رایگان!» و با خودش می‌گه مفت باشه کوفت باشه! بعد از یه هفته که طول کشید نتیجه تست بیاد، جو خیلی شوکه شد چون نتیجه مثبت بود. جو نمی‌تونست حتا به خانواده‌اش یا شریک زندگی‌اش نتیجه تست رو بگه! (منطقا می‌تونید حدس بزنید چرا)

BIDEN 2024 (:
BIDEN 2024 (:

بازم سوالم رو می‌پرسم، نتیجه تست مثبت شده یعنی چی؟ منطقا جوابو می‌دونین که ینی «اگر بیمار مبتلا به D این آزمایش رو بده تستش باید مثبت باشه»؛ ولی حالا بیاید به‌شیوه‌ای که یه برنامه‌نویس (یا بصورت دقیق‌تر دیتاساینتیست) باید این مسئله رو حل کنه به قضیه نگاه کنیم:

اگر متغیر T رو برای پیشامد «تست جو مثبته» تعریف کنیم و D رو برای پیشامد «جو مبتلا به D هست»؛ پس احتمال مبتلا بودن جو به D به شرطی‌که تستش مثبت بوده باشه می‌شه P(D|T) که باید حسابش کنیم!

خب مرحله به مرحله می‌ریم جلو؛ ما احتمال اینکه تست فرد مبتلا مثبت باشه رو داریم P(T|D) = 0.99 که همون دقت آزمایشه؛ ما احتمال ابتلا به بیماری رو هم داریم ینی P(D) = 0.0008. اگر یکم دقیق بشیم و روی مسئله فکر کنیم احتمال اینکه تست مثبت بیاد ولی کیس مبتلا نباشه رو داریم که هست P(T|¬D) = 0.01 عدم ابتلا رو هم داریم که هست P(¬D) = 0.9992. ولی چیزی که ما می‌خوایم احتمال وقوع D به شرط T هست؛ ینی یجورایی برعکسشو داریم (برعکس عبارت دقیقی می‌تونه نباشه).

اگر تعریف احتمال شرطی رو دو بار بنویسیم داریم:

نکته: جو هیچ علائمی از قبل نداشته و براساس فلسفه «مفت باشه کوفت باشه» رفته جلو!
نکته: جو هیچ علائمی از قبل نداشته و براساس فلسفه «مفت باشه کوفت باشه» رفته جلو!

پیشامد تست مثبت رو می‌شه به دو حالت «تست مثبت و ابتلا به بیماری» یا «تست مثبت و عدم ابتلا به بیماری» بازنویسی کرد، پس داریم:

احتمال تست مثبت و ابتلا یا تست مثبت عدم ابتلا
احتمال تست مثبت و ابتلا یا تست مثبت عدم ابتلا

که می‌شه به شکل زیر بازترش کرد:

نتیجه کلی می‌شه این که:

اثبات قضیه بیز
اثبات قضیه بیز

حالا که به فرمولی که لازم داریم رسیدیم، مونده که فقط جایگذاری کنیم و چون ما برنامه‌نویسا عادت داریم با هواپیما بریم سر کوچه نون بگیریم، عین احمقا با پایتون می‌نویسیم اینو، با کلی کامنت و حتا تابع مین (پراسیجر رو اینجا می‌فهمین چطوریه):

جو اگر آلمانی بود
جو اگر آلمانی بود

و منطقا احتیاجی نیست توضیح بدم که ۷/۲ درصد خیلی خیلی کمتر از ۹۹ درصده! ینی با اینکه جو آدم منحرف و بیکاریه که تست ایدزش (عه لو دادم اسم بیماری رو) مثبت بوده، ولی به احتمال خیلی زیاد مبتلا به ایدز نیست و شدیدترین مشکلش احتمالا مربوط به معده باید باشه.

اگر بخوام آسونتر و بصورت شهودی مسئله رو توضیح بدم:

اگر جمعیت ۸۱ میلیون نفری آلمان در ۲۰۱۰ رو درنظر بگیریم؛ انتظار داریم از جمعیت حدود ۶۴ هزار نفر مبتلا به ایدز که ۶۳ هزار و ۳۶۰ نفرشون تست مثبت می‌گیرن (و بله، ۶۴۰ نفر تست می‌دن و منفی میاد ?). و از طرف دیگه انتظار داریم اگر از همه تست ایدز بگیریم صرفا ۷ درصد اون‌ها واقعا ایدز داشته باشن.
باید ذکر کرد که این داده‌ها مربوط به ۲۰۱۰ هستن و از سایت UNAIDS دریافت شدن، ساختار جمعیتی و ایدزی (نمی‌دونم اسمش این هست یا نه) آلمان از ۲۰۱۰ به اینور خیلی تغییر کرده بخاطر پذیرش حجم زیادی مهاجر توی دولت مرکل و آمار جدیدتری از UNAIDS ندیدم من که می‌تونه هر دلیلی داشته باشه که شخصا مثل هر ایرانی دیگه‌ای دلایل آغشته به تئوری توهم توطئه رو راحت‌تر باور می‌کنم: کار، کار این مرکل لعنتیه!

اگر این مسئله توی کشورهای ایالات متحده، رواندا و اسواتینی (Eswatini) بررسی کنیم بیشتر شیو می‌شیم:

  • ایالات متحده: ۲۳/۱۹ درصد
  • رواندا: ۶۸/۹۲ درصد
  • اسواتینی (سوازیلند سابق): ۹۵/۲۶ درصد که یه ضرب‌المثل قدیمی رو به یادمون میاره:

In Eswatini you're not f**ked, you are F**K itself.

با تشکر از جو بایدن، آنگلا مرکل، مسواتی سوم (پادشاه اسواتینی) و جوئل گروس



پ.ن.: من چون نه برنامه‌نویس هستم و نه دکتر، می‌تونم نظاره‌گر ستیز دوستان برنامه‌نویس و دکتر باشم.

پ.ن.۲: چون الان نزدیکای ۴ صبح هست، احتمالا بولشت توی این محاسبات زیاده، اگر حال داشتم فردا ریویو می‌کنم و اصلاح می‌کنم ولی احتمالا ندارم.

پ.ن۳: الان برگشتم اضافه کنم که کاش لقمه رو بیشتر دور کله‌ام پیچونده بودم و اصلا داده‌ها رو اتومات از سایت UNAIDS توی پایتون لود کرده بودم. ولی حال ندارم، شب بخیر.