آمار و احتمال پایه برای برنامه نویسی | آمار و احتمال در برنامه‌نویسی

محاسبه معیارهای مرکزی و پراکندگی با کد

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

1. میانگین (Mean)
میانگین، مجموع تمام اعداد تقسیم بر تعداد آنهاست.

  • کد (Python):
    def calculate_mean(data):
    return sum(data) / len(data) if len(data) > 0 else 0
  • توضیح: تابع sum همه اعداد را جمع می‌کند و len تعداد آنها را برمی‌گرداند. شرط if از تقسیم بر صفر جلوگیری می‌کند.

2. میانه (Median)
میانه، عدد وسطی بعد از مرتب‌سازی داده‌هاست. اگر تعداد داده‌ها فرد باشد، میانه همان عدد وسطی است. اگر زوج باشد، میانگین دو عدد وسطی.

  • کد (Python):
    def calculate_median(data):
    sorted_data = sorted(data)
    n = len(sorted_data)
    if n == 0:
        return 0
    if n % 2 == 1:
        return sorted_data[n // 2]
    else:
        mid1 = sorted_data[n // 2 - 1]
        mid2 = sorted_data[n // 2]
        return (mid1 + mid2) / 2
  • توضیح: ابتدا داده‌ها را مرتب می‌کنیم. با استفاده از % 2 زوج یا فرد بودن تعداد را تشخیص می‌دهیم. عملگر // تقسیم صحیح را انجام می‌دهد تا اندیس وسط را پیدا کند.

3. مد (Mode)
مد، مقداری است که بیشترین تکرار را دارد. اگر چند مقدار تکرار یکسان داشته باشند، همه آنها مد محسوب می‌شوند.

  • کد (Python):
    def calculate_mode(data):
    if not data:
        return []
    frequency = {}
    for value in data:
        frequency[value] = frequency.get(value, 0) + 1
    max_count = max(frequency.values())
    mode_values = [key for key, count in frequency.items() if count == max_count]
    return mode_values
  • توضیح: یک دیکشنری می‌سازیم که هر مقدار را به تعداد تکرارش نگاشت کند. سپس بیشترین تعداد تکرار را پیدا می‌کنیم و در نهایت کلیدهایی که این تعداد را دارند، به عنوان مد بازمی‌گردانیم.

4. واریانس (Variance)
واریانس، میانگین مجذور انحراف هر داده از میانگین است. این معیار نشان می‌دهد داده‌ها چقدر از میانگین پراکنده هستند. در آمار، معمولاً از واریانس نمونه (Sample Variance) استفاده می‌شود که مخرج آن n-1 است.

  • کد (Python):
    def calculate_variance(data, is_sample=True):
    n = len(data)
    if n < 2:
        return 0
    mean = calculate_mean(data)
    squared_diff = sum((x - mean) ** 2 for x in data)
    if is_sample:
        return squared_diff / (n - 1)
    else:
        return squared_diff / n
  • توضیح: ابتدا میانگین را حساب می‌کنیم. سپس مجموع مربع اختلاف هر داده با میانگین را محاسبه می‌کنیم. is_sample مشخص می‌کند که آیا داده‌ها نمونه‌ای از یک جمعیت هستند (n-1) یا کل جمعیت (n).

5. انحراف معیار (Standard Deviation)
انحراف معیار، ریشه دوم واریانس است. این معیار پراکندگی را در واحد اصلی داده‌ها نشان می‌دهد.

  • کد (Python):
    
    import math

def calculate_std_dev(data, is_sample=True):
variance = calculate_variance(data, is_sample)
return math.sqrt(variance)

- **توضیح:** با استفاده از تابع `math.sqrt` ریشه دوم واریانس را محاسبه می‌کنیم.

**مثال کامل (استفاده از توابع):**
```python
data = [10, 12, 23, 23, 16, 23, 21, 16]

print("میانگین:", calculate_mean(data))       # خروجی: 18.0
print("میانه:", calculate_median(data))       # خروجی: 19.5
print("مد:", calculate_mode(data))             # خروجی: [23]
print("واریانس نمونه:", calculate_variance(data))     # خروجی: 26.2857...
print("انحراف معیار نمونه:", calculate_std_dev(data)) # خروجی: 5.1269...

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

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3
  • 4