बिनर्ड टिप्पणियों का मानक विचलन


25

मेरे पास नमूना टिप्पणियों का एक डेटासेट है, जो सीमा डिब्बे के भीतर मायने रखता है। उदाहरण के लिए:

min/max  count
40/44    1
45/49    2
50/54    3
55/59    4
70/74    1

अब, इस से औसत का अनुमान लगाना बहुत सीधा है। बस एक सीमा के रूप में प्रत्येक रेंज बिन के माध्य (या मध्य) का उपयोग करें और एक भार के रूप में गिनें और भारित औसत का पता लगाएं:

एक्स¯*=1Σमैं=1एनwमैंΣमैं=1एनwमैंएक्समैं

मेरे परीक्षण के मामले में, यह मुझे 53.82 देता है।

मेरा सवाल अब यह है कि मानक विचलन (या विचरण) खोजने की सही विधि क्या है?

अपनी खोज के माध्यम से, मुझे कई उत्तर मिले हैं, लेकिन मैं अनिश्चित हूं, यदि कोई है, तो वास्तव में मेरे डेटासेट के लिए उपयुक्त है। मैं निम्नलिखित सूत्र को दूसरे प्रश्न पर यहाँ और एक यादृच्छिक NIST दस्तावेज़ को खोजने में सक्षम था ।

रों2*=Σमैं=1एनwमैं(एक्समैं-एक्स¯*)2(एम-1)एमΣमैं=1एनwमैं

जो मेरे परीक्षण मामले के लिए 8.35 का मानक विचलन देता है। हालांकि, भारित साधनों पर विकिपीडिया लेख दोनों सूत्र देता है:

रों2*=Σमैं=1एनwमैं(Σमैं=1एनwमैं)2-Σमैं=1एनwमैं2Σमैं=1एनwमैं(एक्समैं-एक्स¯*)2

तथा

रों2*=1(Σमैं=1एनwमैं)-1Σमैं=1एनwमैं(एक्समैं-एक्स¯*)2

जो मेरे परीक्षण के मामले में क्रमशः 8.66 और 7.83 के मानक विचलन देते हैं।

अद्यतन करें

@Whuber का धन्यवाद जिन्होंने शेपर्ड के सुधारों और उनसे जुड़ी आपकी उपयोगी टिप्पणियों को देखने का सुझाव दिया। दुर्भाग्य से, मैं उन संसाधनों को समझने में मुश्किल समय पा रहा हूं, जिनके बारे में मैं पा सकता हूं (और मैं कोई अच्छा उदाहरण नहीं खोज सकता)। हालाँकि, मैं समझता हूँ कि निम्नलिखित विचरण का एक पक्षपाती अनुमान है:

रों2*=1Σमैं=1एनwमैंΣमैं=1एनwमैं(एक्समैं-एक्स¯*)2

मैं यह भी समझता हूं कि पूर्वाग्रह के लिए अधिकांश मानक सुधार एक सामान्य वितरण के प्रत्यक्ष यादृच्छिक नमूनों के लिए हैं। इसलिए, मुझे मेरे लिए दो संभावित मुद्दे दिखाई देते हैं:

  1. ये बेन्डम रैंडम सैंपल हैं (जो, मुझे पूरा यकीन है, शेपर्ड के करेक्शन में आते हैं।)
  2. यह अज्ञात है कि डेटा एक सामान्य वितरण के लिए है या नहीं (इस प्रकार मैं यह नहीं मान रहा हूं, जो, मुझे पूरा यकीन है, शेपर्ड के सुधार को अमान्य करता है।)

तो, मेरा अद्यतन प्रश्न है; गैर-सामान्य वितरण पर "सरल" भारित मानक विचलन / विचरण सूत्र द्वारा लगाए गए पूर्वाग्रह से निपटने के लिए उपयुक्त विधि क्या है? विशेष रूप से द्वैध डेटा के संबंध में।

नोट: मैं निम्नलिखित शब्दों का उपयोग कर रहा हूं:

  • रों2* भारित विचरण है
  • एन टिप्पणियों की संख्या है। (यानी डिब्बे की संख्या)
  • एम नॉनज़रो वेट की संख्या है। (यानी गिनती के साथ डिब्बे की संख्या)
  • wमैं वज़न हैं (यानी मायने रखता है)
  • एक्समैं अवलोकन हैं। (अर्थात बिन का मतलब है)
  • एक्स¯* भारित माध्य है।

5
इस समस्या के मानक समाधान के लिए Google "शेपर्ड के सुधार"।
whuber

@whuber, मुझे डर है कि मेरा google-foo मुझे फेल कर रहा है ... मैं शेपर्ड के सुधार का उपयोग करने के बारे में बहुत कुछ नहीं पा रहा हूं। जहाँ तक मैं बता सकता हूँ, यह डेटा की द्वंद्वात्मक प्रकृति के लिए एक सुधार है, और मेरे परीक्षण के मामले में तरह उपयोग किया जाएगा , जहां आकार है डिब्बे की (मेरी परीक्षा के मामले में, 4)। क्या ये सही है? किसी भी मामले में, जो मैं अभी भी पा रहा हूं वह कंप्यूटिंग साथ मेरी मदद नहीं करता है । रों2*-सी212सीरों2*
chezy525

दूसरी हिट मेरी में गूगल खोज एक स्पष्ट सूत्र (समीकरण 9) प्रदान करता है।
whuber

@whuber, यह एक दो महीने का है, और मैंने उस दस्तावेज़ को पढ़ने की कोशिश की है जिसे आपने कुछ बार जोड़ा है। मुझे लगता है कि मैं अभी भी कुछ याद कर रहा हूं, लेकिन सबसे अच्छी बात यह है कि मैंने जो अंतिम समीकरण सूचीबद्ध किया है वह निष्पक्ष अनुमानक के रूप में सही है। क्या यह सही है?
chezy525

शेपर्ड के सुधार सामान्यता नहीं मानते हैं।
Glen_b -Reinstate मोनिका

जवाबों:


18

7.707.69


शेपर्ड के सुधार

"शेपर्ड के सुधार" वे सूत्र हैं जो बिनड डेटा (जैसे ये) से गणना किए गए क्षणों को समायोजित करते हैं

  • [,]

  • वितरण में एक निरंतर घनत्व फ़ंक्शन होता है।

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

हालांकि कड़ाई से एक सामान्य वितरण बोलना एक सीमित अंतराल पर समर्थित नहीं है , यह एक अत्यंत निकट सन्निकटन है। अनिवार्य रूप से इसकी सभी संभावना माध्य के सात मानक विचलन के भीतर निहित है। इसलिए शेपर्ड के सुधार एक सामान्य वितरण से आने वाले डेटा के लिए लागू होते हैं।

पहले दो शेपर्ड के सुधार हैं

  1. डेटा के माध्य के लिए द्वैध डेटा के माध्य का उपयोग करें (अर्थात, माध्य के लिए कोई सुधार की आवश्यकता नहीं है)।

  2. 2/12

2/12-/2/22/12

चलो गणना करते हैं। मैं Rउनका वर्णन करने के लिए उपयोग करता हूं, जो कि गिनती और डिब्बे को निर्दिष्ट करके शुरू करते हैं:

counts <- c(1,2,3,4,1)
bin.lower <- c(40, 45, 50, 55, 70)
bin.upper <- c(45, 50, 55, 60, 75)

काउंट्स के लिए उपयोग करने का उचित फॉर्मूला काउंट्स द्वारा दी गई राशियों द्वारा बिन चौड़ाई की प्रतिकृति बनाने से आता है ; यह है, द्वैध डेटा के बराबर हैं

42.5, 47.5, 47.5, 52.5, 52.5, 57.5, 57.5, 57.5, 57.5, 72.5

एक्सकश्मीरकश्मीरएक्स2

bin.mid <- (bin.upper + bin.lower)/2
n <- sum(counts)
mu <- sum(bin.mid * counts) / n
sigma2 <- (sum(bin.mid^2 * counts) - n * mu^2) / (n-1)

mu1195/2254.32sigma2675/1 161.367.83=52/12=25/122.08675/1 1-52/127.70


अधिकतम संभावना अनुमान

एफθθ(एक्स0,एक्स1]कश्मीरएफθ

लॉगΠमैं=1कश्मीर(एफθ(एक्स1)-एफθ(एक्स0))=कश्मीरलॉग(एफθ(एक्स1)-एफθ(एक्स0))

( lognormally वितरित अंतराल के MLE / संभावना देखें )।

Λ(θ)θ^-Λ(θ)θR

sigma <- sqrt(sigma2) # Crude starting estimate for the SD
likelihood.log <- function(theta, counts, bin.lower, bin.upper) {
  mu <- theta[1]; sigma <- theta[2]
  -sum(sapply(1:length(counts), function(i) {
    counts[i] * 
      log(pnorm(bin.upper[i], mu, sigma) - pnorm(bin.lower[i], mu, sigma))
  }))
}
coefficients <- optim(c(mu, sigma), function(theta) 
  likelihood.log(theta, counts, bin.lower, bin.upper))$par

(μ^,σ^)=(54.32,7.33)

σn/(n-1)σn/(n-1)σ^=1 1/10×7.33=7.697.70

मान्यताओं का सत्यापन

इन परिणामों की कल्पना करने के लिए हम एक हिस्टोग्राम पर लगे हुए सामान्य घनत्व को प्लॉट कर सकते हैं:

hist(unlist(mapply(function(x,y) rep(x,y), bin.mid, counts)),
     breaks = breaks, xlab="Values", main="Data and Normal Fit")
curve(dnorm(x, coefficients[1], coefficients[2]), 
      from=min(bin.lower), to=max(bin.upper), 
      add=TRUE, col="Blue", lwd=2)

आकृति

1 1

χ2χ2R

breaks <- sort(unique(c(bin.lower, bin.upper)))
fit <- mapply(function(l, u) exp(-likelihood.log(coefficients, 1, l, u)),
              c(-Inf, breaks), c(breaks, Inf))
observed <- sapply(breaks[-length(breaks)], function(x) sum((counts)[bin.lower <= x])) -
  sapply(breaks[-1], function(x) sum((counts)[bin.upper < x]))
chisq.test(c(0, observed, 0), p=fit, simulate.p.value=TRUE)

आउटपुट है

Chi-squared test for given probabilities with simulated p-value (based on 2000 replicates)

data:  c(0, observed, 0) 
X-squared = 7.9581, df = NA, p-value = 0.2449

0.245

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