R'de mann-kendall trend testi nasıl yapılır?
Zaman serisi verilerinde trend olup olmadığını belirlemek için Mann-Kendall trend testi kullanılmaktadır. Bu parametrik olmayan bir testtir, yani verilerin normalliği hakkında hiçbir temel varsayım yapılmaz.
Test hipotezleri aşağıdaki gibidir:
H 0 (sıfır hipotezi): verilerde herhangi bir eğilim mevcut değildir.
H A (alternatif hipotez): Verilerde bir eğilim mevcuttur. (Bu olumlu ya da olumsuz bir eğilim olabilir)
Testin p değeri belirli bir anlamlılık düzeyinin altındaysa (ortak seçenekler 0,10, 0,05 ve 0,01’dir), o zaman zaman serisinden elde edilen verilerde bir eğilimin mevcut olduğuna dair istatistiksel olarak anlamlı bir kanıt vardır.
Bu eğitimde R’de Mann-Kendall eğilim testinin nasıl gerçekleştirileceği açıklanmaktadır.
Örnek: R’de Mann-Kendall trend testi
R’de bir Mann-Kendall eğilim testi gerçekleştirmek için Kendall kütüphanesindeki aşağıdaki sözdizimini kullanan MannKendall() işlevini kullanacağız:
MannKendall(x)
Altın:
- x = bir veri vektörü, çoğunlukla bir zaman serisi
Testin nasıl gerçekleştirileceğini göstermek için, 1900’den 1986’ya kadar tüm Büyük Göller için yıllık yağış bilgilerini içeren Kendall Kütüphanesi’nin yerleşik PrecipGL veri setini kullanacağız:
#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
Verilerde trend olup olmadığını görmek için Mann-Kendall trend testini yapabiliriz:
#Perform the Mann-Kendall Trend Test
MannKendall(PrecipGL)
tau = 0.265, 2-sided pvalue = 0.00029206
Test istatistiği 0,265’tir ve karşılık gelen iki kuyruklu p değeri 0,00029206’dır . Bu p değeri 0,05’ten küçük olduğundan testin sıfır hipotezini reddedeceğiz ve verilerde bir eğilimin mevcut olduğu sonucuna varacağız.
Trendi görselleştirmek için yıllık yağışların zaman çizelgesini oluşturabilir ve trendi temsil edecek düz bir çizgi ekleyebiliriz:
#Plot the time series data plot(PrecipGL) #Add a smooth line to visualize the trend lines(lowess(time(PrecipGL),PrecipGL), col='blue')
Ayrıca SeasonalMannKendall(x) komutunu kullanarak verilerdeki herhangi bir mevsimselliği hesaba katmak için mevsimsellikten arındırılmış bir Mann-Kendall trend testi de gerçekleştirebileceğimizi unutmayın:
#Perform a seasonally-adjusted Mann-Kendall Trend Test
SeasonalMannKendall(PrecipGL)
tau = 0.265, 2-sided pvalue = 0.00028797
Test istatistiği 0,265’tir ve karşılık gelen iki kuyruklu p değeri 0,00028797’dir . Bu p değeri yine 0,05’ten küçüktür, dolayısıyla testin sıfır hipotezini reddedeceğiz ve verilerde bir eğilimin mevcut olduğu sonucuna varacağız.