شبیه سازی در آمار — به زبان ساده

۷۹۳ بازدید
آخرین به‌روزرسانی: ۲۹ خرداد ۱۴۰۲
زمان مطالعه: ۷ دقیقه
شبیه سازی در آمار — به زبان ساده

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

به منظور آشنایی بیشتر با اصطلاحات به کار رفته در این نوشتار بهتر است، ابتدا مطالب دیگر  مجله فرادرس با عنوان توزیع های آماری — مجموعه مقالات جامع وبلاگ فرادرس و نمونه‌ گیری و بازنمونه‌ گیری آماری (Sampling and Resampling) — به زبان ساده را مطالعه کنید. همچنین خواندن نوشتارهای جامعه آماری — انواع داده و مقیاس‌های آن‌ها و فاصله اطمینان (Confidence Interval) — به زبان ساده نیز خالی از لطف نیست.

شبیه سازی در آمار

شبیه سازی در آمار روشی است که بوسیله آن داده‌های مصنوعی از یک «جامعه آماری» (Population) تولید شده تا یک «روش آماری» (Statistical Method) یا «آزمون فرض آماری» (Statistical Hypothesis Test) مورد تحزیه و تحلیل قرار گیرد. هر گاه یک نظریه یا روش آماری جدید ابداع می‌شود، لازم است که صحت عملکرد آن سنجیده شود.

این کار توسط روش‌های «شبیه سازی» (Simulation) و تولید داده‌ها از جامعه آماری مورد نظر، صورت می‌گیرد. به این ترتیب آمارشناسان دقت و کارکرد مناسب روش جدید را به کمک این داده‌ها ارزیابی می‌کنند.

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

  • کاهش هزینه‌های نمونه‌گیری: شبیه سازی در آمار ارزان است زیرا با استفاده از داده‌های مصنوعی و تولید شده طبق توزیع‌های آماری بوسیله روش‌های شبیه سازی رایانه‌ای صورت می‌پذیرد.
  • سرعت در نمونه‌گیری: شبیه سازی در آمار بسیار سریع‌تر از نمونه‌گیری از جامعه آماری است زیرا به کمک رایانه‌ها می‌توانید در زمان اندکی، چندین نمونه از توزیع‌های مختلف آماری تولید کرده و روش‌های آماری را بوسیله آن‌ها بسنجیند.
  • کاهش اریبی: از آنجایی که با افزایش نمونه‌ها، «اریبی» (Biased) در تحلیل‌های آماری کمتر خواهد شد، نتایج حاصل از شبیه‌سازی بسیار به جامعه آماری واقعی نزدیک خواهد بود.

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

چگونه شبیه سازی آماری انجام دهیم؟

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

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

dice rolling

گام اول: تعریف پیشامدها

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

$$ \large \Omega = \{ 1, 2, 3, 4, 5, 6 \} $$

به یاد دارید که فضای نمونه برای یک پدیده تصادفی، نتایج ممکن برای آن آزمایش تصادفی است و با $$\Omega$$ نمایش داده می‌شود.

گام دوم: شمارش تعداد نتایج مطلوب

معمولا محاسبه احتمال بستگی به نظر محقق دارد. گاهی برای محاسبه احتمال از تعبیر «فراوانی نسبی» (Relative Frequency) استفاده می‌شود. گاهی براساس آمار یا استنباط بیز (Bayesian Inference)، تجربیات گذشته یا اطلاعات قبلی در مورد پارامتر جامعه که به آن «اطلاعات احتمالی پیشین» (Prior Likelihood) گفته می‌شود در محاسبه «احتمال پسین» (Posterior Likelihood) موثر هستند. به هر حال در این جا به علت متناهی بودن فضای نمونه و پیشامد، از تعبیر فراوانی نسبی برای محاسبه احتمال استفاده خواهیم کرد.

از آنجایی که احتمال مشاهده هر یک از وجه‌های تاس سالم باید برابر باشد، براساس توزیع یکنواخت گسسته عمل کرده و می‌دانیم که احتمال مشاهده عدد ۶ روی یک تاس برابر با $$\frac{1}{6}$$ است.  بنابراین اگر متغیر تصادفی $$X$$ را مقدار عدد تاس در نظر بگیریم، مقدار احتمال مشاهده عدد ۶ را به صورت زیر نمایش می‌دهیم.

$$ \large P ( X  = 6 ) = \dfrac{1}{6} $$

گام سوم: تولید اعداد تصادفی

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

به همین دلیل از رایانه‌ها یا دستگاه‌های «تولید اعداد تصادفی» (Random Number Generator) برای گام‌های شبیه سازی در آمار استفاده می‌شود.

برای حل مسئله احتمال مشاهده عدد ۶ در پرتاب تاس، از ۵۰۰ عدد تصادفی که توسط یک رایانه از «توزیع یکنواخت گسسته» (Discrete Uniform Distribution) با پارامتر $$n=6$$، ایجاد شده است، استفاده کرده‌ایم. این اعداد و کد تولید آن‌ها به زبان برنامه‌نویسی محاسبات آماری $$R$$ را در ادامه مشاهده می‌کنید.

1x=rdunif(n = 500,a= 1,b= 6)

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

1[1] 5 4 1 5 1 6 2 3 4 3 3 5 1 6 2 5 3 2 5 4 4 1 3 4 1 3 5 2 4 2 5 2 1 2 1 5 5 6 3 2
2 [41] 1 5 6 1 2 4 3 2 3 3 4 5 6 1 6 6 5 3 1 2 5 1 1 5 4 6 1 5 4 1 1 1 6 1 4 6 1 1 3 2
3 [81] 3 1 4 6 4 4 5 3 5 5 6 3 5 1 5 1 6 1 6 3 5 5 6 6 4 5 2 5 3 3 6 3 2 3 2 4 3 2 5 5
4[121] 2 1 5 1 1 4 6 3 5 3 3 2 1 5 1 5 5 1 4 1 1 6 1 1 1 2 6 2 2 1 5 6 2 2 6 3 2 3 3 3
5[161] 2 1 5 3 6 2 4 3 5 1 5 4 6 2 6 6 6 6 1 3 6 3 4 1 4 5 3 5 6 4 1 1 3 6 2 6 1 3 5 4
6[201] 4 6 1 2 5 4 2 6 4 6 3 2 6 5 4 6 3 6 5 6 6 4 1 1 4 6 3 6 3 1 3 6 1 1 2 4 5 4 3 3
7[241] 6 6 4 3 1 3 4 4 3 5 4 3 1 1 4 2 1 5 1 4 5 4 5 4 3 4 6 6 2 4 3 5 4 4 5 5 4 6 3 5
8[281] 5 6 2 2 5 6 5 3 1 5 2 6 6 1 6 6 1 2 6 3 6 5 5 1 2 4 4 5 3 5 1 5 2 4 2 4 1 1 4 4
9[321] 6 5 1 2 2 2 5 1 2 5 4 6 5 5 1 6 1 1 4 5 3 1 6 2 5 2 2 3 3 1 5 3 2 1 6 3 3 5 2 3
10[361] 3 1 6 6 6 1 2 4 6 3 2 2 6 4 3 6 1 6 6 6 6 4 4 2 1 2 3 2 1 4 6 4 2 1 5 3 6 2 4 2
11[401] 1 3 4 6 5 5 1 5 4 5 6 5 4 5 1 2 3 5 4 4 5 5 1 4 1 3 3 2 2 5 4 6 4 1 5 3 6 2 3 4
12[441] 2 1 1 5 3 3 6 4 5 4 6 6 3 3 6 6 6 2 4 1 6 4 6 5 6 2 2 6 6 3 1 2 1 6 5 6 1 4 3 5
13[481] 4 3 5 3 1 3 3 5 4 3 2 6 6 1 4 3 1 2 2 2

گام چهارم: انتخاب مقدار مورد نظر

در این مرحله، باید نتایج تولید اعداد تصادفی را بررسی کنیم و تعداد مقادیر مطلوب را شمارش کنیم. این امر در مثال ما شمارش تعداد عدد ۶ است که در اعداد تصادفی تولید شده است. این تعداد برای محاسبه احتمال مورد نظر در گام بعدی مورد استفاده قرار می‌گیرد. این کار را به کمک کد زیر در زبان $$R$$ انجام داده‌ایم.

1sum(x==6)

گام پنجم: تحلیل الگوی داده‌ها

در این مرحله، مقادیر و داده‌ها مربوط به پدیده تصادفی توسط شبیه سازی آماری تهیه شده‌اند و لازم است نتیجه‌ای که از این شبیه سازی انتظار داریم را محاسبه کنیم. همانطور که گفته شد، قرار بود احتمال مشاهده عدد ۶ را در پرتاب تاس مورد نظر بدست آوریم. این احتمال به «احتمال تجربی» (Empirical Portability) معروف است.

در مثال ما تعداد ۶‌های مشاهده شده برابر با ۷۳ مورد است. از آنجایی که ۵۰۰ بار عمل تولید عدد تصادفی را تکرار کرده‌ایم، مقدار احتمال به کمک فراوانی نسبی به صورت زیر خواهد بود.

$$ \large \widehat{P}(X=6) = \dfrac{73}{500}=0.17 \approx 0.16667 = \dfrac{1}{6} $$

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

به تعبیر فراوانی نسبی، این احتمال نشان می‌دهد که از هر شش پرتاب تاس، انتظار داریم که یک بار عدد ۶ را مشاهده کنیم. برای محاسبه این مقدار می‌توانید از کد زیر نیز بهره ببرید.

1mean(x==6)

نکته: از آنجایی که انجام محاسبات و کد بالا در هر بار، اعداد تصادفی متفاوتی را ایجاد می‌کند، ممکن است تعداد شش‌های مشاهده شده با مقدار ۷۳ تفاوت داشته باشد، ولی به هر حال حاصل تقسیم مقداری نزدیک به $$0.1667$$ خواهد بود.

خلاصه و جمع‌بندی

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

البته تکنیک‌ها و رو‌ش‌های مختلفی مانند «روش مونت کارلو» (Monte Carlo Simulation Method) برای شبیه سازی در آمار وجود دارد ولی در همه آن‌ها روند تولید نمونه، تقریبا شکل یکسان و مشابهی دارند. پنج گامی که در این نوشتار به آن پرداختیم، الگوی مناسبی برای شبیه سازی در آمار خواهد بود.

بر اساس رای ۷ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Maghooshمجله فرادرس
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *