آزمون فریدمن: راهنمای کامل برای رتبهبندی و مقایسه
رفیق برنامهنویس، یا هر کسی که سر و کارش به داده و آمار میخوره! تا حالا شده بخوای چند تا گروه رو با هم مقایسه کنی، ولی دادههات از اون مدلهایی نباشن که بشه با آزمونهای پارامتریک (مثل ANOVA) بهشون حمله کرد؟ مثلاً نظرات چند نفر رو در مورد چند محصول مختلف داری، و میخوای بدونی کدوم محصول واقعاً بهتره، یا اصلاً فرقی با هم دارن؟ اینجا جادوی آزمون فریدمن به کار میاد! یه ابزار قدرتمند آماری که کمکت میکنه این مقایسهها رو بدون اینکه نگران نرمال بودن توزیع دادههات باشی، انجام بدی. این مقاله یه نقشه راه کامله تا هم بفهمی فریدمن چیه، هم چطور اجراش کنی و نتایجش رو درست بخونی. آمادهای؟ بزن بریم!
همین الان مشاوره رایگان بگیر!
تماس با ما: 09356661302
نقشه راه سریع: آزمون فریدمن در یک نگاه

1️⃣ هدف
مقایسه سه یا چند گروه مرتبط (وابسته) زمانی که دادهها ترتیبی یا فاصلهای غیرنرمال هستند.
2️⃣ نوع داده
دادههای ترتیبی (Ordinal) یا فاصلهای (Interval) که شرایط نرمالیتی را ندارند.
3️⃣ مفهوم کلیدی
رتبهبندی دادهها درون هر بلوک (موضوع/فرد) و سپس مقایسه میانگین رتبهها.
4️⃣ خروجی اصلی
آیا حداقل یک تفاوت معنیدار بین گروهها وجود دارد؟ (p-value)
5️⃣ گام بعدی
در صورت وجود تفاوت، از آزمونهای تعقیبی (Post-Hoc) برای یافتن جزئیات تفاوت استفاده کن.
آزمون فریدمن چیست؟ یک شروع دوستانه!

تصور کن توی یه تیم تحقیق و توسعه کار میکنی و میخواید سه تا رابط کاربری جدید (UI) رو برای یه اپلیکیشن طراحی کنید. حالا باید از چند تا کاربر بخواید هر سه تا UI رو تست کنن و به هر کدوم یه امتیازی بدن. مشکل اینجاست که هر کاربر ممکنه خودش معیارهای خاصی داشته باشه یا کلاً آدم سختگیری باشه و امتیازهای پایینتری بده، در حالی که یه کاربر دیگه شاید دست و دلبازتر باشه. یعنی امتیازات مطلق افراد قابل مقایسه مستقیم نیستن.
اینجاست که آزمون فریدمن وارد گود میشه! فریدمن یه آزمون ناپارامتریک برای مقایسه سه یا چند گروه مرتبط (یا تکراری) هست. “ناپارامتریک” یعنی چی؟ یعنی برای استفاده ازش لازم نیست دادههات حتماً توزیع نرمال داشته باشن. این یه مزیت گندهس، چون خیلی از دادههای واقعی (مخصوصاً اونایی که از نظرسنجی یا رتبهبندی میان) نرمال نیستن.
کاری که فریدمن انجام میده اینه که به جای اینکه با خود امتیازها سر و کله بزنه، هر فرد یا هر بلوک (مثلاً هر کاربر در مثال UI) رو به عنوان یه “واحد” در نظر میگیره و بعد امتیازاتی که اون فرد به گروههای مختلف داده رو رتبهبندی میکنه. مثلاً اگه کاربر X به UI1 امتیاز 8، به UI2 امتیاز 6 و به UI3 امتیاز 9 داده، فریدمن برای این کاربر، UI3 رو رتبه 1، UI1 رو رتبه 2 و UI2 رو رتبه 3 در نظر میگیره. بعدش میانگین این رتبهها رو برای هر گروه (هر UI) محاسبه میکنه و میبینه آیا این میانگین رتبهها تفاوت معنیداری با هم دارن یا نه.
کی و چرا باید از فریدمن استفاده کنی؟ حل مشکلی اساسی!

استفاده از آزمون فریدمن وقتی حسابی به دردت میخوره که با موقعیتهای زیر مواجه باشی:
- دادههای وابسته یا تکراری: یعنی هر آزمودنی (یا هر “بلوک”) در تمام شرایط یا گروهها اندازهگیری شده باشه. مثل همون مثال UI که هر کاربر هر سه UI رو امتحان کرده. این میتونه شامل اندازهگیریهای قبل و بعد از یه مداخله، یا مقایسه عملکرد یک شخص در شرایط مختلف باشه.
- سه گروه یا بیشتر: اگه فقط دو گروه داری، آزمون ویلکاکسون (Wilcoxon Signed-Rank Test) گزینه بهتریه. فریدمن برای حداقل سه گروهه.
- دادههای ترتیبی یا فاصلهای غیرنرمال: اگه دادههاتون از جنس رتبهبندی هستن (مثلاً “خیلی خوب”، “خوب”، “متوسط” که به اعداد تبدیل شدن) یا دادههای کمی هستن ولی توزیع نرمال ندارن، فریدمن نجاتت میده. اگه دادههات نرمال باشن، آنالیز واریانس با اندازهگیریهای تکراری (Repeated Measures ANOVA) گزینه پارامتریک و قویتریه.
مشکل اساسی که فریدمن حل میکنه اینه که اجازه نمیده تفاوتهای فردی (همون که یه نفر ذاتاً سختگیره و یکی دست و دلباز) نتایج رو تحتالشعاع قرار بدن. با رتبهبندی دادهها درون هر فرد، اثر این تفاوتهای پایه از بین میره و ما فقط روی تفاوتهایی تمرکز میکنیم که به خاطر خود شرایط (UIها) به وجود اومدن. این یه نکته طلایی تو تحلیلهای آماری هست.
پیشفرضهای مهمی که باید حواست بهشون باشه
مثل هر آزمون آماری دیگهای، فریدمن هم یه سری پیشفرض داره که اگه رعایت نشن، نتایجش ممکنه معتبر نباشن. نگران نباش، اینا خیلی پیچیده نیستن:
- یک متغیر وابسته (Outcome Variable): باید دادههای ترتیبی یا فاصلهای داشته باشی.
- یک متغیر مستقل (Independent Variable): این متغیر باید سه یا چند سطح (گروه) مرتبط یا تکراری داشته باشه.
- اندازهگیریهای مرتبط: هر بلوک (آزمودنی) باید در هر سطح متغیر مستقل اندازهگیری شده باشه.
- نمونهبرداری تصادفی: آزمودنیها باید به صورت تصادفی از جامعه انتخاب شده باشن.
- عدم وجود outliers (دادههای پرت) شدید: گرچه فریدمن نسبت به outliers مقاومتر از آزمونهای پارامتریکه، اما outliers خیلی شدید باز هم میتونن روی رتبهبندیها اثر بذارن و نتایج رو خراب کنن. یه برسی دقیق از دادهها همیشه لازمه.
چطور آزمون فریدمن رو اجرا کنیم؟ قدم به قدم
اجرای فریدمن سخته؟ ابداً! بیا یه مثال عملی رو با هم قدم به قدم پیش ببریم.
فرض کن میخوایم سه متد آموزشی (A, B, C) رو با هم مقایسه کنیم. ۱۰ دانشآموز رو انتخاب میکنیم و هر کدوم رو با هر سه متد آموزش میدیم و بعد یه آزمون ازشون میگیریم و نمرهشون رو ثبت میکنیم.
گام 1: جمعآوری و رتبهبندی دادهها
اول دادههای خام رو داریم:
| دانشآموز | متد A (نمره) | متد B (نمره) | متد C (نمره) |
|---|---|---|---|
| 1 | 70 | 75 | 80 |
| 2 | 65 | 70 | 60 |
| 3 | 80 | 85 | 75 |
| … | … | … | … |
حالا برای هر دانشآموز، نمرههای سه متد رو رتبهبندی میکنیم (کوچکترین نمره رتبه 1، بعدی 2 و الی آخر). اگه نمرات مساوی باشن، میانگین رتبهها رو بهشون اختصاص میدیم.
| دانشآموز | متد A (رتبه) | متد B (رتبه) | متد C (رتبه) |
|---|---|---|---|
| 1 | 1 | 2 | 3 |
| 2 | 2 | 3 | 1 |
| 3 | 2 | 3 | 1 |
| … | … | … | … |
در نهایت، برای هر متد (گروه)، مجموع رتبهها رو حساب میکنیم (مثلاً برای متد A: 1+2+2+… = مجموع رتبههای A).
گام 2: محاسبه آماره آزمون (Chi-Squared)
فرمول آماره فریدمن (معمولاً با χ² نمایش داده میشه) یه کمی طولانی به نظر میاد، ولی نگران نباش، نرمافزارها برات انجامش میدن. اصل قضیه اینه که این آماره میزان انحراف مجموع رتبههای هر گروه رو از اون چیزی که انتظار داریم (اگه هیچ تفاوتی بین گروهها نباشه) اندازه میگیره.
اگه تو پایتون با `scipy.stats.friedmanranktest` یا تو R با `friedman.test()` کار کنی، همهاش با یک خط کد حل میشه. این نرمافزارها خودشون برات رتبهبندی و محاسبه آماره رو انجام میدن و در نهایت یه مقدار p-value بهت میدن.
گام 3: تفسیر نتایج (p-value، فرشته نجاتت!)
بعد از اجرای آزمون، مهمترین چیزی که باید بهش نگاه کنی p-value هست.
- اگه p-value < 0.05 بود (یا هر سطح معنیداری که خودت تعیین کردی): مبارکه! این یعنی حداقل بین دو تا از گروهها (متدها) یه تفاوت معنیدار آماری وجود داره. یعنی نمیتونیم بگیم همه گروهها مثل هم عمل کردن.
- اگه p-value > 0.05 بود: متاسفانه (یا خوشبختانه!) این یعنی هیچ شواهد معنیداری برای وجود تفاوت بین گروهها پیدا نکردیم. به عبارت دیگه، به نظر میاد همه گروهها عملکرد مشابهی داشتن.
حالا اگه p-value معنیدار شد، سوال بعدی اینه که “خب، کدوم گروهها با هم فرق دارن؟”. فریدمن فقط میگه “فرق هست”، نه “کجا فرق هست”. برای پیدا کردن این “کجا”، باید از آزمونهای تعقیبی (Post-Hoc Tests) استفاده کنی. آزمونهایی مثل Nemenyi یا Conover-Iman برای فریدمن مناسبن و بهت میگن که دقیقاً کدوم جفت از گروهها با هم تفاوت معنیداری دارن. فراموش نکن که برای این آزمونهای تعقیبی، باید اصلاحات لازم برای مقایسههای چندگانه رو اعمال کنی (مثل Bonferroni) تا خطای نوع اول (false positive) رو کنترل کنی. این بخش خودش یه دنیای جداس!
فریدمن در برابر بقیه: جدول مقایسه
شاید با خودت بگی خب چه فرقی با آزمونهای دیگه داره؟ این جدول بهت کمک میکنه تا جایگاه فریدمن رو بهتر بفهمی:
| ویژگی | آزمون فریدمن |
|---|---|
| نوع داده | ترتیبی یا فاصلهای غیرنرمال |
| تعداد گروهها | سه یا بیشتر |
| وابستگی گروهها | وابسته (Repeated Measures) |
| پیشفرض توزیع | ناپارامتریک (بدون پیشفرض نرمالیتی) |
| آنالوگ پارامتریک | Repeated Measures ANOVA |
در واقع فریدمن مثل یه برادر کوچیک و ناپارامتریک Repeated Measures ANOVA هست. اگه شرایط ANOVA رو نداری، فریدمن بهترین دوستته.
مزایا و محدودیتهای فریدمن: هر ابزاری قلق خودشو داره!
مزایا:
- ناپارامتریک: نیاز به پیشفرض نرمالیتی توزیع دادهها نداره که این برای خیلی از دادههای دنیای واقعی یه مزیت بزرگه.
- کاربرد برای دادههای ترتیبی: بهترین گزینه برای تحلیل دادههایی هست که ماهیت ترتیبی دارن (مثل مقیاس لیکرت).
- کنترل تفاوتهای فردی: با رتبهبندی درون بلوک، اثر واریانس ناشی از تفاوتهای فردی رو حذف میکنه، که این دقت نتایج رو بالا میبره.
- مقاوم در برابر Outliers: نسبت به دادههای پرت، کمتر تحت تاثیر قرار میگیره.
محدودیتها:
- قدرت آماری کمتر: اگه دادههات واقعاً نرمال باشن، آزمونهای پارامتریک مثل Repeated Measures ANOVA قدرت آماری بیشتری دارن و میتونن تفاوتهای کوچکتر رو هم شناسایی کنن. استفاده از فریدمن در این شرایط مثل اینه که با تفنگ آبپاش بری شکار!
- فقط تفاوت “وجود دارد”: خودش نمیگه “کجا تفاوت وجود دارد”. حتماً باید با آزمونهای تعقیبی تکمیل بشه.
- پیچیدگی تفسیر در تعداد زیاد گروهها: وقتی تعداد گروهها خیلی زیاد میشه (مثلاً 10 گروه)، تفسیر نتایج آزمونهای تعقیبی میتونه حسابی گیجکننده باشه.
کاربردهای عملی فریدمن: ببین کجاها به کارت میاد!
این آزمون توی خیلی از حوزهها کاربرد داره:
- روانشناسی و علوم اجتماعی: مقایسه نظرات افراد در مورد چندین متغیر، یا اثر چند مداخله بر روی یک گروه در زمانهای مختلف. مثلاً ارزیابی سه روش درمانی بر اضطراب یک گروه از بیماران.
- پزشکی: مقایسه اثر چند دارو یا روش درمانی مختلف روی یک گروه از بیماران. مثلاً مقایسه سطح درد بعد از سه نوع مسکن مختلف.
- بازاریابی: مقایسه ترجیحات مصرفکنندگان برای چند محصول یا برند. مثلاً چند نوع بسته بندی محصول رو به یک گروه نشون میدیم و ازشون میخوایم رتبهبندی کنن.
- مهندسی و طراحی: ارزیابی چندین پروتوتایپ یا طراحی مختلف توسط یک گروه از متخصصان. مثل همین مثال UI که اول زدیم.
- علوم ورزشی: مقایسه عملکرد ورزشکاران در شرایط تمرینی مختلف.
عیبیابی سریع (Troubleshooting): چالشهای رایج و راه حلها
مشکل 1: p-value معنیدار شد، حالا چی؟
این یعنی یه تفاوت کلی بین گروهها هست، ولی نمیدونی کدومشون با هم فرق دارن.
راه حل: باید بری سراغ آزمونهای تعقیبی (Post-Hoc Tests). رایجترینها برای فریدمن، آزمون Nemenyi (بهترین انتخاب برای مقایسههای جفتی) یا Conover-Iman هستن. این آزمونها بهت میگن که دقیقاً کدوم جفت از گروهها با هم تفاوت معنیداری دارن. حتماً تنظیمات مربوط به تصحیح خطای مقایسههای چندگانه (مثل Bonferroni یا Holm) رو هم اعمال کن تا نتایجت کاذب نباشن.
مشکل 2: p-value معنیدار نشد. یعنی چی؟
این یعنی بر اساس دادههایی که داری، شواهدی برای اثبات تفاوت معنیدار بین گروهها پیدا نکردی.
راه حل:
- اندازه نمونه: شاید نمونهات خیلی کوچیک بوده و قدرت آماری کافی برای شناسایی تفاوتهای واقعی رو نداشته.
- اثر واقعاً کوچک: ممکنه تفاوت بین گروهها اونقدر کوچیک باشه که از نظر عملی بیاهمیت باشه و آزمون هم نتونه اون رو به عنوان “معنیدار” تشخیص بده.
- مرور پیشفرضها: دوباره چک کن که همه پیشفرضها رو رعایت کردی. شاید یه جای کار اشتباهی بوده.
- گزارش صادقانه: حتی اگه معنیدار نشد، نتایج رو صادقانه گزارش کن. “عدم وجود تفاوت معنیدار” هم خودش یه نتیجه ارزشمنده!
مشکل 3: وجود نمرات مساوی (Ties) در دادهها
وقتی توی یه بلوک (مثلاً یه فرد)، چند تا از گروهها نمرات (یا رتبههای) مساوی بگیرن، بهش میگن Ties.
راه حل: بیشتر نرمافزارهای آماری (مثل R یا Python) خودشون به صورت خودکار فرمول فریدمن رو برای وجود Ties اصلاح میکنن. نگران نباش! فقط مطمئن شو که از یه تابع مناسب استفاده میکنی که این قابلیت رو داره. این اصلاح به این صورته که به جای رتبههای جداگانه، میانگین رتبهها رو به نمرات مساوی اختصاص میده. این مشکل بزرگنومایی نیست، یک تصحیح لازم است.
مشکل 4: چطور بفهمم دادههام “مرتبط” هستن؟
گاهی وقتا این مفهوم “مرتبط” یا “وابسته” بودن گروهها حسابی آدم رو گیج میکنه.
راه حل: گروههای مرتبط یعنی هر واحد آزمایشی (مثلاً یه فرد، یه شرکت، یه زمین کشاورزی) در *تمام* شرایط اندازهگیری شده باشه.
- تکرار اندازهگیری: یه فرد، قبل و بعد از مداخله، و بعد از مداخله دوم.
- بلوکهای جفت شده: مثلاً مقایسه سه روش کوددهی در ۱۰ قطعه زمین، که هر قطعه زمین هر سه روش رو دریافت کرده (فضایی یا زمانی).
- طرح آزمایش با اندازهگیریهای تکراری: هر شرکتکننده تمام شرایط آزمایشی را تجربه میکند.
اگه گروههات کاملاً مستقل از هم هستن (مثلاً سه گروه متفاوت از افراد که هر گروه فقط یکی از متدها رو دریافت کرده)، فریدمن مناسبت نیست و باید از آزمون کروسکال-والیس (Kruskal-Wallis) استفاده کنی.
حرف آخر: آزمون فریدمن، رفیق روزهای سخت!
همونطور که دیدی، آزمون فریدمن یه ابزار فوقالعاده کاربردیه، مخصوصاً وقتی دادههات از اون مدلهای “ترتیببندی شده” یا “غیرنرمال” هستن و نمیتونی از آزمونهای پارامتریک استفاده کنی. باهاش میتونی به راحتی تفاوتها رو بین سه یا چند گروه مرتبط پیدا کنی و خیالت راحت باشه که تفاوتهای فردی هم نتایج رو خراب نمیکنن. فقط حواست به پیشفرضها و البته آزمونهای تعقیبی بعدش باشه تا بتونی داستان کامل رو از دادههات بیرون بکشی. دیگه چی میخوای؟ برو با خیال راحت سراغ تحلیلهات و نذار هیچ دادهای بدون تحلیل آماری درست و حسابی بمونه!
امیدوارم این راهنما حسابی به دردت خورده باشه. اگه سوالی داشتی، یا نیاز به کمک تخصصیتر در پروژههایت، همیشه میتونی با ما در Research-Professor در تماس باشی. ما اینجا هستیم تا توی مسیر پژوهشیات همراهت باشیم.
نیاز به کمک تخصصی در پایاننامه یا مقاله داری؟
مشاوره پایاننامه
اصلاح پایاننامه