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')

Düzgün çizgi içeren zaman serisi grafiği

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.

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir