1 पॉइंट द्वारा GN⁺ 2025-04-16 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • नौकरी बदलने, बिज़नेस 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 टिप्पणियां

 
GN⁺ 2025-04-16
Hacker News की राय
  • यह टूल मुझे पसंद आया। हालांकि HN की परंपरा के मुताबिक, पोस्ट के किसी एक शब्द पर अटककर लगभग—लेकिन असल में पूरी तरह—साइड-टॉपिक वाली बात करूं तो, ऐसी calculations में कम-से-कम तीन अपने ही पैर पर कुल्हाड़ी मारने वाली जगहें हैं

    1. 95% आम लोगों की सोच से कहीं ज्यादा चौड़ा होता है। लोग 95% को “लगभग यही सही होगा” की तरह लेते हैं, लेकिन असल में यह “अगर यह नहीं हुआ तो काफी हैरानी होगी” के ज्यादा करीब है। आम तौर पर लोग अपने दिमाग में error bars बहुत संकरे रख लेते हैं
    2. probabilities सच में independent बहुत कम ही होती हैं। इसे “Mortgage Derivatives कहावत” कहा जा सकता है। परिवार वाले उदाहरण में rent का food खर्च से correlated होने की संभावना ज्यादा है, और rent ज्यादा हो तो food खर्च भी ज्यादा होने की संभावना है। इससे distribution टेढ़ी हो जाती है, और अगर इसे बिना weights वाली uniform distribution से model करें तो आप हैरान होंगे कि असली नतीजा कितना “दुर्लभ घटना” जैसा दिखता है
    3. सामान्य तौर पर normal distribution लोगों की सोच से ज्यादा दुर्लभ है। values को मजबूर करने वाला कोई constraint factor होना चाहिए, तभी यह बनने की प्रवृत्ति रखती है। nature में negative feedback loops हर जगह हैं, इसलिए यह अक्सर दिखती है, लेकिन अपेक्षाकृत व्यवस्थित प्रकृति के बगीचे से बाहर निकलकर मानव मामलों की अराजकता में जाएं तो normal distribution काफी abnormal हो जाती है
      टूल और implementation अच्छे हैं, लेकिन मैंने statistics पहली बार उठाने वाले लोगों को एक उंगली गंवाते बहुत देखा है
    • इससे जोरदार सहमति है, खासकर point 1 से। अगर लोगों से कहा जाए कि वे ऐसे answer की range estimate करें जिस पर उन्हें 90% confidence हो, तो औसतन वे लगभग 30% confidence interval के बराबर range देते हैं
      90% से ज्यादा लोग 70% confidence interval तक भी नहीं पहुंचते। आप खुद test कर सकते हैं: https://blog.codinghorror.com/how-good-an-estimator-are-you/
    • non-technical stakeholders के साथ एक बड़े Gantt chart की expected completion date model करने वाला project किया था। कुछ tasks नए थे और fixed time के रूप में quantify करना realistic नहीं था, इसलिए business stakeholders probabilistic task completion times चाहते थे
      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
    • पोस्ट देखकर जो overall impression मिला, उससे यह मेल खाता है। ranges के बारे में reasoning की complexity और difficulty बढ़ने के साथ, example calculation result पर confidence उल्टा कम हो गया
      $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 बनाता है
    • “rent का food खर्च से बहुत correlated होने की संभावना है, और rent ज्यादा हो तो food खर्च भी ज्यादा होने की संभावना है” — इस बात से मैं खास सहमत नहीं हूं। average rent का average food खर्च से correlated model reasonable है, लेकिन उन दोनों parameters के दिए जाने पर average के आसपास का variation uncorrelated के रूप में model किया जा सकता है
      वैसे भी, अगर आप ऐसी चीजों को consider करना चाहने के point पर पहुंच गए हैं, तो proper Bayesian statistics करनी चाहिए
      “normal distribution को values force करने वाला कोई constraint factor चाहिए” वाली बात भी पता नहीं कहां से आई। जरूरत uncorrelated errors की है, वह “constraint” या “negative feedback” नहीं है
    • मैंने statistics को कभी power tools या guns की तरह नहीं सोचा था, लेकिन “statistics पहली बार उठाने वाले लोग एक उंगली गंवा देते हैं” वाली उपमा सच में बहुत फिट बैठती है
  • मैंने एक 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> भी है

    • खासकर Fermi में यह syntax है
      5M 12M # number of people living in Chicago  
      
      beta 1 200 # fraction of people that have a piano  
      
      30 180 # minutes it takes to tune a piano, including travel time  
      
      / 48 52 # weeks a year that piano tuners work for  
      
      / 5 6 # days a week in which piano tuners work  
      
      / 6 8 # hours a day in which piano tuners work  
      
      / 60 # minutes to an hour  
      
      multiplication default operation के रूप में implied है, और custom distribution lognormal distribution है
    • इसी family का एक और tool <https://carlo.app/> है। यह Google Sheets में इस तरह की calculations करने देता है
    • अगर Squiggle a~b syntax support करे तो यह एक बढ़िया detail होगी :^)
    • unsure calc और Android app आजमाए, लेकिन लगता है कि वे अलग-अलग results देते हैं
  • शानदार। अगर लेख पसंद आया हो, तो “Dissolving the Fermi Paradox” पेपर भी दिलचस्प लग सकता है। यह आम point estimate values के बजाय वास्तव में probability density functions को multiply करने वाली बात को और गहराई से देखता है
    कुछ हद तक हैरानी की बात है कि नतीजा यह निकलता है कि शायद हम सचमुच अकेले हो सकते हैं
    https://arxiv.org/abs/1806.02404

    • ईमानदारी से कहूं तो थोड़ा depressing है, लेकिन इस साइट पर मौजूद लगभग सभी लोगों के लिए सिर्फ methodology की वजह से भी पढ़ने लायक है
  • मैंने एक मिलता-जुलता 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 गुना समय लगा देता और आखिर में छोड़ देता

    • इसी संदर्भ में, rough hand-drawn illustrations काफी अच्छे हैं। “napkin” theme से अच्छी तरह मेल खाते हैं
    • यहां [1] में Awk में लिखा एक ठीक-ठाक implementation है। थोड़ा rough है, लेकिन आसानी से extend किया जा सकता है
      [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 नहीं आती

    • basic example 100 / 4~6 output में 17~25 देता है
  • शुरू में toy जैसा लगता है, लेकिन unexpectedly useful दिखता है। अगर यह normal calculator के बगल में इस्तेमाल होने वाली app के रूप में आए, तो मैं जरूर install करूंगा
    ठीक-ठीक याद नहीं आता कि कब इसकी जरूरत पड़ी थी, लेकिन अगर इसे keyboard shortcut से बांध दूं, तो इसे इस्तेमाल करने के मौके खोजने लगूंगा, ऐसा काफी संभव लगता है

    • इसमें numbers, यानी population × ownership rate × replacement frequency × unit price डालकर smartphone market की annual revenue estimate की, तो internet पर मिले actual value से सिर्फ कुछ percentage points का फर्क निकला
      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 है
    • अगर app चाहिए, तो https://f-droid.org/en/packages/com.nunosempere.distribution... पर विचार कर सकते हैं
    • main language के तौर पर Dart इस्तेमाल करता है, इसलिए यहां से Flutter app बनाना आसान होना चाहिए
  • feature request: अच्छा होगा अगर probability distribution specify कर सकें। उदाहरण के लिए ~ normal distribution और _ uniform distribution जैसा कुछ

    • मुझे लगता है ऐसी चीज़ functions होनी चाहिए। उदाहरण के लिए µ=50, σ=1 वाली Gaussian distribution G(50, 1), λ=3 वाली negative exponential distribution N(3), 0 और 1 के बीच uniform distribution U(0, 1), 1 से 6 तक uniform integer distribution UI(1, 6) वगैरह
      यह कहीं ज्यादा flexible और याद रखने में भी आसान लगता है
    • इस feature का न होना ही feature है। लेख में भी ऐसा ही कहा गया है