سطح مقدماتی (Beginner Level)
پایتون به عنوان یکی از قدرتمندترین زبانها برای علم داده (Data Science) شناخته میشود. در حالی که کتابخانههای بزرگی مثل NumPy و Pandas وجود دارند، پایتون یک ماژول داخلی و سبک به نام statistics دارد که برای محاسبات آماری پایه بسیار کارآمد است و نیازی به نصب هیچ پکیج اضافی ندارد.
محاسبه معیارهای گرایش به مرکز (Central Tendency)
مهمترین مفاهیم در آمار مقدماتی، پیدا کردن "مرکز" دادههاست. این کار معمولاً با سه شاخص اصلی انجام میشود: میانگین (Mean)، میانه (Median) و مُد (Mode).
۱. میانگین (Mean)
میانگین حسابی، حاصل جمع همه اعداد تقسیم بر تعداد آنهاست.
# Example 2: Mean with floating point numbers (Static snippet)
import statistics
data = [1.5, 2.5, 3.5]
# (1.5 + 2.5 + 3.5) / 3 = 2.5
result = statistics.mean(data)
۲. میانه (Median)
میانه عددی است که دقیقاً در وسط مجموعه دادههای مرتبشده قرار میگیرد. اگر دادهها دارای نویز (Noise) یا اعداد پرت (Outliers) باشند، میانه معیار بهتری نسبت به میانگین است.
اگر تعداد دادهها زوج باشد، median میانگین دو عدد وسط را میگیرد. اما گاهی نیاز دارید حتماً یکی از اعداد موجود در لیست را انتخاب کنید:
median_low(): عدد کوچکتر در وسط.median_high(): عدد بزرگتر در وسط.
۳. مُد (Mode)
مُد پرتکرارترین داده در مجموعه است. این معیار برای دادههای غیرعددی (Nominal) نیز کاربرد دارد.
در نسخههای جدید پایتون (3.8+)، اگر دادهها دارای چند مُد باشند (Multimodal)، تابع mode اولین مورد را برمیگرداند یا خطا میدهد. برای دریافت همه مُدها از multimode استفاده کنید.
سطح پیشرفته (Professional Level)
در سطح حرفهای، ماژول statistics ابزارهایی برای تحلیل پراکندگی (Dispersion)، همبستگی و کار با توزیعهای نرمال ارائه میدهد. استفاده از این ابزارها برای نوشتن اسکریپتهای تحلیل داده بدون وابستگی به کتابخانههای سنگین خارجی (Third-party) ایدهآل است.
پراکندگی دادهها (Variance & Stdev)
برای درک اینکه دادهها چقدر از میانگین فاصله دارند، از واریانس (variance) و انحراف معیار (stdev) استفاده میکنیم.
- stdev (Standard Deviation): انحراف معیار نمونه.
- pstdev: انحراف معیار جامعه (Population).
# Example 2: Variance logic (Static)
def analyze_spread(data):
# Variance is stdev squared
var = statistics.variance(data)
dev = statistics.stdev(data)
return var, dev
شیء NormalDist (پایتون 3.8+)
این کلاس قدرتمند اجازه میدهد بدون پیچیدگیهای ریاضی، بر روی توزیع نرمال (زنگولهای) محاسبات انجام دهید. میتوانید همپوشانی دو توزیع یا احتمال وقوع یک داده را محاسبه کنید.
همبستگی و رگرسیون خطی (پایتون 3.10+)
از نسخه 3.10 به بعد، توابع correlation و linear_regression اضافه شدند که برای بررسی رابطه بین دو متغیر بسیار مفید هستند.
کار با دادههای دقیق (Decimal و Fraction)
ماژول statistics از انواع دادههای Decimal و Fraction پشتیبانی میکند. این موضوع در محاسبات مالی که خطای اعشاری (Floating Point Error) غیرقابل قبول است، بسیار حیاتی است.