در این مقاله قصد دارم به آموزش آزمون من کندال در R بپردازم. تا انتهای این مقاله همراه کیارا آکادمی باشید تا آموزش نرم افزار R را به صورت کاربردی دریافت نمایید.
نحوه انجام تست Mann-Kendall در R
آزمون Mann-Kendall برای تعیین وجود یا عدم وجود روند در داده های سری زمانی استفاده می شود. این یک آزمون ناپارامتریک است، به این معنی که هیچ فرض اساسی در مورد نرمال بودن داده ها وجود ندارد.
فرضیه های آزمون به شرح زیر است:
- H0: هیچ روندی در داده ها وجود ندارد.
- H1: یک روند در داده ها وجود دارد. (این می تواند یک روند مثبت یا منفی باشد)
اگر مقدار p آزمون کمتر از سطح معنیداری باشد (انتخابهای رایج 0.10، 0.05 و 0.01) است، شواهد آماری معنیداری وجود دارد که روندی در دادههای سری زمانی وجود دارد. این آموزش نحوه انجام تست روند Mann-Kendall را در R توضیح می دهد.
مثال آزمون من کندال در R
برای انجام تست روند Mann-Kendall در R، از تابع () MannKendall از کتابخانه کندال استفاده می کنیم که از نحو زیر استفاده می کند:
MannKendall(x) |
تحلیل کد بالا:
- x = بردار داده، اغلب یک سری زمانی
برای نشان دادن نحوه انجام آزمایش، از مجموعه داده داخلی PrecipGL از کتابخانه کندال استفاده خواهیم کرد که حاوی اطلاعاتی در مورد بارندگی سالانه برای همه دریاچههای بزرگ از سالهای 1900 تا 1986 است:
#بارگذاری کتابخانه کندال و مجموعه داده PrecipGL
library(Kendall) data(PrecipGL) |
#مشاهده مجموعه داده
PrecipGL |
آموزش همبستگی پیرسون و کندال و اسپیرمن در R
برای این که ببینیم آیا روندی در داده ها وجود دارد، می توانیم آزمون روند Mann-Kendall را انجام دهیم:
#آزمون روند Mann-Kendall را انجام دهید
MannKendall(PrecipGL) |
آماره آزمون 0.265 و p-value دو طرفه مربوطه 0.00029206 است. از آنجایی که این مقدار p کمتر از 0.05 است، فرضیه صفر آزمون را رد می کنیم و نتیجه می گیریم که یک روند در داده ها وجود دارد. برای تجسم روند، میتوانیم یک نمودار سری زمانی از بارندگی سالانه به تفکیک سال ایجاد کنیم و یک خط صاف برای نشان دادن روند اضافه کنیم:
#داده های سری زمانی را رسم کنید
plot(PrecipGL) |
#یک خط صاف برای تجسم روند اضافه کنید
lines(lowess(time(PrecipGL),PrecipGL), col=’RED’) |
توجه داشته باشید که ما همچنین میتوانیم یک تست روند Mann-Kendall با تنظیم فصلی برای محاسبه هر فصلی در دادهها با استفاده از دستور SeasonalMannKendall(x) انجام دهیم:
#آزمون روند من-کندال با تنظیم فصلی را انجام دهید
SeasonalMannKendall(PrecipGL) |
آماره آزمون 0.265 و p-value دو طرفه مربوطه 0.00028797 است. یک بار دیگر این مقدار p کمتر از 0.05 است، بنابراین فرضیه صفر آزمون را رد می کنیم و نتیجه می گیریم که یک روند در داده ها وجود دارد.
مطالعه منابع بیشتر آزمون من کندال در R: