- नौकरी बदलने, बिज़नेस viability, निवेश जैसे मामलों में जहाँ input values बदल सकती हैं, वहाँ एक संख्या से ज़्यादा संभावित नतीजों की range निर्णय लेने में मददगार होती है
- Unsure Calculator
4~6 जैसी range input लेकर अनिश्चित मानों के साथ गणना करता है, और 10~15 का मतलब है कि असली मान उस range के भीतर होने पर 95% भरोसा है
- नतीजे एक single number की जगह range, probability distribution, और percentiles के रूप में आते हैं; overseas job change वाले उदाहरण में यह दिखाता है कि monthly balance
-$60~+$220 के बीच हो सकता है
- input को सरल रखने के लिए distribution type, confidence level, covariance जैसी notation को छोड़ा गया है, और अंदर की गणना Monte Carlo method से होती है, इसलिए यह धीमा है और error messages भी बहुत उपयोगी नहीं हैं
- यह statistics experts के लिए tool नहीं है, बल्कि बिज़नेस idea, समय की बचत, pandemic risk, marketing ROI जैसी नैपकिन के पीछे वाली गणनाओं के लिए बना है; complex analysis के लिए professional tools की ज़रूरत होगी
अनिश्चित संख्याओं को गणना में शामिल करना
- Unsure Calculator अनिश्चित संख्याओं को संभालने के लिए बना uncertainty calculator का शुरुआती version है
- यह statistics को इस समस्या तक सरल बनाता है: “संख्याएँ पक्की न हों तब भी उन्हीं के आधार पर inference करना है”
- रोज़मर्रा की गणनाओं में भी कई input values अनिश्चित होती हैं, इसलिए statistics expert न होने पर भी कभी-कभी uncertainty को शामिल करके गणना करनी पड़ती है
range लिखने का तरीका
- यह सिर्फ सामान्य numbers
4, 3.14, 43942 ही नहीं, बल्कि 4~6, 3.1~3.2, 40000~45000 जैसी range inputs भी support करता है
~ दोनों endpoints के बीच आने वाला tilde symbol है, और calculator keypad में भी शामिल है
- range notation का मतलब है: “सटीक value नहीं पता, लेकिन असली value इस range के अंदर होगी, इस पर 95% भरोसा है”
10~15 को “10 से 15” की तरह पढ़ा जा सकता है
- दूसरी probability distributions, अलग confidence levels, truncation, covariance जैसी notation भी संभव हैं, लेकिन समझना कठिन हो जाता है, इसलिए इन्हें शामिल नहीं किया गया
- मान लिया गया है कि जो उपयोगकर्ता ऐसे concepts से परिचित हैं, वे अधिक परिष्कृत tools का इस्तेमाल करेंगे
- लक्ष्य यह है कि बड़े user base को statistical calculation की शक्ति आसानी से मिल सके
एक संख्या से गणना करने का जाल
- अनिश्चित values मिलने पर अक्सर यह सोचकर आगे बढ़ जाना आसान होता है कि “दोनों ही पक्की नहीं हैं, इसलिए खास मायने नहीं रखतीं”
- कोई एक plausible number चुनकर गणना करने पर single answer की simplicity आकर्षित करती है, लेकिन वास्तव में संभव नतीजे सिर्फ एक नहीं हो सकते
- Unsure Calculator कई संभावित नतीजों को गणना में शामिल करके risk और upside दोनों दिखाता है
विदेश में नौकरी बदलने की financial calculation का उदाहरण
- शुरुआत 2015 में विदेश में नौकरी के मौके को लेकर परिवार पर उसके financial impact की गणना करने की स्थिति से हुई
- salary का पता अक्सर hiring process काफी आगे बढ़ने के बाद ही चलता है
- local living cost के बारे में दोस्तों और इंटरनेट से मिली जानकारी में बड़ा फर्क था
- tax rate भी किसी एक simple percentage से तय करना आसान नहीं था
- पहले conservative लगने वाले single values से गणना की गई
1500 * 0.6 - 650 - 150 - 30 - 20 = 50
- यह गणना सिर्फ एक नतीजा दिखाती है: हर महीने
+$50 बचेंगे
- range डालकर दोबारा गणना करने पर नतीजा बदल जाता है
1400~1700 * 0.55~0.65 - 600~700 - 100~200 - 30 - 20 = -60~220
- अगर हर item की असली value उसके दिए गए range के भीतर होने पर 95% भरोसा है, तो असली monthly balance भी
-$60 से +$220 की range में हो सकता है
- यह single value
+$50 से ज़्यादा उपयोगी है, क्योंकि यह पैसे खोने की संभावना भी सामने लाता है
- percentiles निर्णय लेने के लिए और ठोस जानकारी देते हैं
- अगर 10वाँ percentile
-$8 है, तो monthly balance -$8 या उससे कम होने की 10% संभावना है
- उल्टा देखें तो 90% नतीजे
-$8 से ऊपर होंगे
- हर महीने
-$33 या उससे ज़्यादा नुकसान होने के 5% risk को भी साथ में देखा जा सकता है
- यह risk स्वीकार करना है या नहीं, यह परिवार और परिस्थिति पर निर्भर करता है
- बच्चे और home mortgage न होने पर risk लेने की प्रवृत्ति अलग हो सकती है, और होने पर अलग
- अगर backup plan नहीं है, तो 10% loss possibility को अधिक सावधानी से देखना पड़ सकता है
Drake equation का उदाहरण
- लक्ष्य practical calculations है, लेकिन Drake equation से extraterrestrial civilizations की संख्या का अनुमान लगाने का उदाहरण भी दिया गया है
- यह equation galaxy में communication-capable civilizations की संख्या का अनुमान लगाने वाला astrophysics formula है
- 1961 में Frank Drake की मूल values इस तरह factors को multiply करती थीं
- galaxy में हर साल 1 तारा बनता है
- उनमें से 1/5 के पास लगभग 3 ग्रह होते हैं
- उन ग्रहों में से 100% पर life विकसित होती है
- उस life में से 100% intelligent बनती है
- उनमें से 10% communication-capable होती है
- communication-capable स्थिति 10 लाख साल तक बनी रहती है
- इन values को गुणा करने पर
60,000 आता है, यानी किसी भी समय galaxy में communication की कोशिश करने वाली civilizations की संख्या 60 हज़ार होनी चाहिए
- 1961 के बाद से हर parameter के estimates astrophysicists के बीच काफ़ी अलग-अलग रहे हैं
- नई estimates को range के रूप में डालने का उदाहरण यह है
1.5~3 x 0.9~1.0 x 0.1~0.4 x 0.1~1.0 x 0.1~1.0 x 0.1~0.2 x 304~10000
- Unsure Calculator का नतीजा दिखाता है कि संभावित civilizations की संख्या
0 से 450 के बीच हो सकती है
- probability निचली तरफ झुकी हुई है, और histogram भी नीचे की ओर ज़्यादा फैला दिखता है
- histogram में
-5 जैसी negative values भी आ सकती हैं
- यह simplicity चुनने वाले tool की एक सीमा है
- calculator अतिरिक्त knowledge के बिना यह constraint नहीं जान सकता कि civilizations की संख्या negative नहीं हो सकती
संभावित उपयोग के मामले
- बिज़नेस idea की संभावना की गणना की जा सकती है
- जब market size, market share, प्रति व्यक्ति monthly revenue, और operating cost सभी अनिश्चित हों
50000~80000 x 0.10~0.20 x 5~10 - 20000~50000
- भविष्य की income का अनुमान लगाया जा सकता है
- जब monthly income, contract period, और tax rate अनिश्चित हों
1000~1500 x 10~12 x (30~50 / 100)
- dishwasher जैसी technology से बचने वाले समय की गणना की जा सकती है
- जब प्रति सप्ताह इस्तेमाल की संख्या, हर इस्तेमाल पर बचने वाला समय, lifespan, और installation cost अनिश्चित हों
(3~5 * 5~10 * 51 * 7~15) / 60 - 10~15
- investment account के total returns का अनुमान लगाया जा सकता है
- जब interest rate और investment period अनिश्चित हों
5000 x (-2~5 / 100) x 5~10
- pandemic में मृत्यु की संभावना का मोटा अनुमान लगाया जा सकता है
- जब infection rate और fatality rate अनिश्चित हों
(10~30 / 100) * (0.1~1.0 / 100) * 100
- ऊँची इमारत की height का अनुमान लगाया जा सकता है
- जब इमारत के base तक की दूरी और top को देखने का angle अनिश्चित हो
100 x tan(70 ~ 80)
- marketing campaign के ROI का अनुमान लगाया जा सकता है
- जब views, click-through rate, conversion rate, और spend अनिश्चित हों
1000000 x (2~3 / 100) x (3~5 / 100) x (10~15)
supported functions
- keypad में सिर्फ
+, -, x, / हैं, लेकिन शुरुआती चरण में भी यह उससे ज़्यादा calculations support करता है
- example functions और operations इस प्रकार हैं
2~3 ^ 4: 2 से 3 के बीच value की 4th power
sqrt(10~12): 10 से 12 के बीच value का square root
sin(90~95): 90 degree से 95 degree के बीच value का sine
सीमाएँ और sharing का तरीका
- यह एक one-person project है, इसलिए टूट-फूट की उम्मीद रखनी चाहिए
- formula parser नाज़ुक है और error messages मददगार नहीं हैं
- calculations काफ़ी धीमी हैं
- flexibility बनाए रखने के लिए Monte Carlo method का उपयोग किया गया है
- हर input calculation पर लगभग 2.5 लाख AST-based calculations चलती हैं
- UI बहुत सरल है और देखने में खास अच्छा नहीं है
- formula share करने का एकमात्र तरीका URL सीधे बनाना है
range हमेशा normal distribution होती है
- lower number mean से 2 standard deviations नीचे होता है
- higher number mean से 2 standard deviations ऊपर होता है
- input probability distribution के लिहाज़ से इससे अधिक जटिल तरीकों का support नहीं है
- यह statistics experts के लिए tool नहीं है
- नैपकिन के पीछे वाली गणनाओं के लिए Unsure Calculator का उपयोग किया जा सकता है
- अधिक जटिल कामों के लिए free या paid statistics tools, पूरा programming environment, या statistics expert की ज़रूरत होगी
प्रोजेक्ट और updates
- अगर आप tool को बेहतर बनाने में भाग लेना चाहते हैं या command-line version पाना चाहते हैं, तो github.com/filiph/unsure का उपयोग कर सकते हैं
- 2025 update के अनुसार, यह notation और tool 5 साल से उपयोग में है और नया project शुरू करते समय workflow का एक ज़रूरी हिस्सा बन चुका है
- इसका नया notebook-style app version यहाँ देखा जा सकता है
- यह beginners के लिए कम friendly है, लेकिन power users के लिए अधिक उपयोगी है
- अगर प्रोजेक्ट में रुचि है, तो Filip Hracek को follow कर सकते हैं या mailing list subscribe कर सकते हैं
1 टिप्पणियां
Hacker News की राय
यह टूल मुझे पसंद आया। हालांकि HN की परंपरा के मुताबिक, पोस्ट के किसी एक शब्द पर अटककर लगभग—लेकिन असल में पूरी तरह—साइड-टॉपिक वाली बात करूं तो, ऐसी calculations में कम-से-कम तीन अपने ही पैर पर कुल्हाड़ी मारने वाली जगहें हैं
टूल और implementation अच्छे हैं, लेकिन मैंने statistics पहली बार उठाने वाले लोगों को एक उंगली गंवाते बहुत देखा है
90% से ज्यादा लोग 70% confidence interval तक भी नहीं पहुंचते। आप खुद test कर सकते हैं: https://blog.codinghorror.com/how-good-an-estimator-are-you/
stakeholders को task time को t_i ~ PERT(min, mode, max) के रूप में specify करने का तरीका सच में पसंद आया। क्योंकि यह उनके सोचने के तरीके जैसा है, और real world में आम asymmetric distributions को भी handle कर सकता है
संदर्भ के लिए, PERT बस beta distribution है जिसे user-friendly और intuitive तरीके से re-parameterize किया गया है: https://rpubs.com/Kraj86186/985700
$50 वाला result अच्छा था, और उस पर plus/minus range लगा दें तो आम तौर पर break-even point के आसपास लगता है। दूसरी तरफ “actual balance -$60 से +$220 की range में आने की probability 95% है” जैसा expression, जबकि हर step पर बस uncertainty का composition जोड़ा गया है, फिर भी ऐसा भ्रम पैदा करता है कि ज्यादा specific जानकारी मिल गई
अगर यह नहीं पता कि हर item सच में 95% है या नहीं, और असली minimum/maximum क्या हैं, तो आप बस और ऐसे guesses जोड़ रहे हैं जिनके गलत होने की संभावना है। इसलिए मुझे Drake equation भी ज्यादा पसंद नहीं है। हर step rough guesses का accumulation है; सवाल है कि क्या वह सच में कोई useful number बनाता है
वैसे भी, अगर आप ऐसी चीजों को consider करना चाहने के point पर पहुंच गए हैं, तो proper Bayesian statistics करनी चाहिए
“normal distribution को values force करने वाला कोई constraint factor चाहिए” वाली बात भी पता नहीं कहां से आई। जरूरत uncorrelated errors की है, वह “constraint” या “negative feedback” नहीं है
मैंने एक similar tool बनाया था
command-line के लिए fermi: https://git.nunosempere.com/NunoSempere/fermi
Android के लिए distribution calculator: https://f-droid.org/en/packages/com.nunosempere.distribution...
आपको इसके ज्यादा complex version https://www.squiggle-language.com/ में भी रुचि हो सकती है। या फिर faster लेकिन काफी ज्यादा verbose C version <https://git.nunosempere.com/personal/squiggle.c> भी है
a~bsyntax support करे तो यह एक बढ़िया detail होगी :^)शानदार। अगर लेख पसंद आया हो, तो “Dissolving the Fermi Paradox” पेपर भी दिलचस्प लग सकता है। यह आम point estimate values के बजाय वास्तव में probability density functions को multiply करने वाली बात को और गहराई से देखता है
कुछ हद तक हैरानी की बात है कि नतीजा यह निकलता है कि शायद हम सचमुच अकेले हो सकते हैं
https://arxiv.org/abs/1806.02404
मैंने एक मिलता-जुलता tool बनाया था, command-line के लिए[1], और motivation भी मिलता-जुलता है, लेकिन थोड़ा ज्यादा ambitious है[2]
यह सच में अच्छा लगता है कि ज्यादा लोग इस तरह सोच रहे हैं। variation के sources के बारे में reasoning करने की क्षमता ऐसी चीज़ नहीं है जिसमें हर कोई trained हो या जिसे हर कोई develop करे, लेकिन यह increasingly important होती जा रही है[3]
[1]: https://git.sr.ht/~kqr/precel
[2]: https://entropicthoughts.com/precel-like-excel-for-uncertain...
[3]: https://entropicthoughts.com/statistical-literacy
ASCII art histogram, या ठीक कहें तो ANSI art histogram, बढ़िया है। जल्दी से कुछ काम कर देने वाला अच्छा hack है
मैं होता तो कई chart libraries try करते-करते 5 गुना समय लगा देता और आखिर में छोड़ देता
[1] https://github.com/stefanhengl/histogram
https://www.getguesstimate.com/ इसका spreadsheet के रूप में बना version है
क्या scalar multiplication के बजाय multiplication करने का कोई तरीका है? उदाहरण के लिए अगर “तीन बार dice roll का sum” कहना हो, तो यह बात अलग रखते हुए कि यह normal distribution नहीं है, मैं चाहूंगा कि
1~6 * 3 = 1~6 + 1~6 + 1~6 = 6~15होलेकिन असल में
1~6 * 3 = 3~18हो जाता है। इससे “ऐसे 1000 tasks जिन्हें हर एक में 10~100 समय लगता है, उन्हें पूरा करने में कितना समय लगेगा?” जैसी calculations करना सचमुच मुश्किल हो जाता हैअच्छा होगा अगर output को फिर से interval या Gaussian distribution में बदल सकें
नोट: अगर आपको हैरानी हो कि histogram में negative number (-5) क्यों है, तो यह Unsure Calculator की simplicity से आने वाली unavoidable कमी है। extra knowledge के बिना calculator यह नहीं जान सकता कि negative value impossible है
Drake equation या probabilities को multiply करने वाली equations को log space में भी देखा जा सकता है। हर probability के scale पर uncertainty होती है, और final probability log probabilities के exponential values को multiply करने का result होती है। तब इस तरह की negative problem नहीं आती
100 / 4~6output में17~25देता हैशुरू में toy जैसा लगता है, लेकिन unexpectedly useful दिखता है। अगर यह normal calculator के बगल में इस्तेमाल होने वाली app के रूप में आए, तो मैं जरूर install करूंगा
ठीक-ठीक याद नहीं आता कि कब इसकी जरूरत पड़ी थी, लेकिन अगर इसे keyboard shortcut से बांध दूं, तो इसे इस्तेमाल करने के मौके खोजने लगूंगा, ऐसा काफी संभव लगता है
trigonometric functions भी हैं, इसलिए simple measurements से complex parts को reverse engineer करने में भी अच्छा हो सकता है। जैसे shape volume, edge angles, cross-sectional area वगैरह
multimodal distributions support करे तो अच्छा होगा, लेकिन जरूरी नहीं। inverse trigonometric functions भी interesting होंगे, लेकिन complex हैं और जरूरी नहीं
कुल मिलाकर, answer की range estimate करने के लिए हर बार Python खोलने से यह tool ज्यादा convenient है
feature request: अच्छा होगा अगर probability distribution specify कर सकें। उदाहरण के लिए
~normal distribution और_uniform distribution जैसा कुछG(50, 1), λ=3 वाली negative exponential distributionN(3), 0 और 1 के बीच uniform distributionU(0, 1), 1 से 6 तक uniform integer distributionUI(1, 6)वगैरहयह कहीं ज्यादा flexible और याद रखने में भी आसान लगता है