क्या यह सुसाइड काउंट डेटा में मौसमी प्रभावों के परीक्षण के लिए एक उपयुक्त तरीका है?


24

मेरे पास अमेरिका में एक राज्य के लिए आत्महत्या से संबंधित मौतों के 17 साल (1995 से 2011) के आंकड़े हैं, आत्महत्याओं और महीनों / मौसमों के बारे में बहुत सारी पौराणिक कथाएँ हैं, जिनमें से बहुत विरोधाभासी हैं, और साहित्य की '' ve की समीक्षा की गई, मुझे परिणामों में उपयोग किए गए तरीकों या आत्मविश्वास की स्पष्ट समझ नहीं है।

इसलिए मैं यह देखने के लिए तैयार हूं कि क्या मैं यह निर्धारित कर सकता हूं कि मेरे डेटा सेट के भीतर किसी भी महीने आत्महत्याएं कम या ज्यादा हो सकती हैं। मेरे सभी विश्लेषण आर में किए गए हैं।

आंकड़ों में आत्महत्याओं की कुल संख्या 13,909 है।

यदि आप वर्ष को सबसे कम आत्महत्याओं के साथ देखते हैं, तो वे 309/365 दिन (85%) पर होते हैं। यदि आप वर्ष को सबसे अधिक आत्महत्याओं के साथ देखते हैं, तो वे 339/365 दिन (93%) पर होते हैं।

इसलिए प्रत्येक वर्ष आत्महत्या के बिना उचित संख्या में दिन होते हैं। हालांकि, जब सभी 17 वर्षों में एकत्रित होते हैं, तो वर्ष के प्रत्येक दिन आत्महत्याएं होती हैं, जिसमें 29 फरवरी भी शामिल है (हालांकि औसत 38 होने पर केवल 5)।

यहाँ छवि विवरण दर्ज करें

बस साल के प्रत्येक दिन आत्महत्या की संख्या को जोड़ने से एक स्पष्ट मौसमीता (मेरी आँख के लिए) का संकेत नहीं मिलता है।

मासिक स्तर पर एकत्र, प्रति माह औसत आत्महत्या से लेकर:

(m = 65, sd = 7.4, से m = 72, sd = 11.1)

मेरा पहला दृष्टिकोण सभी वर्षों के लिए महीने द्वारा निर्धारित डेटा को एकत्र करना और शून्य परिकल्पना के लिए अपेक्षित संभावनाओं की गणना करने के बाद एक ची-स्क्वायर परीक्षण करना था, कि महीने तक आत्महत्या की गिनती में कोई व्यवस्थित विचरण नहीं था। मैंने प्रत्येक महीने की संभावनाओं की गणना करते हुए दिनों की संख्या को ध्यान में रखा (और लीप वर्ष के लिए फरवरी को समायोजित करना)।

ची-वर्ग के परिणामों ने महीने तक कोई महत्वपूर्ण भिन्नता नहीं होने का संकेत दिया:

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

नीचे दी गई छवि प्रति माह कुल संख्या को इंगित करती है। क्षैतिज लाल रेखाएं क्रमशः फरवरी, 30 दिन के महीनों और 31 दिन के महीनों के लिए अपेक्षित मूल्यों पर तैनात हैं। ची-स्क्वायर परीक्षण के अनुरूप, कोई भी महीना अपेक्षित गणना के लिए 95% विश्वास अंतराल के बाहर नहीं है। यहाँ छवि विवरण दर्ज करें

मुझे लगा कि जब तक मैं समय श्रृंखला डेटा की जांच शुरू नहीं करता, तब तक मैं किया गया था। जैसा कि मैं कल्पना करता हूं कि बहुत से लोग करते हैं, मैंने stlआँकड़े पैकेज में फ़ंक्शन का उपयोग करके गैर-पैरामीट्रिक मौसमी अपघटन विधि के साथ शुरू किया था ।

समय श्रृंखला डेटा बनाने के लिए, मैंने एकत्रित मासिक डेटा के साथ शुरुआत की:

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

यहाँ छवि विवरण दर्ज करें

     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

और फिर stl()अपघटन किया

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

यहाँ छवि विवरण दर्ज करें

इस बिंदु पर मैं चिंतित हो गया क्योंकि यह मुझे प्रतीत होता है कि एक मौसमी घटक और एक प्रवृत्ति दोनों है। बहुत इंटरनेट शोध के बाद मैंने रोब हंडमैन और जॉर्ज अथानसोपोलोस के निर्देशों का पालन करने का फैसला किया, जैसा कि उनके ऑन-लाइन पाठ "पूर्वानुमान: सिद्धांतों और अभ्यास" में विशेष रूप से मौसमी एआरआईएमए मॉडल को लागू करने के लिए दिया गया था।

मैं प्रयोग किया जाता है adf.test()और kpss.test()के लिए आकलन करने के लिए stationarity और परस्पर विरोधी परिणाम मिला है। उन दोनों ने शून्य परिकल्पना को खारिज कर दिया (यह देखते हुए कि वे विपरीत परिकल्पना का परीक्षण करते हैं)।

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

मैंने तब पुस्तक में एल्गोरिथ्म का उपयोग किया, यह देखने के लिए कि क्या मैं भिन्नता की मात्रा निर्धारित कर सकता हूं जो कि प्रवृत्ति और मौसम दोनों के लिए आवश्यक है। मैं nd = 1, ns = 0 के साथ समाप्त हुआ।

मैं फिर भागा auto.arima, जिसने एक ऐसा मॉडल चुना, जिसमें एक प्रवृत्ति और एक मौसमी घटक दोनों के साथ एक "बहाव" प्रकार स्थिर था।

# 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

यहाँ छवि विवरण दर्ज करें

> 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

अंत में, मैंने फिट से अवशेषों को देखा और अगर मैं इसे सही ढंग से समझता हूं, क्योंकि सभी मूल्य सीमा सीमा के भीतर हैं, तो वे सफेद शोर की तरह व्यवहार कर रहे हैं और इस तरह मॉडल काफी उचित है। मैंने पाठ में वर्णित के रूप में एक पोर्टमेन्ट्यू परीक्षण चलाया , जिसका मूल्य 0.05 से ऊपर था, लेकिन मुझे यकीन नहीं है कि मेरे पास पैरामीटर सही हैं।

Acf(residuals(bestFit))

यहाँ छवि विवरण दर्ज करें

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

वापस जाने और फिर से अरिमा मॉडलिंग पर अध्याय पढ़ने के बाद, मुझे अब एहसास हुआ कि auto.arimaमॉडल की प्रवृत्ति और सीज़न का चुनाव किया। और मैं यह भी महसूस कर रहा हूं कि पूर्वानुमान विशेष रूप से विश्लेषण नहीं है जो मुझे शायद करना चाहिए। मैं जानना चाहता हूं कि क्या एक विशिष्ट महीने (या आमतौर पर वर्ष का अधिक समय) को उच्च जोखिम वाले महीने के रूप में चिह्नित किया जाना चाहिए। ऐसा लगता है कि पूर्वानुमान साहित्य में उपकरण अत्यधिक प्रासंगिक हैं, लेकिन शायद मेरे प्रश्न के लिए सबसे अच्छा नहीं है। किसी भी और सभी इनपुट की बहुत सराहना की जाती है।

मैं एक सीएसवी फ़ाइल के लिए एक लिंक पोस्ट कर रहा हूं जिसमें दैनिक गणना शामिल है। फ़ाइल इस प्रकार है:

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

गणना उस दिन हुई आत्महत्याओं की संख्या है। "t" तालिका (5533) में 1 से लेकर कुल दिनों तक का एक संख्यात्मक अनुक्रम है।

मैंने नीचे टिप्पणियों पर ध्यान दिया है और मॉडलिंग आत्महत्या और मौसम से संबंधित दो चीजों के बारे में सोचा है। सबसे पहले, मेरे सवाल के संबंध में, महीने बस मौसम के बदलाव को चिह्नित करने के लिए समीप हैं, मुझे नहीं पता है कि किसी महीने में मैं दूसरों से अलग हूं या नहीं (यह बेशक एक दिलचस्प सवाल है, लेकिन यह वह नहीं है जो मैंने निर्धारित किया है) छान - बीन करना)। इसलिए, मुझे लगता है कि यह सभी महीनों के पहले 28 दिनों का उपयोग करके महीनों को बराबर करने के लिए समझ में आता है । जब आप ऐसा करते हैं, तो आप थोड़ा खराब हो जाते हैं, जिसे मैं सीज़न की कमी की ओर अधिक सबूत के रूप में व्याख्या कर रहा हूं। नीचे दिए गए आउटपुट में, पहला फिट महीनों की सही संख्या के साथ महीनों का उपयोग करके नीचे दिए गए उत्तर से एक प्रजनन है, इसके बाद आत्महत्या सेट होती है जिसमें सभी महीनों के पहले 28 दिनों से आत्महत्या की गणना की गई थी। मुझे इस बात में दिलचस्पी है कि लोग क्या समायोजन के बारे में सोचते हैं या नहीं यह समायोजन एक अच्छा विचार है, आवश्यक नहीं है, या हानिकारक है?

> 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

दूसरी चीज जो मैंने अधिक देखी है वह है सीजन के लिए महीने को प्रॉक्सी के रूप में उपयोग करने का मुद्दा। शायद मौसम का एक बेहतर संकेतक दिन के उजाले घंटे की संख्या है जो एक क्षेत्र प्राप्त करता है। यह डेटा एक उत्तरी राज्य से आता है जिसमें दिन के उजाले में पर्याप्त भिन्नता है। नीचे वर्ष 2002 से दिन के उजाले का एक ग्राफ है।

यहाँ छवि विवरण दर्ज करें

जब मैं वर्ष के महीने के बजाय इस डेटा का उपयोग करता हूं, तो प्रभाव अभी भी महत्वपूर्ण है, लेकिन प्रभाव बहुत छोटा है। अवशिष्ट अवतरण उपरोक्त मॉडलों की तुलना में बहुत बड़ा है। यदि डेलाइट घंटे सीजन के लिए एक बेहतर मॉडल है, और फिट उतना अच्छा नहीं है, तो क्या यह बहुत कम मौसमी प्रभाव का सबूत है?

> 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

मैं दिन के उजाले घंटे पोस्ट कर रहा हूँ अगर कोई भी इस के साथ खेलना चाहता है। ध्यान दें, यह एक लीप वर्ष नहीं है, इसलिए यदि आप लीप वर्षों के लिए मिनटों में डालना चाहते हैं, तो डेटा को एक्सट्रपलेशन या पुनर्प्राप्त करें।

state.daylight.2002.csv

[ हटाए गए उत्तर से कथानक जोड़ने के लिए संपादित करें (उम्मीद है कि rnso मुझे इस प्रश्न के हटाए गए उत्तर में कथानक को आगे बढ़ाने में कोई आपत्ति नहीं है। svannoy, यदि आप यह सब नहीं चाहते हैं, तो आप इसे वापस कर सकते हैं)

यहाँ छवि विवरण दर्ज करें


1
शब्द "हमारे 50 राज्यों में से एक" का अर्थ है कि सभी पाठक संयुक्त राज्य के हैं। यहाँ पर भी बहुत से एलियंस दुबके हुए हैं।
निक कॉक्स

1
क्या यह एक सार्वजनिक डेटासेट से है? क्या आप सप्ताह-दर-सप्ताह या दिन-ब-दिन डेटा उपलब्ध करा सकते हैं?
एल्विस

1
@Elvis - मैंने दैनिक गणना डेटा के लिए एक लिंक पोस्ट किया है। डेटा मृत्यु प्रमाणपत्रों से आता है जो 'सार्वजनिक रिकॉर्ड' हैं, लेकिन प्राप्त करने के लिए एक प्रक्रिया की आवश्यकता होती है; हालाँकि, कुल गणना डेटा नहीं है। PS - मैंने स्वयं लिंक की कोशिश की और यह काम कर गया, लेकिन मैंने इस तरह से एक सार्वजनिक ड्रॉपबॉक्स फ़ोल्डर में पोस्ट नहीं किया है, इसलिए कृपया मुझे बताएं कि लिंक काम नहीं करता है।
svannoy

1
चूँकि आपका डेटा मायने रखता है, मैं उम्मीद करता हूँ कि विचरण माध्य से संबंधित होगा। सामान्य समय श्रृंखला के मॉडल उस के लिए जिम्मेदार नहीं होते हैं (हालांकि, आप एक परिवर्तन कहने की कोशिश कर सकते हैं , शायद एक फ्रीमैन-तुकी , कहते हैं), या आप एक समय श्रृंखला मॉडल को देख सकते हैं जो गिनती डेटा के लिए डिज़ाइन किया गया है। (यदि आप ऐसा नहीं करते हैं तो यह बहुत बड़ी समस्या नहीं हो सकती है क्योंकि संख्या केवल दो या दो से अधिक के कारक होती है।)
Glen_b -Reinstate Monica

1
फोरकास्टर - क्योंकि गणना में डेटा प्रसार मतलब से संबंधित है। उदाहरण के लिए एक काउंट पर विचार करें , जिसका अर्थ है । उस स्थिति में, , इसलिए जैसे-जैसे माध्य बढ़ता है, विचरण (और इसलिए प्रसार) भी बढ़ता जाता है। [वास्तव में, अक्सर आप पाते हैं कि लगभग किसी भी डेटा के लिए किसी न किसी तरह से मतलब है कि इसका ऊपरी या निचला हिस्सा है; इसके स्पष्ट कारण हैं कि उन मामलों में इसकी उम्मीद क्यों की जा सकती है।]yटीμटीवार(yटी)=μटी
Glen_b -Reinstate Monica

जवाबों:


13

एक पोइसन प्रतिगमन के बारे में क्या?

मैंने आपका डेटा युक्त डेटा फ़्रेम बनाया, साथ tही समय (महीनों में) के लिए एक सूचकांक और monthdaysप्रत्येक महीने में दिनों की संख्या के लिए एक चर ।

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

तो यह इस तरह दिखता है:

> 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

अब एक मॉडल की समय प्रभाव और एक मॉडल के साथ कई दिनों के प्रभाव की तुलना करते हैं जिसमें हम एक महीने का प्रभाव जोड़ते हैं:

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

यहाँ "छोटे" मॉडल का सारांश है:

> 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

आप देख सकते हैं कि दो चर काफी हद तक महत्वपूर्ण सीमांत प्रभाव रखते हैं। अब बड़े मॉडल को देखें:

> 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

खैर, निश्चित रूप से monthdaysप्रभाव गायब हो जाता है; यह केवल छलांग वर्षों के लिए धन्यवाद अनुमान लगाया जा सकता है !! इसे मॉडल में रखना (और खाता लीप वर्ष में लेना) दो मॉडल की तुलना करने के लिए अवशिष्ट अवमूल्यन का उपयोग करने की अनुमति देता है।

> 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

तो, नहीं (महत्वपूर्ण) महीने प्रभाव? लेकिन एक मौसमी प्रभाव के बारे में क्या? हम दो वैरिएबल और का उपयोग करके मौसमी को पकड़ने का प्रयास कर सकते हैं :क्योंकि(2πटी12)पाप(2πटी12)

> 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

अब इसे अशक्त मॉडल से तुलना करें:

> 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

तो, एक निश्चित रूप से कह सकते हैं कि यह एक मौसमी प्रभाव का सुझाव देता है ...


2
मुझे पोइसन रिग्रेशन का विचार बहुत पसंद है (+1), मुझे लगता है कि यह बहुत अधिक शिक्षित मॉडलिंग धारणा है लेकिन 0.044 के मूल्य के आधार पर " निश्चित रूप से " कहा जाता है ? मैं शायद चीजों को बूटस्ट्रैप करूंगा अगर कुछ भी हो तो सबसे पहले अगर मेरे पास ऐसापी
वेल्यू हो

2
मैं पूरी तरह से सहमत हूं, यही मैंने निहित किया :) "एक निश्चित रूप से कह सकता है कि यह एक प्रभाव का सुझाव देता है"; और "कोई प्रभाव नहीं है"! मुझे लगता है कि यह दिलचस्प है कि यह त्रिकोणमितीय परिवर्तन है, यह बहुत स्वाभाविक है और मुझे समझ नहीं आता कि यह अधिक बार क्यों नहीं देखा जाता है। लेकिन यह केवल एक प्रारंभिक बिंदु है ... बूटस्ट्रैपिंग, मॉडल का आकलन ... बहुत कुछ करना।
एल्विस

1
समस्या नहीं! मेरा बुरा तब, मैं मजाक का पता लगाने में असमर्थ था। :)
us Monr11852 का कहना है कि 10

2
+1। पॉइज़न फूरियर से मिलता है .... मुझे लगता है कि अर्थशास्त्री और कुछ अन्य संकेतक चर पर जोर देते हैं क्योंकि मौसमी स्पाइक हो सकती है, लेकिन त्रिकोणमितीय दृष्टिकोण अक्सर मदद करता है।
निक कॉक्स

2
वास्तव में। मेरे द्वारा लिखा गया एक ट्यूटोरियल रिव्यू stata-journal.com/article.html?article=st0116
Nick Cox

8

आपके प्रश्न के लिए प्रारंभिक दृष्टिकोण के रूप में ची-स्क्वायर टेस्ट एक अच्छा तरीका है।

stlअपघटन मौसम की उपस्थिति के लिए परीक्षण करने के लिए एक उपकरण के रूप भ्रामक हो सकता है। यह प्रक्रिया एक स्थिर मौसमी पैटर्न को वापस करने का प्रबंधन करती है, भले ही एक सफेद शोर (बिना संरचना के यादृच्छिक संकेत) इनपुट के रूप में पारित हो। उदाहरण के लिए प्रयास करें:

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

स्वचालित ARIMA मॉडल चयन प्रक्रिया द्वारा चुने गए आदेशों को देखना भी थोड़ा जोखिम भरा है क्योंकि मौसमी ARIMA मॉडल में हमेशा सीज़निटी शामिल नहीं होती है (विवरण के लिए इस चर्चा को देखें )। इस मामले में, चुना गया मॉडल मौसमी चक्र उत्पन्न करता है और @RichardHardy द्वारा टिप्पणी उचित है, हालांकि, यह निष्कर्ष निकालने के लिए एक और अंतर्दृष्टि की आवश्यकता है कि आत्महत्या एक मौसमी पैटर्न द्वारा संचालित होती है।

नीचे, मैं आपके द्वारा पोस्ट की गई मासिक श्रृंखला के विश्लेषण के आधार पर कुछ परिणामों को संक्षेप में प्रस्तुत करता हूं। यह मूल संरचनात्मक समय श्रृंखला मॉडल पर अनुमानित मौसमी घटक है:

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)

अनुमानित मौसमी घटक

एक समान घटक डिफ़ॉल्ट विकल्पों के साथ सॉफ्टवेयर TRAMO-SEATS का उपयोग करके निकाला गया था। हम देख सकते हैं कि अनुमानित मौसमी पैटर्न पूरे समय स्थिर नहीं है और इसलिए, नमूना अवधि के दौरान महीनों में आत्महत्याओं की संख्या में एक आवर्तक पैटर्न की परिकल्पना का समर्थन नहीं करता है। सॉफ़्टवेयर X-13ARIMA-SEATS को डिफ़ॉल्ट विकल्पों के साथ चलाना, सीज़निटी के लिए संयुक्त परीक्षण ने निष्कर्ष निकाला कि पहचान योग्य सीज़निटी मौजूद नहीं है।

संपादित करें ( यह उत्तर देखें और पहचान योग्य सीज़न की परिभाषा के लिए नीचे मेरी टिप्पणी )।

आपके डेटा की प्रकृति को देखते हुए, यह गणना डेटा के लिए एक मॉडल के साथ समय श्रृंखला के तरीकों के आधार पर इस विश्लेषण को पूरक करने के लायक होगा (उदाहरण के लिए पॉइसन मॉडल) और उस मॉडल में मौसमी के महत्व के लिए परीक्षण करें। अपने प्रश्न में टैग गणना-डेटा जोड़ने से इस दिशा में अधिक विचार और संभावित उत्तर मिल सकते हैं।


धन्यवाद @javiacalle, मैं आपके द्वारा सुझाए गए तरीकों की जाँच करूँगा। क्या मैं आपके द्वारा पोस्ट किए गए ग्राफ़ के अपने निष्कर्ष के बारे में पूछ सकता हूं, क्या यह तथ्य है कि आयाम वर्षों की प्रगति के रूप में बढ़ता है जो आपकी टिप्पणी का आधार है, "हम देख सकते हैं कि अनुमानित मौसमी पैटर्न पूरे समय स्थिर नहीं है", या ऐसा करता है अधिक सूक्ष्म अवलोकन शामिल करें कि प्रत्येक चोटी का आकार थोड़ा अलग है? मैं पूर्व मान रहा हूं, लेकिन हम जानते हैं कि धारणाएं हमें कहां ले जाती हैं।
svannoy

2
मासिक मौसम के अलावा एक दिन के मौसम के बारे में पूछ सकते हैं। वास्तव में मुझे आश्चर्य नहीं होगा यदि सप्ताह के कुछ दिन कम या ज्यादा आत्महत्या के हों। A परीक्षण आपको सेकंड में उत्तर देना चाहिए। χ2
oDDsKooL

@svannoy मेरे उत्तर में प्रयुक्त समय श्रृंखला विधियों के आधार पर मुख्य निष्कर्ष यह है कि नमूना डेटा में एक स्पष्ट मौसमी पैटर्न नहीं है। मौसमी चक्र डेटा की परिवर्तनशीलता का हिस्सा होने के बावजूद, एक मौसमी पैटर्न को मज़बूती से नहीं पहचाना जा सकता है क्योंकि यह अनियमित उतार-चढ़ाव के उच्च स्तर से अस्पष्ट है (यह प्रश्न में दिखाए गए अंतिम एलआईएमए मॉडल के लाभ फ़ंक्शन को प्रदर्शित करता है) ।
javlacalle

@oDDsKooL मैंने सप्ताह के दिन ची-स्क्वायर परीक्षण भी किया है, शनिवार / रविवार अपेक्षाओं से थोड़ा नीचे हैं और सोमवार / मंगलवार बस ऊपर हैं ....
svannoy

6

जैसा कि मेरी टिप्पणी में कहा गया है, यह एक बहुत ही दिलचस्प समस्या है। मौसमी का पता लगाना अकेले एक सांख्यिकीय अभ्यास नहीं है। एक उचित दृष्टिकोण सिद्धांत और विशेषज्ञों से परामर्श करना होगा:

  • मनोविज्ञानी
  • मनोचिकित्सक
  • समाजशास्त्री

"क्यों" समझने के लिए इस समस्या पर डेटा विश्लेषण के पूरक के लिए मौसम होगा। डेटा पर आते हुए, मैंने एक उत्कृष्ट अपघटन विधि का उपयोग किया, जिसे अनबॉस्स्ड कंपोनेंट्स मॉडल (यूसीएम) कहा जाता है, जो राज्य अंतरिक्ष विधि का एक रूप है। कोपमैन द्वारा यह बहुत ही सुलभ लेख भी देखें । मेरा दृष्टिकोण @Javlacalle के समान है। यह न केवल समय श्रृंखला डेटा को विघटित करने के लिए एक उपकरण प्रदान करता है, बल्कि उद्देश्यपूर्ण परीक्षण के माध्यम से मौसमी की उपस्थिति या अनुपस्थिति का निष्पक्ष मूल्यांकन करता है। मैं गैर-प्रायोगिक डेटा पर महत्व परीक्षण का एक बड़ा प्रशंसक नहीं हूं, लेकिन मुझे किसी अन्य प्रक्रिया के बारे में नहीं पता है कि आप एक समय श्रृंखला डेटा पर मौसमी की उपस्थिति / अनुपस्थिति पर अपनी परिकल्पना का परीक्षण करने में सक्षम होंगे।

कई लोग अनदेखी करते हैं लेकिन एक बहुत ही महत्वपूर्ण विशेषता जिसे कोई समझना चाहता है वह है मौसमी का प्रकार:

  1. स्टोचैस्टिक - भविष्यवाणी करने के लिए यादृच्छिक और कठिन परिवर्तन
  2. नियतात्मक - पूरी तरह से अनुमान लगाने योग्य नहीं बदलता है। आप मॉडल के लिए डमी या त्रिकोणमिति (पाप / कोस आदि) का उपयोग कर सकते हैं

आपके जैसे लम्बे समय की श्रृंखला के आंकड़ों के लिए, यह संभव है कि समय के साथ मौसमी बदलाव आया हो। फिर से यूसीएम एकमात्र दृष्टिकोण है जो मुझे पता है कि इन स्टोचस्टिक / निर्धारक मौसमी का पता लगा सकता है। यूसीएम आपकी समस्या को "घटक" के रूप में निम्न में से मिटा सकता है:

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

आप यह भी जांच सकते हैं कि स्तर, ढलान, चक्र निर्धारक या स्टोचस्टिक है या नहीं। कृपया ध्यान दें level + slope = trend। नीचे मैं यूसीएम का उपयोग करके आपके डेटा पर कुछ विश्लेषण प्रस्तुत करता हूं। मैंने विश्लेषण करने के लिए एसएएस का उपयोग किया।

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;

विभिन्न घटकों और संयोजनों पर विचार करने के बाद कई पुनरावृत्तियों के बाद, मैंने निम्नलिखित फॉर्म के एक पारदर्शक मॉडल के साथ समाप्त किया:

एक स्टोकेस्टिक स्तर + निर्धारक सीज़निटी + कुछ आउटलेयर हैं और डेटा में कोई अन्य पता लगाने योग्य विशेषताएं नहीं हैं।

यहाँ छवि विवरण दर्ज करें

नीचे विभिन्न घटकों का महत्व विश्लेषण है। ध्यान दें कि मैंने @Elvis और @Nick कॉक्स के समान त्रिकोणमिति (PROC UCM में सीज़निटी स्टेटमेंट में पाप / कॉस है) का उपयोग किया है। आप UCM में डमी कोडिंग का भी उपयोग कर सकते हैं और जब मैंने परीक्षण किया तो दोनों ने समान परिणाम दिए। एसएएस में मॉडल के दो तरीकों के बीच अंतर के लिए इस दस्तावेज को देखें ।

यहाँ छवि विवरण दर्ज करें

जैसा कि ऊपर दिखाया गया है कि आपके पास आउटलेयर हैं: 2009 में दो दालों और एक स्तर की शिफ्ट (क्या अर्थव्यवस्था / हाउसिंग बबल 2009 के बाद एक भूमिका निभाते हैं ??) जिसे आगे गहन गोता विश्लेषण द्वारा समझाया जा सकता है। उपयोग करने की एक अच्छी विशेषता Proc UCMयह है कि यह उत्कृष्ट चित्रमय आउटपुट प्रदान करता है।

नीचे मौसमी और एक संयुक्त प्रवृत्ति और मौसमी साजिश है। जो कुछ बचा है वह शोर है

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

एक और महत्वपूर्ण नैदानिक ​​परीक्षण यदि आप पी मूल्यों और महत्व परीक्षण का उपयोग करना चाहते हैं, तो यह जांच लें कि क्या आपके अवशेष पैटर्न-कम हैं और सामान्य रूप से वितरित किए गए हैं जो कि यूसीएम का उपयोग करके उपरोक्त मॉडल में संतुष्ट हैं और जैसा कि नीचे दिए गए अवशिष्ट नैदानिक ​​भूखंडों जैसे एसी / पीएसीएफ में दिखाया गया है। और दूसरे।

यहाँ छवि विवरण दर्ज करें

निष्कर्ष : UCM का उपयोग कर डेटा विश्लेषण और महत्व परीक्षण के आधार पर डेटा में मौसमीता दिखाई देती है और हम मई / जून / जुलाई के गर्मियों के महीनों में और दिसंबर और फरवरी के सर्दियों के महीनों में सबसे अधिक मौतें देखते हैं।

अतिरिक्त विचार : कृपया मौसमी भिन्नता के परिमाण के व्यावहारिक महत्व पर भी विचार करें। प्रतिपक्षीय तर्कों को नकारने के लिए कृपया अपनी परिकल्पना को आगे बढ़ाने और मान्य करने के लिए डोमेन विशेषज्ञों से परामर्श करें।

मैं बिना किसी मतलब के कह रहा हूं कि इस समस्या को हल करने का यही एकमात्र तरीका है। यूसीएम के बारे में मुझे जो सुविधा पसंद है, वह यह है कि यह आपको हर समय श्रृंखला सुविधाओं को स्पष्ट रूप से मॉडल करने की अनुमति देता है और साथ ही अत्यधिक दृश्य भी है।


इस उत्तर के लिए और दिलचस्प टिप्पणियों के लिए धन्यवाद। मुझे यूसीएम का पता नहीं है, यह बहुत दिलचस्प लगता है, मैं इसे ध्यान में रखने की कोशिश करूंगा ...
एल्विस

(+1) दिलचस्प विश्लेषण। मैं अभी भी एक महत्वपूर्ण निर्धारक मौसमी पैटर्न की उपस्थिति के बारे में सतर्क हूं लेकिन आपके परिणाम इस संभावना को करीब से देखते हैं। मौसमी स्थिरता के लिए कैनोवा और हेन्सन परीक्षण मददगार हो सकता है, यह यहाँ उदाहरण के लिए वर्णित है
javlacalle

gretlπ/6

1
+1। कई रोचक और उपयोगी टिप्पणियां। मनोवैज्ञानिक की अपनी सूची में, मनोचिकित्सक, समाजशास्त्री को मौसम विज्ञानी / मौसम विज्ञानी जोड़ा जा सकता है। ऐसा व्यक्ति यह जोड़ना चाहेगा कि वर्षा और तापमान चक्रों में कोई दो वर्ष समान नहीं होते हैं। मैं सर्दियों में अधिक अवसाद (कम दिन की लंबाई, आदि) पर गंभीर अनुमान लगा सकता हूं, लेकिन एक अनुमान के लिए इतना कुछ डेटा दिया गया है।
निक कॉक्स

धन्यवाद @forecaster, यह मेरे सीखने के लिए बहुत कुछ जोड़ता है। मैं एक मनोवैज्ञानिक हूँ, एक सार्वजनिक स्वास्थ्य डिग्री के साथ। मैं आपकी सूची में महामारीविद को शामिल करूँगा। जैसा कि मैंने शुरुआत में उल्लेख किया है, मौसमी रुझानों और आत्महत्या के बारे में बहुत सारी पौराणिक कथाओं (उर्फ सिद्धांत) है। किसी भी दिशा में मौसमी रुझानों के लिए मजबूत तर्क दिए जा सकते हैं, इसलिए हमें पुष्टि करने के लिए मात्रात्मक विश्लेषण की आवश्यकता है। एक सार्वजनिक स्वास्थ्य के दृष्टिकोण से, अगर हमें तीव्र असंतोष मिला तो हम हस्तक्षेपों को लक्षित कर सकते हैं। मैं इस डेटा में नहीं देख रहा हूँ। एक सिद्धांत-आत्महत्या के दृष्टिकोण से, यहां तक ​​कि छोटे रुझानों की पुष्टि भी सिद्धांत विकास को सूचित कर सकती है।
svannoy

1

प्रारंभिक दृश्य आकलन के लिए, निम्नलिखित ग्राफ का उपयोग किया जा सकता है। लोस कर्व और उसके 95% आत्मविश्वास अंतराल के साथ मासिक डेटा को प्लॉट करते हुए, ऐसा प्रतीत होता है कि जून में मध्य वर्ष की वृद्धि चरम पर है। अन्य कारकों के कारण डेटा का व्यापक वितरण हो सकता है, इसलिए मौसमी प्रवृत्ति इस कच्चे डेटा loess साजिश में हो सकती है। डेटा पॉइंट्स में गड़बड़ी की गई है।

यहाँ छवि विवरण दर्ज करें

संपादित करें: पिछले महीने में संख्या से मामलों की संख्या में बदलाव के लिए निम्न कथानक में घटता वक्र और आत्मविश्वास अंतराल दिखाई देता है:

यहाँ छवि विवरण दर्ज करें

इससे यह भी पता चलता है कि साल के पहले छमाही में महीनों के दौरान, मामलों की संख्या बढ़ती रहती है, जबकि वे वर्ष की दूसरी छमाही में गिर रहे हैं। यह मध्य वर्ष में एक शिखर का सुझाव भी देता है। हालाँकि, विश्वास अंतराल विस्तृत है और पूरे वर्ष में 0 यानी किसी भी तरह का बदलाव नहीं होता है, जो सांख्यिकीय महत्व की कमी को दर्शाता है।

एक महीने की संख्या के अंतर की तुलना पिछले 3 महीनों के मूल्यों की औसत से की जा सकती है:

यहाँ छवि विवरण दर्ज करें

यह मई में संख्या में स्पष्ट वृद्धि और अक्टूबर में गिरावट दर्शाता है।


(-1) इस प्रश्न के पहले से ही तीन उच्च गुणवत्ता वाले उत्तर हैं। आपका उत्तर भी पोस्ट किए गए प्रश्न का उत्तर नहीं देता है - आप इसे टिप्पणी के रूप में पोस्ट कर सकते हैं । आप इस डेटा का विश्लेषण कैसे किया जा सकता है इसका जवाब नहीं देते हैं।
टिम

मैंने पहले यहाँ टिप्पणी पोस्ट की थी (प्रश्न के नीचे देखें), लेकिन मैं टिप्पणियों में आंकड़ा पोस्ट नहीं कर सकता।
rnso

यद्यपि मैं यहां संपादकीय को समझता हूं, मैं कहूंगा कि @rnso ने एक अच्छा ग्राफ प्रदान किया है जो संभावित मौसमी घटक को अच्छी तरह से दिखाता है और मेरे मूल पद का एक हिस्सा होना चाहिए था।
svannoy

मैं इसे समझता हूं और सहमत हूं, लेकिन फिर भी यह कोई जवाब नहीं है, बल्कि एक टिप्पणी या सुधार है। @rnso आपको टिप्पणी के माध्यम से सुझाव दे सकता है कि आप ऐसे प्लाट को देख सकते हैं या उसमें शामिल हो सकते हैं।
टिम

@Glen_b, @ टिम: मैंने एक और प्लॉट जोड़ा है जो उपयोगी हो सकता है और जिसे मैं एक टिप्पणी में नहीं डाल सकता।
rnso
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.