วิธีการทดสอบแนวโน้ม mann-kendall ใน r


การทดสอบแนวโน้ม Mann-Kendall ใช้เพื่อพิจารณาว่ามีแนวโน้มในข้อมูลอนุกรมเวลาหรือไม่ นี่คือการทดสอบแบบไม่ใช้พารามิเตอร์ ซึ่งหมายความว่าไม่มีการตั้งสมมติฐานเกี่ยวกับความปกติของข้อมูล

สมมติฐานการทดสอบมีดังนี้:

H 0 (สมมติฐานว่าง): ไม่มีแนวโน้มในข้อมูล

H A (สมมติฐานทางเลือก): มีแนวโน้มอยู่ในข้อมูล (นี่อาจเป็นแนวโน้มเชิงบวกหรือเชิงลบ)

หากค่า p ของการทดสอบต่ำกว่าระดับนัยสำคัญที่กำหนด (ตัวเลือกทั่วไปคือ 0.10, 0.05 และ 0.01) ก็มีหลักฐานที่มีนัยสำคัญทางสถิติว่ามีแนวโน้มอยู่ในข้อมูลจากอนุกรมเวลา

บทช่วยสอนนี้จะอธิบายวิธีการทดสอบแนวโน้ม Mann-Kendall ใน R

ตัวอย่าง: การทดสอบแนวโน้ม Mann-Kendall ใน R

เพื่อทำการทดสอบแนวโน้ม Mann-Kendall ใน R เราจะใช้ฟังก์ชัน MannKendall() จากไลบรารี Kendall ซึ่งใช้ไวยากรณ์ต่อไปนี้:

แมนน์เคนดัลล์(x)

ทอง:

  • x = เวกเตอร์ของข้อมูล ซึ่งมักเป็นอนุกรมเวลา

เพื่อสาธิตวิธีการทดสอบ เราจะใช้ชุดข้อมูล PrecipGL ในตัวของห้องสมุด Kendall ซึ่งมีข้อมูลปริมาณน้ำฝนรายปีสำหรับ Great Lakes ทั้งหมดตั้งแต่ปี 1900 ถึง 1986:

 #load Kendall library and PrecipGL dataset
library(Kendall)
data(PrecipGL)

#view dataset
PrecipGL

Time Series:
Start = 1900 
End = 1986 
Frequency = 1 
[1] 31.69 29.77 31.70 33.06 31.31 32.72 31.18 29.90 29.17 31.48 28.11 32.61
[13] 31.31 30.96 28.40 30.68 33.67 28.65 30.62 30.21 28.79 30.92 30.92 28.13
[25] 30.51 27.63 34.80 32.10 33.86 32.33 25.69 30.60 32.85 30.31 27.71 30.34
[37] 29.14 33.41 33.51 29.90 32.69 32.34 35.01 33.05 31.15 36.36 29.83 33.70
[49] 29.81 32.41 35.90 37.45 30.39 31.15 35.75 31.14 30.06 32.40 28.44 36.38
[61] 31.73 31.27 28.51 26.01 31.27 35.57 30.85 33.35 35.82 31.78 34.25 31.43
[73] 35.97 33.87 28.94 34.62 31.06 38.84 32.25 35.86 32.93 32.69 34.39 33.97
[85] 32.15 40.16 36.32
attr(,"title")
[1] Annual precipitation, 1900-1986, Entire Great Lakes

หากต้องการดูว่าข้อมูลมีแนวโน้มหรือไม่ เราสามารถทำการทดสอบแนวโน้ม Mann-Kendall ได้:

 #Perform the Mann-Kendall Trend Test
MannKendall(PrecipGL)

tau = 0.265, 2-sided pvalue = 0.00029206

สถิติการทดสอบคือ 0.265 และค่า p-value สองด้านที่สอดคล้องกันคือ 0.00029206 เนื่องจากค่า p นี้น้อยกว่า 0.05 เราจะปฏิเสธสมมติฐานว่างของการทดสอบและสรุปว่ามีแนวโน้มอยู่ในข้อมูล

เพื่อให้เห็นภาพแนวโน้ม เราสามารถสร้างแผนเวลาของการเร่งรัดรายปีต่อปี และเพิ่มเส้นเรียบเพื่อแสดงแนวโน้ม:

 #Plot the time series data
plot(PrecipGL)

#Add a smooth line to visualize the trend 
lines(lowess(time(PrecipGL),PrecipGL), col='blue')

แผนภูมิอนุกรมเวลาที่มีเส้นเรียบ

โปรดทราบว่าเรายังสามารถทำการทดสอบแนวโน้ม Mann-Kendall ที่ปรับตามฤดูกาลเพื่อพิจารณาถึงฤดูกาลใดๆ ในข้อมูลโดยใช้คำสั่ง SeasonalMannKendall(x) :

 #Perform a seasonally-adjusted Mann-Kendall Trend Test
SeasonalMannKendall(PrecipGL)

tau = 0.265, 2-sided pvalue = 0.00028797

สถิติการทดสอบคือ 0.265 และค่า p-value สองด้านที่สอดคล้องกันคือ 0.00028797 ขอย้ำอีกครั้งว่าค่า p นี้น้อยกว่า 0.05 ดังนั้น เราจะปฏิเสธสมมติฐานว่างของการทดสอบ และสรุปว่ามีแนวโน้มอยู่ในข้อมูล

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *