Bu, intihar sayım verilerinde mevsimsel etkileri test etmek için uygun bir yöntem midir?


24

ABD’deki bir devlet için intihar ölümleriyle ilgili 17 yıl (1995 - 2011) ölüm belgesi verim var. Orada, intiharlar, aylar / mevsimler, çoğu çelişkili ve literatür hakkında birçok mitoloji var. incelendiğimde, kullanılan yöntemlerden net bir anlam alamıyorum ya da sonuçlara güven duymuyorum.

Bu yüzden, veri setim dahilinde herhangi bir ayda intiharların oluşma ihtimalinin daha az mı yoksa daha az mı olacağını tespit edip edemeyeceğimi görmek için yola çıktım. Bütün analizlerim R de yapılır.

Verilerdeki toplam intihar sayısı 13.909.

Yıla en az intiharla bakarsanız, 309/365 günlerde (% 85) görülür. Yıla en çok intiharla bakarsanız, 339/365 günlerde (% 93) görülür.

Bu nedenle, her yıl intiharları olmayan adil bir gün sayısı var. Bununla birlikte, 17 yıl boyunca toplandığında, 29 Şubat da dahil olmak üzere yılın her günü intiharlar vardır (ortalama 38 iken sadece 5 olmasına rağmen).

görüntü tanımını buraya girin

Yılın her günü intihar sayısını basitçe eklemek net bir mevsimsellik anlamına gelmiyor (gözlerime).

Aylık seviyede toplanan aylık ortalama intiharlar aşağıdakiler arasındadır:

(m = 65, sd = 7.4, ila m = 72, sd = 11.1)

İlk yaklaşımım, tüm yıl boyunca aya göre ayarlanan verileri toplamak ve sıfır hipotezi için beklenen olasılıkları hesapladıktan sonra, aylara göre intihar sayımında sistematik bir değişiklik olmadığı için ki-kare testi yapmaktı. Her ayın olasılıklarını gün sayısını dikkate alarak (ve artık yıllara göre Şubat ayını ayarlayarak) hesapladım.

Ki-kare sonuçları aylara göre önemli bir değişiklik göstermedi:

# So does the sample match  expected values?
chisq.test(monthDat$suicideCounts, p=monthlyProb)
# Yes, X-squared = 12.7048, df = 11, p-value = 0.3131

Aşağıdaki resim aylık toplam sayıları göstermektedir. Yatay kırmızı çizgiler sırasıyla Şubat, 30 gün ve 31 gün için beklenen değerlerde konumlandırılmıştır. Ki-kare testi ile uyumlu olarak, hiçbir ay beklenen sayı için% 95 güven aralığının dışında değildir. görüntü tanımını buraya girin

Zaman serisi verilerini araştırmaya başlayana kadar bittiğimi sanıyordum. Pek çok insanın yaptığı gibi, stlistatistik paketindeki işlevi kullanarak parametrik olmayan mevsimsel bozunma yöntemiyle başladım .

Zaman serisi verilerini oluşturmak için toplam aylık verilerle başladım:

suicideByMonthTs <- ts(suicideByMonth$monthlySuicideCount, start=c(1995, 1), end=c(2011, 12), frequency=12) 

# Plot the monthly suicide count, note the trend, but seasonality?
plot(suicideByMonthTs, xlab="Year",
  ylab="Annual  monthly  suicides")

görüntü tanımını buraya girin

     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1995  62  47  55  74  71  70  67  69  61  76  68  68
1996  64  69  68  53  72  73  62  63  64  72  55  61
1997  71  61  64  63  60  64  67  50  48  49  59  72
1998  67  54  72  69  78  45  59  53  48  65  64  44
1999  69  64  65  58  73  83  70  73  58  75  71  58
2000  60  54  67  59  54  69  62  60  58  61  68  56
2001  67  60  54  57  51  61  67  63  55  70  54  55
2002  65  68  65  72  79  72  64  70  59  66  63  66
2003  69  50  59  67  73  77  64  66  71  68  59  69
2004  68  61  66  62  69  84  73  62  71  64  59  70
2005  67  53  76  65  77  68  65  60  68  71  60  79
2006  65  54  65  68  69  68  81  64  69  71  67  67
2007  77  63  61  78  73  69  92  68  72  61  65  77
2008  67  73  81  73  66  63  96  71  75  74  81  63
2009  80  68  76  65  82  69  74  88  80  86  78  76
2010  80  77  82  80  77  70  81  89  91  82  71  73
2011  93  64  87  75 101  89  87  78 106  84  64  71

Ve sonra stl()ayrışma gerçekleştirdi

# Seasonal decomposition
suicideByMonthFit <- stl(suicideByMonthTs, s.window="periodic")
plot(suicideByMonthFit)

görüntü tanımını buraya girin

Bu noktada endişelendim çünkü bana hem mevsimsel bir bileşen hem de bir eğilim olduğunu gösteriyor. İnternet araştırmasının ardından Rob Hyndman ve George Athanasopoulos'un talimatlarını, özellikle sezgisel bir ARIMA modelini uygulamak için "Tahmini: ilkeleri ve uygulamaları" başlıklı metinlerinde belirtilen şekilde uygulamaya karar verdim.

Kullandığım adf.test()ve kpss.test()değerlendirmek için durağanlık ve çelişkili sonuçlar elde ettim. Her ikisi de boş hipotezi reddetti (zıt hipotezi test ettiklerini belirtti).

adfResults <- adf.test(suicideByMonthTs, alternative = "stationary") # The p < .05 value 
adfResults

    Augmented Dickey-Fuller Test

data:  suicideByMonthTs
Dickey-Fuller = -4.5033, Lag order = 5, p-value = 0.01
alternative hypothesis: stationary

kpssResults <- kpss.test(suicideByMonthTs)
kpssResults

    KPSS Test for Level Stationarity

data:  suicideByMonthTs
KPSS Level = 2.9954, Truncation lag parameter = 3, p-value = 0.01

Daha sonra kitaptaki algoritmayı kullanarak hem trend hem de sezon için yapılması gereken farklılık miktarını tespit edip edemediğimi görmek için kullandım. Ben nd = 1, ns = 0 ile bitirdim.

Sonra koştum auto.arima; bu, hem “sürüklenme” tipi bir sabit ile birlikte hem trend hem de mevsimsel bir bileşeni olan bir model seçti.

# Extract the best model, it takes time as I've turned off the shortcuts (results differ with it on)
bestFit <- auto.arima(suicideByMonthTs, stepwise=FALSE, approximation=FALSE)
plot(theForecast <- forecast(bestFit, h=12))
theForecast

görüntü tanımını buraya girin

> summary(bestFit)
Series: suicideByMonthFromMonthTs 
ARIMA(0,1,1)(1,0,1)[12] with drift         

Coefficients:
          ma1    sar1     sma1   drift
      -0.9299  0.8930  -0.7728  0.0921
s.e.   0.0278  0.1123   0.1621  0.0700

sigma^2 estimated as 64.95:  log likelihood=-709.55
AIC=1429.1   AICc=1429.4   BIC=1445.67

Training set error measures:
                    ME    RMSE     MAE       MPE     MAPE     MASE       ACF1
Training set 0.2753657 8.01942 6.32144 -1.045278 9.512259 0.707026 0.03813434

Sonunda, artıklara uygunluktan baktım ve bunu doğru anlarsam, tüm değerler eşik limitleri dahilinde olduklarından, beyaz gürültü gibi davranıyorlar ve bu nedenle model oldukça makul. Ap üzerinde 0,05 değerinin üzerinde olan metinde açıklandığı gibi bir portmanteau testi yaptım, ancak parametrelerin doğru olduğundan emin değilim.

Acf(residuals(bestFit))

görüntü tanımını buraya girin

Box.test(residuals(bestFit), lag=12, fitdf=4, type="Ljung")

    Box-Ljung test

data:  residuals(bestFit)
X-squared = 7.5201, df = 8, p-value = 0.4817

Geri dönüp tekrar arima modelleme bölümünü okuduktan sonra, şimdi auto.arimatrend ve mevsim modellemeyi seçtiğini anlıyorum . Ayrıca tahmin etmenin özellikle yapmam gereken analizin özel olmadığını da biliyorum. Belirli bir ayın (veya daha genel olarak yılın zamanının) yüksek riskli ay olarak işaretlenip işaretlenmeyeceğini bilmek istiyorum. Tahmin literatüründe yer alan araçların son derece uygun olduğu, ancak belki de sorum için en iyisi olmadığı görülüyor. Herhangi ve tüm girdiler çok takdir edilmektedir.

Günlük sayıları içeren bir csv dosyasına bağlantı gönderiyorum. Dosya şöyle görünür:

head(suicideByDay)

        date year month day_of_month t count
1 1995-01-01 1995    01           01 1     2
2 1995-01-03 1995    01           03 2     1
3 1995-01-04 1995    01           04 3     3
4 1995-01-05 1995    01           05 4     2
5 1995-01-06 1995    01           06 5     3
6 1995-01-07 1995    01           07 6     2

daily_suicide_data.csv

Sayı, o gün olan intiharların sayısı. "t", tablodaki (5533) toplam gün sayısı 1 ila 1 olan sayısal bir sekanstır.

Aşağıdaki yorumları not aldım ve intihar ve mevsimlerin modellenmesi ile ilgili iki şey hakkında düşündüm. İlk olarak, soruma göre, aylar sadece sezonun değişimini belirleyen vekiller, belirli bir ayın diğerlerinden farklı olup olmadığına ilgi duymuyorum (tabii ki ilginç bir soru, ama benim belirttiğim şey bu değil. incelemek). Bu nedenle, intihar sayısının tüm ayların ilk 28 gününden hesaplanmasının anlamlı olduğunu düşünüyorum . İnsanların bu ayarlamanın gerekli olup olmadığı veya zararlı olduğu konusunda iyi bir fikir olup olmadığı hakkında ne düşündükleriyle ilgileniyorum? ayların, tüm ayların ilk 28 gününü kullanarak eşitlenmesinin . Bunu yaptığınızda, mevsimsellik eksikliğine karşı daha fazla kanıt olarak yorumladığım biraz daha kötüye gidiyor. Aşağıdaki çıktıda ilk uygunluk, gerçek gün sayılarıyla ayları kullanarak aşağıdaki cevaptan elde edilen bir reprodüksiyon olup, ardından bir veri kümesi intiharByShortMonth

> summary(seasonFit)

Call:
glm(formula = count ~ t + days_in_month + cos(2 * pi * t/12) + 
    sin(2 * pi * t/12), family = "poisson", data = suicideByMonth)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.4782  -0.7095  -0.0544   0.6471   3.2236  

Coefficients:
                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)         2.8662459  0.3382020   8.475  < 2e-16 ***
t                   0.0013711  0.0001444   9.493  < 2e-16 ***
days_in_month       0.0397990  0.0110877   3.589 0.000331 ***
cos(2 * pi * t/12) -0.0299170  0.0120295  -2.487 0.012884 *  
sin(2 * pi * t/12)  0.0026999  0.0123930   0.218 0.827541    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 302.67  on 203  degrees of freedom
Residual deviance: 190.37  on 199  degrees of freedom
AIC: 1434.9

Number of Fisher Scoring iterations: 4

> summary(shortSeasonFit)

Call:
glm(formula = shortMonthCount ~ t + cos(2 * pi * t/12) + sin(2 * 
    pi * t/12), family = "poisson", data = suicideByShortMonth)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.2414  -0.7588  -0.0710   0.7170   3.3074  

Coefficients:
                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)         4.0022084  0.0182211 219.647   <2e-16 ***
t                   0.0013738  0.0001501   9.153   <2e-16 ***
cos(2 * pi * t/12) -0.0281767  0.0124693  -2.260   0.0238 *  
sin(2 * pi * t/12)  0.0143912  0.0124712   1.154   0.2485    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 295.41  on 203  degrees of freedom
Residual deviance: 205.30  on 200  degrees of freedom
AIC: 1432

Number of Fisher Scoring iterations: 4

Daha önce baktım ikinci şey, mevsim için bir vekil olarak ay kullanma meselesi. Belki de sezonun daha iyi bir göstergesi, bir bölgenin aldığı gündüz saatlerinin sayısıdır. Bu veriler gün ışığında önemli farklılıklar gösteren bir kuzey eyaletinden geliyor. Aşağıda 2002 yılından itibaren gün ışığı grafiği.

görüntü tanımını buraya girin

Bu verileri yılın ayı yerine kullandığımda, etki hala önemli, ancak etki çok, çok küçük. Artık sapma, yukarıdaki modellerden çok daha büyük. Gündüz saatleri mevsimler için daha iyi bir modelse ve uyum o kadar iyi değilse, bu çok küçük bir mevsimsel etkinin kanıtı mıdır?

> summary(daylightFit)

Call:
glm(formula = aggregatedDailyCount ~ t + daylightMinutes, family = "poisson", 
    data = aggregatedDailyNoLeap)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.0003  -0.6684  -0.0407   0.5930   3.8269  

Coefficients:
                  Estimate Std. Error z value Pr(>|z|)    
(Intercept)      3.545e+00  4.759e-02  74.493   <2e-16 ***
t               -5.230e-05  8.216e-05  -0.637   0.5244    
daylightMinutes  1.418e-04  5.720e-05   2.479   0.0132 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 380.22  on 364  degrees of freedom
Residual deviance: 373.01  on 362  degrees of freedom
AIC: 2375

Number of Fisher Scoring iterations: 4

Kimse bununla oynamak isterse gündüz saatlerini yazıyorum. Unutmayın, bu artık bir yıl değildir, bu nedenle artık yıllar için dakikayı koymak istiyorsanız, verileri ekstrapolate edin veya alın.

state.daylight.2002.csv

[ Silinen cevaptan arsa eklemek için düzenleme (umarım rnso, silinen cevaptaki arsa soruyu bu soruya taşımama aldırış etmemi istemez.

görüntü tanımını buraya girin


1
"50 eyaletten biri" ifadesi, tüm okuyucuların Amerika Birleşik Devletleri'ne ait olduğu anlamına gelir. Açıkça görüldüğü gibi birçok uzaylı burada da gizleniyor.
Nick Cox,

1
Bu halka açık bir veri kümesinden mi geliyor? Hafta içi veya hatta günden güne verileri kullanılabilir hale getirebilir misiniz?
Elvis,

1
@Elvis - Günlük sayım verilerinin bağlantısını gönderdim. Veriler, 'kamu kaydı' olan ancak elde edilmesi için bir süreç gerektiren ölüm sertifikalarından geliyor; ancak, toplam sayım verileri yok. PS - Bağlantıyı kendim denedim ve çalıştı, ancak daha önce bu şekilde halka açık bir dropbox klasörüne göndermedim, bu yüzden bağlantının işe yarayıp yaramadığını lütfen bildirin.
svannoy

1
Verileriniz sayıldığından, varyansın ortalamayla ilişkili olmasını beklerim. Normal zaman serisi modelleri bunu hesaba katmaz (ancak, bir dönüşüm söylemeye çalışabilirsiniz , belki bir Freeman-Tukey ), ya da sayım verileri için tasarlanmış bir zaman serisi modeline bakabilirsiniz. (Bunu yapmazsanız, sayı yalnızca iki ya da öylesine bir faktöre göre
değiştiğinden

1
ytμtvar(yt)=μt

Yanıtlar:


13

Poisson regresyonundan ne haber?

Verilerinizi içeren bir veri çerçevesi, artı tay (ay cinsinden) için bir endeks ve monthdaysher aydaki gün sayısı için bir değişken oluşturdum.

T <- read.table("suicide.txt", header=TRUE)
U <- data.frame( year = as.numeric(rep(rownames(T),each=12)), 
         month = rep(colnames(T),nrow(T)), 
         t = seq(0, length = nrow(T)*ncol(T)), 
         suicides = as.vector(t(T)))
U$monthdays <- c(31,28,31,30,31,30,31,31,30,31,30,31)
U$monthdays[ !(U$year %% 4) & U$month == "Feb" ] <- 29

Yani şöyle görünüyor:

> head(U,14)
   year month  t suicides monthdays
1  1995   Jan  0       62        31
2  1995   Feb  1       47        28
3  1995   Mar  2       55        31
4  1995   Apr  3       74        30
5  1995   May  4       71        31
6  1995   Jun  5       70        30
7  1995   Jul  6       67        31
8  1995   Aug  7       69        31
9  1995   Sep  8       61        30
10 1995   Oct  9       76        31
11 1995   Nov 10       68        30
12 1995   Dec 11       68        31
13 1996   Jan 12       64        31
14 1996   Feb 13       69        29

Şimdi bir zaman efekti olan bir modeli ve bir kaç gün efekti eklediğimiz bir modelle birkaç gün efektini karşılaştıralım:

> a0 <- glm( suicides ~ t + monthdays, family="poisson", data = U )
> a1 <- glm( suicides ~ t + monthdays + month, family="poisson", data = U )

İşte "küçük" modelin özeti:

> summary(a0)

Call:
glm(formula = suicides ~ t + monthdays, family = "poisson", data = U)

Deviance Residuals:
    Min       1Q   Median       3Q      Max
-2.7163  -0.6865  -0.1161   0.6363   3.2104

Coefficients:
             Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.8060135  0.3259116   8.610  < 2e-16 ***
t           0.0013650  0.0001443   9.461  < 2e-16 ***
monthdays   0.0418509  0.0106874   3.916 9.01e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 302.67  on 203  degrees of freedom
Residual deviance: 196.64  on 201  degrees of freedom
AIC: 1437.2

Number of Fisher Scoring iterations: 4

İki değişkenin büyük ölçüde önemli marjinal etkileri olduğunu görebilirsiniz. Şimdi büyük modele bakın:

> summary(a1)

Call:
glm(formula = suicides ~ t + monthdays + month, family = "poisson",
    data = U)

Deviance Residuals:
     Min        1Q    Median        3Q       Max
-2.56164  -0.72363  -0.05581   0.58897   3.09423

Coefficients:
              Estimate Std. Error z value Pr(>|z|)
(Intercept)  1.4559200  2.1586699   0.674    0.500
t            0.0013810  0.0001446   9.550   <2e-16 ***
monthdays    0.0869293  0.0719304   1.209    0.227
monthAug    -0.0845759  0.0832327  -1.016    0.310
monthDec    -0.1094669  0.0833577  -1.313    0.189
monthFeb     0.0657800  0.1331944   0.494    0.621
monthJan    -0.0372652  0.0830087  -0.449    0.653
monthJul    -0.0125179  0.0828694  -0.151    0.880
monthJun     0.0452746  0.0414287   1.093    0.274
monthMar    -0.0638177  0.0831378  -0.768    0.443
monthMay    -0.0146418  0.0828840  -0.177    0.860
monthNov    -0.0381897  0.0422365  -0.904    0.366
monthOct    -0.0463416  0.0830329  -0.558    0.577
monthSep     0.0070567  0.0417829   0.169    0.866
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 302.67  on 203  degrees of freedom
Residual deviance: 182.72  on 190  degrees of freedom
AIC: 1445.3

Number of Fisher Scoring iterations: 4

Tabii ki, monthdayssonuç ortadan kayboluyor; sadece artık yıllar sayesinde tahmin edilebilir !! Modelde tutulması (ve artık yılların dikkate alınması), iki modeli karşılaştırmak için artık sapmaların kullanılmasına izin verir.

> anova(a0, a1, test="Chisq")
Analysis of Deviance Table

Model 1: suicides ~ t + monthdays
Model 2: suicides ~ t + monthdays + month
  Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1       201     196.65
2       190     182.72 11   13.928    0.237

marul(2πt12)günah(2πt12) :

> a2 <- glm( suicides ~ t + monthdays + cos(2*pi*t/12) + sin(2*pi*t/12),
             family="poisson", data = U )
> summary(a2)

Call:
glm(formula = suicides ~ t + monthdays + cos(2 * pi * t/12) +
    sin(2 * pi * t/12), family = "poisson", data = U)

Deviance Residuals:
    Min       1Q   Median       3Q      Max
-2.4782  -0.7095  -0.0544   0.6471   3.2236

Coefficients:
                     Estimate Std. Error z value Pr(>|z|)
(Intercept)         2.8676170  0.3381954   8.479  < 2e-16 ***
t                   0.0013711  0.0001444   9.493  < 2e-16 ***
monthdays           0.0397990  0.0110877   3.589 0.000331 ***
cos(2 * pi * t/12) -0.0245589  0.0122658  -2.002 0.045261 *
sin(2 * pi * t/12)  0.0172967  0.0121591   1.423 0.154874
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 302.67  on 203  degrees of freedom
Residual deviance: 190.37  on 199  degrees of freedom
AIC: 1434.9

Number of Fisher Scoring iterations: 4

Şimdi null modeliyle karşılaştırın:

> anova(a0, a2, test="Chisq")
Analysis of Deviance Table

Model 1: suicides ~ t + monthdays
Model 2: suicides ~ t + monthdays + cos(2 * pi * t/12) + sin(2 * pi *
    t/12)
  Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1       201     196.65                   
2       199     190.38  2   6.2698   0.0435 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Yani, bunun kesin bir mevsimsel etki olduğuna işaret ettiği söylenebilir ...


2
p

2
Tamamen katılıyorum, ima ettiğim şey buydu :) "Bunun bir etki olduğunu kesinlikle söyleyebiliriz"; ve "Bir etkisi yok" değil! İlginç olduğunu düşündüğüm şey bu trigonometrik dönüşüm, çok doğal ve neden daha sık görülmediğini anlamıyorum. Ama bu sadece bir başlangıç ​​noktasıdır ... önyükleme, modeli değerlendirme ... yapılacak çok şey.
Elvis

1
Sorun yok! O zaman benim hatam şakayı tespit edemedi. :)
usεr11852 diyor Reinstate Monic

2
+1. Poisson, Fourier ile tanışıyor .... Ben ekonomistlerin ve bazılarının gösterge değişkenlerini vurguladığını düşünüyorum çünkü mevsimsellik keskin olabilir, ancak trigonometrik yaklaşım çoğu zaman yardımcı oluyor.
Nick Cox

2
Aslında. Yazdığım bir öğretici yorum erişilebilir stata-journal.com/article.html?article=st0116
Nick Cox

8

Ki-kare testi sorunuza bir ön görüş olarak iyi bir yaklaşımdır.

stlAyrışma, mevsime mevcudiyeti için test etmek için bir araç olarak yanıltıcı olabilir. Bu prosedür, girdi olarak beyaz bir gürültü (yapısız rastgele sinyal) iletilse bile kararlı bir mevsimsel desen döndürmeyi başarır. Örneğin deneyin:

plot(stl(ts(rnorm(144), frequency=12), s.window="periodic"))

Otomatik bir ARIMA model seçim prosedürü tarafından seçilen siparişlere bakmak, aynı zamanda bir mevsimsel ARIMA modeli her zaman mevsimsellik içermediğinden biraz risklidir (ayrıntılar için bu tartışmaya bakın) ). Bu durumda, seçilen model mevsimsel döngüler oluşturur ve @RichardHardy'nin yorumu makul olmakla birlikte, intiharların mevsimsel bir model tarafından yönlendirildiğine karar vermek için daha fazla fikir edinmek gerekir.

Aşağıda, gönderdiğiniz aylık serilerin analizine dayanarak bazı sonuçları özetledik. Bu, temel yapısal zaman serisi modeline göre tahmin edilen mevsimsel bileşendir:

require(stsm)
m <- stsm.model(model = "llm+seas", y = x)
fit <- stsmFit(m, stsm.method = "maxlik.td.scoring")
plot(tsSmooth(fit)$states[,2], ylab = "")
mtext(text = "seasonal component", side = 3, adj = 0, font = 2)

tahmini mevsimsel bileşen

Benzer bir bileşen, TRAMO-SEATS yazılımı kullanılarak varsayılan seçeneklerle çıkarıldı. Tahmini mevsimsel kalıbın zaman içinde sabit olmadığını ve bu nedenle, örneklem dönemi boyunca aylar boyunca intihar sayısında tekrarlayan bir paternin hipotezini desteklemediğini görebiliriz. X-13ARIMA-SEATS yazılımını varsayılan seçeneklerle çalıştırarak mevsimsellik için birleşik test tanımlanabilir mevsimsellik olmadığı sonucuna vardı.

Düzenle (bkz. tanımlanabilir mevsimsellik tanımı için bu cevaba ve aşağıdaki yorumuma bakın ).

Verilerinizin niteliği göz önüne alındığında, zaman serisi yöntemlerine dayanan bu analizi, sayma verileri için bir model (örn. Poisson modeli) ve bu modelde mevsimsellik açısından önemini test etmek için tamamlayıcı olacaktır. Sorunuza sayım verisi etiketi eklemek, bu yönde daha fazla görünüme ve olası yanıtlara neden olabilir.


Teşekkürler @javiacalle, önerdiğiniz yöntemleri araştırıyor olacağım. Yayınladığınız grafiğin sonucunu sorabilir miyim? Bu, “yıllarca ilerledikçe genliğin arttığı,“ tahmini mevsimsel modelin zaman içinde istikrarlı olmadığını görebiliriz ”veya Her tepe noktasının şeklinin biraz farklı olduğu konusunda daha ince gözlemler içermeli? Ben eskiyi varsayıyorum, ama varsayımların bizi nereye götürdüğünü biliyoruz.
svannoy

2
χ2

@svannoy Cevabımda kullanılan zaman serisi yöntemlerine dayanan ana sonuç, örnek verilerde açık bir mevsimsel patern olmadığıdır. Mevsimsel döngüler, verilerin değişkenliğinin bir kısmını açıklamasına rağmen, mevsimsel bir model, yüksek derecede düzensiz dalgalanmalarla gizlendiğinden güvenilir bir şekilde tanımlanamamaktadır (bu, soruda gösterilen ARIMA modelinin kazanım fonksiyonunu göstererek de kontrol edilebilir) .
javlacalle

@oDDsKooL Ayrıca haftanın günü ki-kare testini yaptım, cumartesi / pazar beklentilerin biraz altında ve pazartesi / salı hemen yukarıda ...
svannoy

6

Benim yorumumda da belirtildiği gibi, bu çok ilginç bir sorundur. Mevsimselliği tespit etmek yalnızca istatistiksel bir uygulama değildir. Makul bir yaklaşım, aşağıdaki gibi teoriye ve uzmanlara danışmak olacaktır:

  • Psikolog
  • psikiyatrist
  • Sosyolog

Bu problem üzerine "neden" i anlamak veri analizini desteklemek için mevsimsellik olacağını. Verilere bakıldığında, gözlemlenmemiş bileşenler modeli (UCM) olarak adlandırılan ve bir durum alanı yöntemi olan mükemmel bir ayrıştırma yöntemi kullandım . Ayrıca Koopman'ın bu erişilebilir makalesine bakın . Benim yaklaşımım @ Javlacalle'a benzer. Yalnızca zaman serisi verilerini ayrıştırmak için bir araç sağlamakla kalmaz, aynı zamanda anlamlılık testi ile mevsimsellik varlığını veya yokluğunu objektif olarak değerlendirir. Önemlilik testinin büyük hayranı değilim .Deneysel olmayan veriler üzerinde yapmanın , ancak bir zaman serisi verilerinde mevsimsellik varlığı / yokluğu konusundaki hipotezinizi test edebileceğiniz başka bir prosedür bilmiyorum.

Pek çoğu görmezden geliyor ama birisinin anlamak isteyeceği çok önemli bir özellik mevsimsellik türü:

  1. Stokastik - rasgele değişir ve tahmin etmesi zor
  2. Deterministik - değişmez, kusursuz bir şekilde tahmin edilebilir. Model oluşturmak için kukla veya trigonometri (sin / cos vb.) Kullanabilirsiniz.

Sizinki gibi uzun bir zaman serisi verisi için, mevsimsellik zamanla değişmiş olabilir. Yine UCM, bu stokastik / deterministik mevsimselliği tespit edebilen tek yaklaşım. UCM, sorununuzu aşağıdaki "bileşenlere" ayırabilir:

Time Series Data = level + Slope + Seasonality + Cycle + Causal + Error(Noise).

Ayrıca seviye, eğim, çevrimin deterministik veya stokastik olup olmadığını da test edebilirsiniz. Lütfen bunu not allevel + slope = trend . Aşağıda, UCM kullanarak verilerinizle ilgili bazı analizler sunuyorum. SAS'ı analiz yapmak için kullandım.

data input;
format date mmddyy10.;
date = intnx( 'month', '1jan1995'd, _n_-1 );
      input deaths@@;
datalines;
62    47  55  74  71  70  67  69  61  76  68  68
64    69  68  53  72  73  62  63  64  72  55  61
71    61  64  63  60  64  67  50  48  49  59  72
67    54  72  69  78  45  59  53  48  65  64  44
69    64  65  58  73  83  70  73  58  75  71  58
60    54  67  59  54  69  62  60  58  61  68  56
67    60  54  57  51  61  67  63  55  70  54  55
65    68  65  72  79  72  64  70  59  66  63  66
69    50  59  67  73  77  64  66  71  68  59  69
68    61  66  62  69  84  73  62  71  64  59  70
67    53  76  65  77  68  65  60  68  71  60  79
65    54  65  68  69  68  81  64  69  71  67  67
77    63  61  78  73  69  92  68  72  61  65  77
67    73  81  73  66  63  96  71  75  74  81  63
80    68  76  65  82  69  74  88  80  86  78  76
80    77  82  80  77  70  81  89  91  82  71  73
93    64  87  75  101 89  87  78  106 84  64  71
;
run;

ods graphics on;
 proc ucm data = input plots=all; 
      id date interval = month; 
      model deaths ; 
      irregular ; 
      level checkbreak; 
      season length = 12 type=trig var = 0 noest; * Note I have used trigonometry to model seasonality;
   run;

   ods graphics off;

Farklı bileşenleri ve kombinasyonları göz önünde bulunduran birkaç yinelemeden sonra, aşağıdaki formun temelli bir modeliyle bitirdim:

Stokastik seviye + deterministik mevsimsellik + bazı aykırı değerler vardır ve verilerin başka tespit edilebilir özellikleri yoktur.

görüntü tanımını buraya girin

Aşağıda çeşitli bileşenlerin önemlilik analizi bulunmaktadır. Ben kullanılan Bildirimi trigonometri (sin / PROC ÜKM içinde mevsimsellik açıklamada Cos) @Elvis ve @ Nick Cox benzer. Ayrıca UCM'de boş kodlama kullanabilirsiniz ve test ettiğimde her ikisi de benzer sonuçlar verdi. Bu belgelere bakınSAS'ta mevsimselliği modellemenin iki yolu arasındaki farklar için .

görüntü tanımını buraya girin

Yukarıda gösterildiği gibi aykırı değerlere sahipsiniz: 2009'da iki darbe ve bir seviye kayma (2009'dan sonra ekonomi / konut balonu bir rol oynadı mı ??? Kullanmanın iyi bir özelliği Proc UCM, mükemmel grafiksel çıktı sağlamasıdır.

Aşağıda mevsimsellik ve birleşik bir eğilim ve mevsimsellik arsa bulunmaktadır. Kalan her şey gürültü .

görüntü tanımını buraya girin görüntü tanımını buraya girin

Eğer p değerleri ve anlamlılık testi kullanmak istiyorsanız daha önemli bir tanı testi , kalıntılarınızın kalıpsız ve normal olarak dağıtılmış olup olmadığını ve UCM kullanılarak yukarıdaki modelde tatmin edici olup olmadığını ve aşağıda acf / pacf gibi kalıntı tanı alanlarında gösterildiği gibi olup olmadığını kontrol etmektir. ve diğerleri.

görüntü tanımını buraya girin

Sonuç : UCM kullanılarak yapılan veri analizine ve anlamlılık testine dayanarak, verilerin mevsimsellik gösterdiği görülmektedir ve Mayıs / Haziran / Temmuz aylarında yaz aylarında yüksek ve ölümlerin Aralık ve Şubat aylarında en düşük olduğu görülmektedir.

Ek Hususlar : Lütfen mevsimsel değişikliklerin büyüklüğünün pratik önemini de göz önünde bulundurun. Karşılıklı argümanları reddetmek için, hipotezinizi daha da tamamlamak ve doğrulamak için lütfen alan uzmanlarına danışın.

Bu sorunu çözmek için tek yaklaşımın bu olduğunu söylemem hiçbir şekilde. UCM'yi sevdiğim özellik, tüm zaman serisi özelliklerini açıkça modellemenize izin vermesi ve son derece görsel olması.


Bu cevap ve ilginç yorumlarınız için teşekkürler. UCM'yi tanımıyorum, çok ilginç görünüyor, bunu aklımızda tutmaya çalışacağım ...
Elvis

(+1) İlginç analiz. Belirleyici bir mevsimsellik modelinin varlığının sonucuna varmak konusunda hala temkinli olurum ancak sonuçlarınız bu olasılığı daha yakından incelemek istiyor. Canova ve Hansen, mevsimsel stabilite testi faydalı olabilir, örneğin burada açıklanmıştır .
javlacalle

Yazılımda mevcut olan uygulamayı kullanarak gretl(mevsimsel mankenler ve birinci dereceden bir gecikme olan bir modelde varsayılan seçenekler), kararlılık boşluğu Eylül ve Ekim için% 5 önem seviyesinde reddedilir. Mevsimsel trigonometrik döngüleri kullanarak, temel mevsimsel frekans döngüsünün kararlılığıπ/6@Elvis'in vardığı sonuçları kabul eden% 5 seviyesinde reddedilmez.
javlacalle

1
+1. Çok ilginç ve faydalı yorumlar. Psikolog, psikiyatrist, sosyolog listenize meteorolog / klimatolog eklenebilir. Böyle bir kişi, yağış ve sıcaklık döngülerinde iki yılın aynı olmadığını eklemek ister. Kışın daha kısa bir depresyonda kabaca tahmin ederdim (kısa gün uzunlukları vs.), ancak bazı veriler verilen bir tahmin için çok fazla.
Nick Cox

Teşekkürler forecaster, bu benim öğrenmeme çok şey katıyor. Halk sağlığı derecesine sahip bir psikoloğum. Epidemiyologu listenize eklerdim. Daha önce de bahsettiğim gibi, mevsimsel eğilimler ve intihar hakkında birçok mitoloji (teori) var. Kişi herhangi bir yönde mevsimsel eğilimler için güçlü argümanlar yapabilir, bu yüzden (dis) onaylamak için nicel analizlere ihtiyacımız var. Halk sağlığı açısından bakıldığında, kesin bir süreksizlik varsa, müdahaleleri hedefleyebiliriz. Bunu bu verilerde göremiyorum. İntihar teorisi perspektifinden bakıldığında, küçük eğilimlerin bile doğrulanması teorinin gelişmesine yol açabilir.
svannoy

1

İlk görsel tahmin için, aşağıdaki grafik kullanılabilir. Aylık verileri loess eğrisi ve% 95 güven aralığı ile çizerek, Haziran ayında zirveye vuran yılın ortasında bir artış olduğu görülüyor. Diğer faktörler verilerin geniş dağılım göstermesine neden olabilir, bu nedenle bu ham veri kaybı grafiğindeki mevsimsel eğilim maskelenebilir. Veri noktaları sarsıldı.

görüntü tanımını buraya girin

Düzenleme: Aşağıdaki grafik önceki aydaki sayıdan dava sayısındaki değişiklik için loess eğrisi ve güven aralığı göstermektedir:

görüntü tanımını buraya girin

Bu aynı zamanda yılın ilk yarısındaki aylarda dava sayısının yılın ikinci yarısında düştüğü sırada artmaya devam ettiğini göstermektedir. Bu da yılın ortasında bir zirve noktası olduğunu gösteriyor. Bununla birlikte, güven aralıkları geniştir ve 0'a kadar gider, yani yıl boyunca hiçbir istatistiksel anlamlılık olmadığını gösteren değişiklik olmaz.

Bir ayın sayısının farkı önceki 3 ayın değerleriyle karşılaştırılabilir:

görüntü tanımını buraya girin

Bu, Mayıs ayındaki sayılardaki net bir artışı ve Ekim'deki düşüşü göstermektedir.


(-1) Bu sorunun zaten üç tane yüksek kaliteli cevabı var. Yanıtınız da yok değil yayınlanmıştır soruya cevap - Bir olarak yayınlamayın olabilir comment . Bu verilerin nasıl analiz edilebileceği konusunda cevap vermediniz.
Tim

Daha önce buraya yorum yazmıştım (aşağıya bakın), ancak yorumlarda şekil yazamam.
rnso

Buradaki yazıyı anlamış olsam da, @ rnso'nun potansiyel mevsimsel bileşeni güzel bir şekilde gösteren ve orijinal yazımın bir parçası olması gereken güzel bir grafik gösterdiğini söyleyeceğim.
svannoy

Bunu anlıyorum ve katılıyorum, ama yine de bu bir cevap değil, yorum ya da iyileştirmedir. @ rnso size böyle bir komployu araştırabileceğinizi veya ekleyebileceğiniz bir yorumda bulunabilirdi.
Tim

@Glen_b, @ Tim: Yararlı olabilecek ve bir yorumda bulunamayacağım başka bir komplo daha ekledim.
rnso
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.