- राष्ट्रीय स्तर की अपराध दर जैसे बहुत बदलते रहने वाले indicators को सिर्फ point prediction के रूप में पेश करने पर छोटे trend differences की over-interpretation होना आसान है, इसलिए निर्णय के लिए prediction interval को साथ में देखना ज़रूरी है
- Python
statsmodelsके ARIMA(1,1,2) model से 1960~2015 की violent crime rate पर training करके 2016~2025 का prediction किया गया, और code व data GitHub पर खुले तौर पर उपलब्ध हैं - 2016~2020 के one-year-ahead prediction में standard error 20 से कम है, लेकिन कई सालों को लगातार predict करने पर error जमा होता जाता है और 2025 का 95% prediction interval 260.36~575.07 तक चौड़ा हो जाता है
- 2021 और 2022 के actual observed values Richard Rosenfeld के बढ़ते trend वाले prediction से मेल नहीं खाते, लेकिन ARIMA के prediction interval के अंदर वे अभी भी model के साथ compatible हैं
- लंबी अवधि के राष्ट्रीय crime rate predictions को local policy response में सीधे इस्तेमाल करना मुश्किल है; वास्तविक staffing और resource allocation के लिए शहर की growth के साथ service calls बढ़ने जैसी ज़्यादा specific predictions अधिक उपयोगी होती हैं
सिर्फ point prediction से crime rate trend का आकलन करना मुश्किल है
- Richard Rosenfeld ने
Criminologistमें राष्ट्रीय स्तर के crime rate prediction पर चर्चा की थी, और 2023 के अंत में प्रकाशित लेख में 2021~2025 के predictions पेश किए थे - FBI crime statistics एक साल देर से आते हैं—इस पर शिकायतें हैं—लेकिन publication timing के हिसाब से यह prediction पहले से बीत चुके सालों को भी शामिल करता है, यानी इसका स्वभाव late prediction जैसा है
- Point predictions लगभग हमेशा गलत निकलते हैं, इसलिए predicted value के आसपास का prediction interval भी साथ में देना चाहिए
- Error range देखने पर पता चलता है कि छोटे trend differences पर आधारित interpretation कितनी आसानी से हिल सकती है
ARIMA से दोहराया गया prediction experiment
- Analysis में Python के
pandas,statsmodels.tsa.arima.model.ARIMA,matplotlibइस्तेमाल किए गए - Data 1960~2019 के
UCR_1960_2019.csvऔर 2020~2022 के additional values को मिलाकर बनाया गया- Violent crime rate
VRateकोViolent / Population * 100000से calculate किया गया - Property crime rate
PRateभी इसी तरीके से calculate किया गया
- Violent crime rate
- Code और data GitHub पर हैं
- Rosenfeld के paper से comparison संभव रहे, इसके लिए 1960~2015 को training period रखकर ARIMA(1,1,2) model fit किया गया
- Rosenfeld ने लिखा कि उन्होंने violent crime rate पर ARIMA(1,0,2) fit किया, लेकिन उन्होंने data differencing करने की बात भी कही थी, इसलिए यह ARIMA(1,1,2) के बराबर है
- Rosenfeld model में inflation जैसे exogenous factors शामिल हैं, लेकिन यहाँ उन्हें शामिल नहीं किया गया
- Optimal model खोजने के लिए अलग से grid search नहीं किया गया
Model diagnostics और error बढ़ने का तरीका
- Fit किए गए model का AR(1) coefficient negative निकला, जिससे over-differencing की संभावना है
violent.test_serial_correlation('ljungbox')के आधार पर residuals में कोई significant autocorrelation नहीं है- Automatic ARIMA तरीके से बेहतर model चुना जा सकता है, लेकिन इस case में अधिकांश ARIMA models बहुत मिलते-जुलते predictions और error intervals बनाएंगे, इसकी संभावना अधिक है
- 2016~2020 को नया data जोड़ते हुए one-year-ahead prediction से compare किया जा सकता है
- इस interval का standard error 19.813228 है, यानी 20 से कम
- यह Rosenfeld द्वारा usefulness criterion के तौर पर अनुमानित 10% absolute error range के अंदर आता है
- कई साल आगे predict करने पर error accumulate होता है
- 2022 को predict करने के लिए पहले 2021 का prediction चाहिए
- 2023 के लिए 2021, 2022 और 2023 को chain की तरह predict करना पड़ता है
- Standard error आम तौर पर
sqrt(steps*se^2)की तरह बढ़ता है; structure ऐसा है जिसमें variance add होता जाता है
2016~2025 के prediction intervals और observed values
- ARIMA model के 2016~2025 prediction mean आम तौर पर 379~420 के बीच हैं, लेकिन समय के साथ prediction interval चौड़ा होता जाता है
- 2021 mean 412.99, 95% interval 374.16~451.82
- 2022 mean 420.17, 95% interval 342.16~498.18
- 2023 mean 416.91, 95% interval 303.53~530.28
- 2025 mean 417.72, 95% interval 260.36~575.07
- Rosenfeld के point predictions कुछ सालों में ARIMA mean की तुलना में actual values के ज़्यादा करीब हैं
- 2020 के observed value 398.5 के लिए Rosenfeld 394.9, और ARIMA mean 379.21 है
- 2021 के observed value 387.0 के लिए Rosenfeld 404.1, और ARIMA mean 412.99 है
- 2022 के observed value 380.7 के लिए Rosenfeld 409.3, और ARIMA mean 420.17 है
- ARIMA का point estimate MAPE held-out sample में कुछ intervals पर Rosenfeld से खराब है, लेकिन observed values ARIMA के prediction interval के अंदर आते हैं
- 2021 और 2022 के observed values दिखाते हैं कि Rosenfeld का बढ़ते trend वाला prediction पहले ही गलत साबित हो चुका है
- ARIMA prediction मूल रूप से mean-reverting होता है और कुछ steps के भीतर mean term की ओर converge करने की tendency रखता है
Latest data जोड़ने के बाद 2023~2025 predictions कम हुए
- 2021~2022 का data और जोड़ने के बाद 2023~2025 को फिर से predict किया गया
- Updated predictions पुराने long-term predictions से कम हो गए
- 2023 mean 371.98, 95% interval 333.14~410.81
- 2024 mean 380.09, 95% interval 302.08~458.11
- 2025 mean 376.40, 95% interval 263.03~489.78
- Graph में error range का आकार अधिक आसानी से समझ आता है
- Exogenous factors शामिल करने पर कई साल आगे prediction में उन exogenous factors को भी predict करना पड़ता है, और उनकी error भी साथ में reflect करनी पड़ती है
Macro crime rate prediction की policy limits
- राष्ट्रीय स्तर की violent crime rate prediction को वास्तविक policy response में सीधे इस्तेमाल करना मुश्किल है
- Pittsburgh जैसे शहर के पास national-level crime rate prediction को policy decisions में सीधे इस्तेमाल करने की कोई वजह नहीं है
- Prediction accuracy 5% या 1% तक बेहतर हो जाए, तब भी federal-level practitioner के लिए “2 साल बाद violent crime rate 10 बढ़ेगी, इसलिए 1342 और police officers support करें” जैसा response देना मुश्किल है
- Macro crime rate prediction पर यह criticism आता है कि गलत होने पर सहने लायक skin in the game नहीं होता
- Actual crime prediction applications में यह estimate ज़्यादा practical है कि शहर में housing या apartment की 1 unit जुड़ने पर annual service calls लगभग 1 बढ़ती हैं
- Growing cities के लिए इस तरह long-term staffing plan बनाना अधिक उपयुक्त है
साथ में उल्लेखित references
- Ashby, M. (2023). Forecasting crime trends to support police strategic decision making: City-level prediction की common errors की comparison करता है, और multiple-years-ahead prediction Rosenfeld के 10% usefulness criterion से कहीं ज्यादा error देने की tendency रखते हैं
- McDowall, D. (2023). Empirical Properties of Crime Rate Trends: Macro crime rate trends और criminology theory के relationship को अधिक सावधानी से handle करता है
- Rosenfeld, R. (2018). Studying crime trends: Normal science and exogenous shocks: Rosenfeld के macro crime rate trend research से जुड़ा prior work
- Yim, H. N., Riddell, J. R., & Wheeler, A. P. (2020). Is the recent increase in national homicide abnormal?: National homicide rate trend monitoring में fan chart application की समीक्षा करता है
1 टिप्पणियां
Hacker News की राय
यहाँ दो दिलचस्प बातें हैं। एक वह है जिसे लेखक ने उठाया है, और दूसरी नहीं। पहली, लेख के आखिर की तरह, predictions को आम तौर पर decision-making की ओर ले जाना चाहिए, और अगर दोनों अलग हो जाएँ तो उनकी value अस्पष्ट हो सकती है
Rosenfield शायद पुराने data पर statistical conclusions में prediction के रूप में अतिरिक्त वजन जोड़ना चाहते हैं, लेकिन वह संदिग्ध लगता है। दूसरी, यह भी साफ़ नहीं है कि error bars का मतलब क्या होना चाहिए। एक confidence interval[1] है, और दूसरा standard deviation है। यानी आप अपनी point prediction और actual result के squared difference की ही व्यावहारिक तौर पर prediction कर रहे हैं
[1] मानता हूँ कि term पूरी तरह सटीक नहीं है
यह पूरी statistics को समेटने वाली व्याख्या नहीं है, लेकिन predictions के बारे में सोचते समय उपयोगी नज़रिया है
उदाहरण के लिए, 95% confidence interval हो तो आपको true value के interval के बाहर होने पर 19:1 odds भी, और true value के interval के अंदर होने पर 1:19 odds भी समान रूप से स्वीकार करने चाहिए। यह तरीका सामान्य तौर पर भी सही है, और uncertainty पर चर्चा में अर्थ को कहीं ज़्यादा महसूस करने लायक बनाकर तुरंत लागू होने वाला criterion बना देता है। सही तरह से किया जाए तो यह आपको ऐसी uncertainty देने को मजबूर करता है जो न बहुत conservative हो, न बहुत optimistic
अगर reader को bet का कोई भी पक्ष चुनने देने का विचार आपको थोड़ा असहज कर दे, तो आप सही दिशा में हैं। जब आपको काफ़ी भरोसा हो जाए कि error bars ठीक से लगाए गए हैं और inference documented व defensible है, तो वह feeling कम हो जाती है
मूल सवाल का अतिरिक्त जवाब: 1 standard deviation error bar 68% confidence interval है, और 2 standard deviations 95% confidence interval हैं। बेशक, यह frequentist मानकर चलने पर है
[1] https://www.nobelprize.org/prizes/physics/1997/phillips/fact...
कृपया ऐसा ज़रूर करना चाहिए। मैं कई सालों तक ऐसे organization में था जिसने हज़ारों online experiments चलाए, और नए treatment के effect की तुलना करते समय error bars होने से समझना बहुत आसान हो जाता था
कुछ लोग मानते थे कि इससे judgment धुंधला हो जाता है। उदाहरण के लिए, अगर किसी नए treatment ने 1% “improvement” दिया लेकिन confidence interval -10% से 10% तक है, तो उस experiment ने यह नहीं बताया कि वह metric कैसे प्रभावित हुआ। इससे decision arbitrary लगता है, लेकिन यही point है। उस मामले में decision सचमुच arbitrary है, और confidence interval यह बताकर आपको दूसरे trade-offs देखने देता है। अगर confidence interval 0.9% से 1.1% हो, तो effect पर कहीं ज़्यादा confidence हो सकता है
बड़ी समस्या यह है कि कुछ मामलों में meaningful error bars पाना बेहद मुश्किल होता है। उदाहरण के लिए, machine learning model की हर prediction के साथ ऐसी value जोड़ने की स्थिति की कल्पना करना अच्छा होगा, लेकिन ज़्यादातर model types में इसे reasonable तरीके से हासिल करने का तरीका मुझे नहीं पता। online experiments में भी ऐसा ही है, जहाँ sufficiently independent groups पाने के लिए random assignment नहीं किया जा सकता और complex experimental design चाहिए होता है
इसी तरह, सभी important metrics के लिए histograms, यानी statistical distributions, नियमित रूप से देखने चाहिए। एक बार एक बड़े web service call में speed issue था; कई calls 50ms से कम में खत्म हो रहे थे, लेकिन बहुत सारे calls 500ms timeout पर अटक रहे थे। उसी समय speed histogram में दो साफ़ peaks दिखीं, और गहराई से देखने पर पता चला कि वे दो peaks logged-out users और logged-in users को represent करती थीं। इससे हम code के बड़े हिस्से को ignore कर सके और हाल में deploy किए गए personalization code में speed issue ढूँढ पाए, जिस पर वरना शक नहीं होता
arbitrary decisions को legitimacy देने के लिए लोग हैरान करने वाली हद तक मेहनत करते हैं। कभी-कभी यह noise को signal की तरह पेश करने वाले statistical model का रूप लेता है, और अक्सर pseudo-experts से आता है। उनके पास यह जानने की methodology और feedback loops नहीं होते कि वे क्या कर रहे हैं, लेकिन socially cultivated expertise का aura होता है, जिससे वे decision को legitimacy उधार दे सकते हैं। पहले इन्हें shamans, priests और astrologers कहा जाता था; अब इन्हें management consultants और macroeconomists कहा जाता है
मैं जो हो रहा है उसे साफ़-साफ़ बताकर literally coin toss करने को प्राथमिकता देता हूँ। हालांकि यह चमकदार पत्थरों का बड़ा ढेर हासिल करने की strategy नहीं है
कभी-कभी कोई single process होता है जो broadly similar distribution से values generate करता है। यह अच्छी स्थिति है, क्योंकि planning, inference आदि के लिए कई statistical tools इस्तेमाल किए जा सकते हैं
लेकिन असल में अक्सर दो या ज़्यादा processes mix होते हैं, और हम pretend करते हैं कि वे एक ही हैं। हर process के भीतर broadly similar distribution की values बनती हैं, लेकिन combined whole पर किया गया analysis confused हो जाता है। आप जिस fake single process को देख रहे हैं उसके main components पता हों, तो आप हमेशा competitors से आगे रहेंगे
[1]: https://two-wrongs.com/statistical-process-control-a-practit...
मैं इस विचार से पूरी तरह सहमत हूँ। इसमें जोड़ूँ तो, तारीख के अनुमान, यानी deadlines, में भी error bars होने चाहिए। आखिर तारीख भी एक prediction ही है
अगर stakeholder कोई तारीख माँगता है, तो उसे यह भी बताना चाहिए कि उसे किस तरह के error bars चाहिए। uncertainty estimate के बिना कच्ची तारीख बेअर्थ है। इसी तरह, अगर engineer किसी दूसरे stakeholder को तारीख देता है, तो उसे किसी न किसी रूप में uncertainty estimate भी साथ में शामिल करना चाहिए। यह कहने में कि X दिन से पहले खत्म होने की संभावना 90% है और यह कहने में कि 99.9% है, बहुत बड़ा फर्क है
यह लगभग एक तरफ झुका हुआ power-law distribution होता है। deadlines शायद ही कभी जल्दी पूरी होती हैं, और अगर जल्दी होती भी हैं तो आमतौर पर बहुत ज्यादा जल्दी नहीं। इसके उलट, देर होने पर वे हास्यास्पद रूप से बहुत ज्यादा late हो सकती हैं
ऐसी चीज़ के लिए confidence interval बनाना सच में मुश्किल है
error bars के बिना date estimate को गलत साबित नहीं किया जा सकता। लेकिन अगर आप कहते हैं “इस तारीख से पहले खत्म होने की संभावना 50% है,” तो हाल के ऐसे 20 estimates को देखकर लगभग 10 समय पर खत्म हुए होने चाहिए। वरना estimate calibrated नहीं है। फिर भी कम से कम यह बात पता तो चलती है। error bars नहीं होते तो यह पता नहीं चलता
uncertainty quantification data science में, खासकर machine learning में, अनदेखा किया जाने वाला पहलू है। Practitioners के पास हमेशा statistics background नहीं होता, और machine learning में आम तौर पर “पहले predict करो, सवाल बाद में” वाला रवैया रहता है, इसलिए ऐसी बारीकियाँ पीछे छूट जाती हैं
मैं हमेशा error bars माँगता हूँ
सामान्य nonlinear models में ऐसे error bars—या अधिक सामान्य रूप से error distribution—बनाना, जो uncertainty की common-sense समझ को सच में बयान करें, आदर्श स्थितियों में भी theory और computation दोनों के लिहाज़ से काफी भारी हो सकता है। Monte Carlo Dropout जैसे अच्छे practical methods हैं जिनका theoretical आधार है, लेकिन उनसे बनने वाले error bars हमेशा वही error नहीं होते जो आप चाहते हैं। MC DO model weights से जुड़ी uncertainty का estimate करता है, लेकिन उदाहरण के लिए खराब training data से पैदा uncertainty का नहीं
मैं उन methods का मजबूत समर्थक हूँ जिनमें uncertainty स्वाभाविक रूप से शामिल हो, लेकिन कई model types ऐसे हैं जो empirically बहुत useful results देते हैं, फिर भी उनके लिए useful uncertainty estimates को efficient तरीके से बनाना या interpret करना स्पष्ट नहीं है
एक अलग और अक्सर अनदेखा मुद्दा calibrated model output की अवधारणा है, और वह अपने आप में एक अलग rabbit hole है
फिर भी इन prerequisites के बिना models में लाखों लगाए जाते हैं, उन्हें लोगों को solutions के रूप में बेचा जाता है, और “अगर लोग खरीद रहे हैं तो इसलिए कि उसमें value है” कहकर आगे बढ़ जाते हैं। लोग ठगों को भी पैसे देते हैं
Walter Lewin की 8.01 lecture में measurement के बारे में कही गई ऐसी ही बात याद आती है: “uncertainty को जाने बिना measurement बेअर्थ है”
https://youtu.be/6htJHmPq0Os
prediction को भविष्य के बारे में किया गया measurement कहा जा सकता है
स्रोत: https://www.edge.org/response-detail/10459
मुझे लगा था यह weather के बारे में होगा
ECMWF ensemble model चलाता है; शायद initial conditions को थोड़ा-थोड़ा बदलकर या model parameters को किसी range में बदलकर 51 simultaneous models चलाता है। इन 51 models से काफी अच्छे confidence intervals मिल सकते हैं
हालांकि यह कम resolution वाला और कम बार run होने वाला model है। “HRES” model की spatial resolution दोगुनी है, इसलिए मेरा अनुमान है कि उसे ensemble के रूप में नहीं चलाया जाता। वजह साफ है: cost बहुत ज्यादा है
[1]: https://en.wikipedia.org/wiki/Integrated_Forecast_System#Var...
https://content.meteoblue.com/en/research-education/specific...
इस लेख में दिलचस्प उदाहरण nowcasting है। यह data आने का इंतजार करते समय वर्तमान या अतीत की prediction करने की technique है
error range न हो तो यह कमजोर science और statistics है
अगर prediction को वास्तविक uncertainty दिखानी है, तो आपको data generation process जानने की काफी privileged स्थिति में होना पड़ेगा। जहाँ संभव हो, वहाँ बहुत सारे historical data से मोटे तौर पर calibrate किया जा सकता है, लेकिन फिर भी सीमाएँ हैं
हर estimate, prediction, interpolation और extrapolation में टीम द्वारा समस्या में डाली गई assumptions को दर्शाने वाला confidence interval, prediction interval या tolerance interval होना चाहिए। यह application area पर निर्भर करता है
यह पेपर[1] याद आता है
“वैज्ञानिक परिणामों में predictability का भ्रम: विशेषज्ञ भी inferential uncertainty और outcome variability को मिला देते हैं”
परंपरागत रूप से वैज्ञानिकों ने अलग-अलग परिणामों की predictability यानी outcome variability की तुलना में, statistical estimates की precision यानी inferential uncertainty को बताने पर ज़्यादा ज़ोर दिया है। यह पेपर दिखाता है कि इससे वैज्ञानिक परिणामों के निहितार्थों को लेकर काफ़ी गलतफहमी पैदा हो सकती है। विशेष रूप से, तीन preregistered randomized experiments में प्रतिभागियों ने एक ही scientific finding को ऐसे visualizations में देखा जिनमें केवल inferential uncertainty, केवल outcome variability, या दोनों दिखाए गए थे, और फिर finding के आकार और महत्व पर जवाब दिए। medical experts, professional data scientists, और tenure-track professors की प्रतिक्रियाओं से बने नतीजे दिखाते हैं कि केवल inferential uncertainty को visualize करने का आम तरीका highly trained experts से भी treatment effect को बहुत अधिक overestimate करवा सकता है। इसके उलट, inferential uncertainty और outcome variability को साथ दिखाने से औसतन परिणामों पर अन्य subjective impressions को वैसा ही रखते हुए ज़्यादा accurate understanding मिलती है
[1] https://www.microsoft.com/en-us/research/publication/an-illu...
Predictions error bars के बिना भी उपयोगी हो सकती हैं। कभी-कभी action तय करने के लिए एक point prediction ही काफ़ी होती है
लेकिन कभी-कभी अच्छे decisions के लिए पूरी predictive distribution जानना मददगार या ज़रूरी होता है। “point prediction हमेशा गलत होती है” वाली बात continuous data के लिए सही है, लेकिन अगर आप predict कर सकें कि कोई stock 2x नहीं बल्कि 2.01x होगा, तो भी वह उपयोगी है