मैं गैर-सामान्य वितरण के लिए विश्वास अंतराल की गणना कैसे करूं?


21

मेरे पास 383 नमूने हैं जिनमें कुछ सामान्य मूल्यों के लिए भारी पूर्वाग्रह है, मैं इस मतलब के लिए 95% सीआई की गणना कैसे करूंगा? जिस CI की मैंने गणना की है वह रास्ता बंद लगता है, जो मुझे लगता है क्योंकि मेरा डेटा हिस्टोग्राम बनाते समय वक्र की तरह नहीं दिखता है। इसलिए मुझे लगता है कि मुझे बूटस्ट्रैपिंग जैसी किसी चीज़ का उपयोग करना होगा, जिसे मैं बहुत अच्छी तरह से नहीं समझता।


2
एक उपाय यह होगा कि एसिम्प्टोटिक सीआई का उपयोग किया जाए जो इस तथ्य का उपयोग करता है कि RV में मानक सामान्य वितरण सीमित है। आपका नमूना यथोचित रूप से बड़ा है इसलिए यह एक अच्छे सन्निकटन के लिए बना सकता है। एक्स¯-μएस/n
जॉनके

1
नहीं, आप उस दृष्टिकोण का उपयोग करके विश्वास अंतराल के दोनों पूंछों में वास्तव में खराब पूंछ कवरेज पाएंगे। सौभाग्य से औसत कवरेज ठीक हो सकता है लेकिन दोनों पूंछ त्रुटि दर गलत होंगे।
फ्रैंक हरेल

2
"कुछ सामान्य मूल्यों के लिए भारी पूर्वाग्रह" का क्या अर्थ है? ध्यान दें कि आंकड़ों में पूर्वाग्रह का एक विशेष अर्थ है; अगर आपको इसका मतलब नहीं है तो आपको इससे बचने की कोशिश करनी चाहिए। क्या आपका मतलब है "कुछ विशेष मूल्य बहुत बार होते हैं"? क्या आप अपनी गणना और अपने डेटा के कुछ प्रदर्शन या तालिका दिखा सकते हैं?
Glen_b -Reinstate Monica

जवाबों:


21

हां, बूटस्ट्रैप माध्य के लिए विश्वास अंतराल प्राप्त करने के लिए एक विकल्प है (और यदि आपको विधि को समझना है तो आपको थोड़ा प्रयास करना होगा)।

विचार अग्रांकित है:

  1. प्रतिस्थापन बी समय के साथ फिर से भरना।
  2. इनमें से प्रत्येक नमूने के लिए नमूना माध्य की गणना करें।
  3. एक उपयुक्त बूटस्ट्रैप विश्वास अंतराल की गणना करें ।

अंतिम चरण के संबंध में, कई प्रकार के बूटस्ट्रैप विश्वास अंतराल (BCI) हैं। निम्नलिखित संदर्भ बीसीआई के विभिन्न प्रकारों के गुणों पर चर्चा प्रस्तुत करते हैं:

http://staff.ustc.edu.cn/~zwp/teach/Stat-Comp/Efron_Bootstrap_CIs.pdf

http://www.tau.ac.il/~saharon/Boot/10.1.1.133.8405.pdf

कई बीसीआई की गणना करना और उनके बीच संभावित विसंगतियों को समझने की कोशिश करना एक अच्छा अभ्यास है।

R में, आप R पैकेज 'बूट' का उपयोग करके इस विचार को आसानी से लागू कर सकते हैं:

rm(list=ls())
# Simulated data
set.seed(123)
data0 = rgamma(383,5,3)
mean(data0) # Sample mean

hist(data0) # Histogram of the data

library(boot) 

# function to obtain the mean
Bmean <- function(data, indices) {
  d <- data[indices] # allows boot to select sample 
    return(mean(d))
} 

# bootstrapping with 1000 replications 
results <- boot(data=data0, statistic=Bmean, R=1000)

# view results
results 
plot(results)

# get 95% confidence interval 
boot.ci(results, type=c("norm", "basic", "perc", "bca"))

3
अंतिम चरण, कई की गणना करें, परिणाम के लिए पसंद किए गए सीआई के लिए मछली पकड़ने का मतलब है। आपको इस बात का निर्णय करना चाहिए कि आप जिस तरह के सीआई चाहते हैं, उसके आधार पर वे पहले से क्या हैं।
जॉन

@ जॉन अलग सीआई के अलग-अलग गुण हैं। संभावित विसंगतियों की जांच करना (और इसके स्रोत की जांच करने की कोशिश करना) एक अच्छा अभ्यास है। यह एक सुविधाजनक परिणाम के लिए मछली पकड़ने के बारे में नहीं है।
मुंचुसेन

बिल्कुल, लेकिन आपके जवाब में कारण के इस तरह के वर्णन के बिना यह "मछली पकड़ने" का अर्थ है। और आप अभी भी यह नहीं कह रहे हैं कि यह वास्तव में सीआई को चुनना महत्वपूर्ण है जिसे आप पहले चाहते हैं। मैं एक भोले प्रश्नकर्ता के लिए कुछ महत्वपूर्ण जानकारी के साथ उत्तर का अद्यतन सुझा रहा हूं। यह बेहतर होगा कि आप यह बताएं कि आप किस सीआई को पसंद करते हैं और क्यों, या आप इस तरह के मामलों में किसे पसंद करते हैं।
जॉन

2
@IhaveCandy: नहीं। यह केंद्रीय सीमा प्रमेय को प्रदर्शित करता है, अर्थात मीन का नमूना वितरण सामान्य "सामान्य" वितरण के बाद के मूल्यों के लिए भी सामान्य हो जाता है। यही कारण है कि साधारण z विश्वास अंतराल किसी भी अन्य फैंसी समाधान, जैसे बूटस्ट्रैप के लिए बहुत अलग नहीं होगा।
माइकल एम

1
@IhaveCandy कृपया मेरी टिप्पणी ऊपर देखें, माइकल मेयर एक ही बिंदु बना रहे हैं।
जॉनके

8

एक अन्य मानक विकल्प है विल्कोक्सन परीक्षण के साथ सीआई की गणना करना। में आर

wilcox.test(your-data, conf.int = TRUE, conf.level = 0.95)

दुर्भाग्य से, यह आपको (छद्म) माध्यिका के आसपास सीआई नहीं देता है, लेकिन फिर यदि डेटा भारी गैर-सामान्य है तो शायद मध्ययुगीन अधिक जानकारीपूर्ण उपाय है।


2

लॉग-सामान्य डेटा के लिए, ओल्सन (2005) एक 'संशोधित कॉक्स विधि' का सुझाव देता है

एक्स(एक्स)=θलॉग(θ)

Y¯=एस22±टीएस2n+एस42(n-1)

Y=लॉग(एक्स)YY¯Yएस2

एक आर फ़ंक्शन नीचे है:

ModifiedCox <- function(x){
  n <- length(x)
  y <- log(x)
  y.m <- mean(y)
  y.var <- var(y)

  my.t <- qt(0.975, df = n-1)

  my.mean <- mean(x)
  upper <- y.m + y.var/2 + my.t*sqrt(y.var/n + y.var^2/(2*(n - 1)))
  lower <- y.m + y.var/2 - my.t*sqrt(y.var/n + y.var^2/(2*(n - 1)))

 return(list(upper = exp(upper), mean = my.mean, lower = exp(lower)))

}

ओल्सन के पेपर से उदाहरण दोहराते हुए

CO.level <- c(12.5, 20, 4, 20, 25, 170, 15, 20, 15)

ModifiedCox(CO.level)
$upper
[1] 78.72254

$mean
[1] 33.5

$lower
[1] 12.30929

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