यदि दो द्विपद वितरण एक दूसरे से सांख्यिकीय रूप से भिन्न हैं तो परीक्षण करें


37

मेरे पास डेटा के तीन समूह हैं, प्रत्येक एक द्विपद वितरण (यानी प्रत्येक समूह में ऐसे तत्व हैं जो या तो सफलता या विफलता हैं)। मेरे पास सफलता की अनुमानित संभावना नहीं है, लेकिन इसके बजाय केवल प्रत्येक की सफलता दर पर भरोसा कर सकते हैं जो कि सही सफलता दर के लिए अनुमानित है। मुझे केवल यह सवाल मिला है , जो करीब है लेकिन इस परिदृश्य से बिल्कुल नहीं लगता है।

परीक्षण को सरल बनाने के लिए, आइए यह कहें कि मेरे पास 2 समूह हैं (3 को इस बेस केस से बढ़ाया जा सकता है)।

  • समूह 1 परीक्षण: = 2455n1
  • समूह 2 परीक्षण: = 2730n2

  • समूह 1 सफलता: = 1556k1
  • समूह 2 की सफलता: = 1671k2

मेरे पास अपेक्षित सफलता की संभावना नहीं है, केवल मैं नमूनों से जानता हूं। तो दो समूहों के लिए मेरी निहित सफलता दर है:

  • समूह 1 की सफलता दर: = 1556/2455 = 63.4%p1
  • समूह 2 की सफलता दर: = 1671/2730 = 61.2%p2

प्रत्येक नमूने की सफलता दर काफी करीब है। हालाँकि मेरे नमूने का आकार भी काफी बड़ा है। अगर मैं द्विपद वितरण के सीडीएफ की जांच करता हूं तो यह देखने के लिए कि यह पहले से कितना अलग है (जहां मैं पहली बार शून्य परीक्षण कर रहा हूं) मुझे बहुत कम संभावना है कि दूसरा हासिल किया जा सके।

एक्सेल में:

1-BINOM.DIST (1556,2455,61.2%, TRUE) = 0.012

हालांकि, यह पहले परिणाम के किसी भी रूपांतर को ध्यान में नहीं रखता है, यह सिर्फ यह मानता है कि पहला परिणाम परीक्षण की संभावना है।

क्या यह परीक्षण करने का एक बेहतर तरीका है कि क्या डेटा के ये दो नमूने वास्तव में एक दूसरे से सांख्यिकीय रूप से भिन्न हैं?


एक और सवाल जो मुझे आया था वह वास्तव में बहुत मदद नहीं कर रहा था: आंकड़े.stackexchange.com/questions/82059/…
स्कॉट

क्या यह प्रश्न मदद करता है? आँकड़े.स्टैकएक्सचेंज.com
एरिक

2
आर में, आप इस्तेमाल कर सकते हैं prop.test: prop.test(c(1556, 1671), c(2455, 2730))
COOLSerdash

1
एक दो-नमूना (द्विपद) अनुपात परीक्षण, या एक 2x2 ची-वर्ग के रूप में किया जा सकता है
Glen_b

1
आधार मामले को दो समूहों से तीन तक विस्तारित करना समस्याग्रस्त हो सकता है, क्योंकि परीक्षण अन्योन्याश्रित होंगे: आपको इसे संभालने के लिए एनोवा के द्विपद संस्करण की आवश्यकता होगी।
whuber

जवाबों:


36

समाधान एक सरल Google दूर है: http://en.wikipedia.org/wiki/Statutic_hypothesis_testing

तो आप दिए गए विकल्प के खिलाफ निम्नलिखित अशक्त परिकल्पना का परीक्षण करना चाहेंगे

H0:p1=p2HA:p1p2

तो आपको बस टेस्ट स्टेटिस्टिक की गणना करने की आवश्यकता है जो कि है

z=p^1p^2p^(1p^)(1n1+1n2)

p^=n1p^1+n2p^2n1+n2

p^1=.634p^2=.612n1=2455n2=2730.

zα/2=1.96

z>zα/2

वैसे यह समाधान उस मामले के लिए काम करता है जब आप दो समूहों की तुलना कर रहे होते हैं, लेकिन यह उस मामले के लिए सामान्य नहीं होता है जहाँ आप 3 समूहों की तुलना करना चाहते हैं।

हालाँकि आप परीक्षण करने के लिए ची स्क्वार्ड परीक्षण का उपयोग कर सकते हैं यदि तीनों समूहों के पास समान अनुपात है जैसा कि @ टिप्पणी में उनके सुझाव के अनुसार ऊपर दिया गया है: "क्या यह प्रश्न मदद करता है?


6
धन्यवाद @ दान Google के साथ कई बार, खोज करने के लिए सही शब्द जानना पहली बाधा है। मैंने ची-स्क्वेर्ड टेस्ट पर एक नज़र डाला। वहाँ समस्या, जहाँ मैं पहली बार फंस रहा था, यह है कि मेरी अपेक्षित गणना नमूने पर आधारित है। इसलिए मैं अपेक्षित मूल्य प्रदान नहीं कर सकता, क्योंकि मेरे नमूनों का उपयोग उस अपेक्षित मूल्य को निर्धारित करने के लिए किया जाता है।
स्कॉट

@ देखें, यदि तीन समूहों के लिए आपके परिकल्पित अनुपात ये हैं कि वे सभी समान हैं तो प्रत्येक समूह के लिए अपेक्षित मान 1/3 होना चाहिए।
डैन

1
इस परीक्षण का उपयोग करने से संबंधित विवरण यहां पाया जा सकता है: itl.nist.gov/div898/handbook/prc/section3/prc33.htm (वर्तमान में, विकिपीडिया पेज एक वॉक-थ्रू उदाहरण प्रदान नहीं करता है)।
wwwilliam

p^(1p^)(1n1+1n2)=p^1(1p^1)n1+p^2(1p^2)n2

मेरे प्रश्न का उत्तर यहां पाया जा सकता है: आंकड़े
Tanguy

10

R में उत्तर की गणना इस प्रकार की जाती है:

fisher.test(rbind(c(1556,2455-1556), c(1671,2730-1671)), alternative="less")

8
क्या आप R फ़ंक्शन प्रदान करने की तुलना में थोड़ा अधिक लिखने पर विचार करेंगे? फ़ंक्शन का नामकरण समस्या को समझने में मदद नहीं करता है और हर कोई आर का उपयोग नहीं करता है, इसलिए यह उनके लिए कोई मदद नहीं होगी।
टिम

1
यह सबसे सटीक सांख्यिकीय उत्तर है, और छोटी संख्या में टिप्पणियों के लिए काम करता है (निम्न देखें: itl.nist.gov/div898/handbook/prc/section3/prc33.htm )।
एंड्रयू माओ

फिशर्स सटीक परीक्षण en.wikipedia.org/wiki/Fisher_exact_test
कीथ

3

बस एक सारांश:

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

लेकिन डेविड का जवाब फिशर के परीक्षण का उपयोग करते हुए एक गैरपारंपरिक परीक्षण का संकेत दे रहा है। जानकारी यहां है: https://en.wikipedia.org/wiki/Fisher%27s_exact_test और यह छोटे नमूना आकारों पर लागू किया जा सकता है लेकिन बड़े नमूना आकारों की गणना करने के लिए कठिन है।

किस परीक्षण का उपयोग करना है और आप अपने पी-मूल्य पर कितना विश्वास करते हैं यह एक रहस्य है। लेकिन चुनने के लिए जो भी परीक्षण में हमेशा पक्षपात होता है।


2
1/2

1
इस स्थिति के लिए, मुझे लगता है कि आप डैन की विधि का उपयोग कर सकते हैं, लेकिन सटीक मान (द्विपद) और अनुमानित तरीके (सामान्य Z> think (1 (1 α α / 2) Z> Φ − 1 (1 α α) में p मान की गणना करें 2 और Z <(1 (α / 2)) की तुलना करने के लिए कि क्या वे पर्याप्त करीब हैं।
Dr_Hope

1

Z=p1^p2^p^(1p^)(1/n1+1/n2)p^=n1p1^+n2p2^n1+n2

Z>Φ1(1α/2)Z<Φ1(α/2)


1

पायथन में, एक्टेस्मोडल का एक फ़ंक्शन होता है जिसे कहा जाता है proportions_ztest। यहाँ इसके उपयोग का एक उदाहरण है:

import statsmodels.api as sm
import numpy as np
import rpy2.robjects.packages as rpackages
import rpy2.robjects as robjects
rstats = rpackages.importr('stats')

s1 = 1556
n1 = 2455

s2 = 1671
n2 = 2730

# manual calculation
p1 = s1 / n1
p2 = s2 / n2
p = (s1 + s2) / (n1 + n2)

z = (p1 - p2) / (p*(1-p)*((1/n1)+(1/n2)))**0.5

# using R in Python with rpy2
rmatrix = robjects.r.matrix(robjects.IntVector([s1, n1-s1, s2,n2-s2]), nrow=2)
fisher_test = rstats.fisher_test(rmatrix, alternative="two.sided")

zscore, pval = sm.stats.proportions_ztest([s1, s2], [n1, n2], alternative='two-sided')

print('Manual calculation of z: {:.6f}'.format(z))
print('Z-score from statsmodels: {:.6f}'.format(zscore))
print('R pvalue from fisher.test: {:.6f}'.format(fisher_test[0][0]))
print('Statsmodels pvalue: {:.6f}'.format(pval))

यह प्रिंट करता है:

Manual calculation of z: 1.610825
Z-score from statsmodels: 1.610825
R pvalue from fisher.test: 0.108268
Statsmodels pvalue: 0.107218

-1

मूल पोस्ट: दान का उत्तर वास्तव में गलत है, किसी को अपमानित करने के लिए नहीं। एक z- परीक्षण का उपयोग केवल तभी किया जाता है जब आपका डेटा एक मानक सामान्य वितरण का अनुसरण करता है। इस मामले में, आपका डेटा एक द्विपद वितरण का अनुसरण करता है, इसलिए यदि आपका नमूना छोटा है तो आपका नमूना बड़ा या फिशर का परीक्षण करने के लिए ची-स्क्वेड परीक्षण का उपयोग करें।

संपादित करें: मेरी गलती, @Dan से माफी मांगती है। यदि आपके चर स्वतंत्र हैं, तो एक z- परीक्षण यहाँ मान्य है। यदि यह धारणा पूरी नहीं हुई या अज्ञात नहीं है, तो एक z- परीक्षण अमान्य हो सकता है।


2
χ2

यदि आप सीएलटी में विश्वास करते हैं, तो सामान्य वितरण सामान्य रूप से मौजूद है।
रयान

2
@ रेयान, मैं सीएलटी में विश्वास करता हूं, लेकिन यह n = 30 या n = 300 या n = 5000 के बारे में कुछ नहीं कहता है। जब तक आप किसी भी तरह से अनंत नमूना आकार का प्रबंधन नहीं करते हैं, या आप किसी भी तरह सामान्यता के साथ शुरू नहीं करते हैं, तब तक वास्तव में आपको सामान्यता नहीं मिलती है। औसत लेने के दौरान हम सामान्यता के कितने करीब हैं, इस बारे में सवाल CLT द्वारा संबोधित नहीं किए जाते हैं .. (हम उन सवालों पर विचार कर सकते हैं लेकिन हम यह पता लगाने के लिए CLT का उपयोग नहीं करते हैं कि क्या अनुमान कोई अच्छा है।)
Glen_b
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.