मुझे आपका सवाल पसंद है, लेकिन दुर्भाग्य से मेरा जवाब नहीं है, यह H0 साबित नहीं होता है । कारण बहुत सरल है। आपको कैसे पता चलेगा कि पी-वैल्यू का वितरण एक समान है? आपको शायद एकरूपता के लिए एक परीक्षण चलाना होगा जो आपको अपना स्वयं का पी-मूल्य लौटाएगा, और आप एक ही तरह के अनुमान प्रश्न के साथ समाप्त हो जाएंगे जिससे आप बचने की कोशिश कर रहे थे, केवल एक कदम आगे। मूल की पी-मूल्य को देख के बजाय H0 , अब आप एक और की एक पी-मूल्य को देखने के H′0 मूल पी मानों का वितरण की एकरूपता के बारे में।
अद्यतन करें
यहाँ प्रदर्शन है। मैं गौसियन और पॉइसन वितरण से 100 टिप्पणियों के 100 नमूने उत्पन्न करता हूं, फिर प्रत्येक नमूने के सामान्यता परीक्षण के लिए 100 पी-मान प्राप्त करता हूं। इसलिए, प्रश्न का आधार यह है कि यदि पी-मान एक समान वितरण से हैं, तो यह साबित होता है कि अशक्त परिकल्पना सही है, जो सांख्यिकीय अनुमान में "अस्वीकार करने में विफल" सामान्य से अधिक मजबूत कथन है। मुसीबत यह है कि "पी-मान एक समान हैं" एक परिकल्पना है, जिसे आपको किसी तरह परीक्षण करना है।
नीचे दी गई तस्वीर (पहली पंक्ति) में मैं गासियन और पॉइसन नमूने के लिए एक सामान्यता परीक्षण से पी-मूल्यों के हिस्टोग्राम दिखा रहा हूं, और आप देख सकते हैं कि यह कहना मुश्किल है कि क्या एक दूसरे की तुलना में अधिक समान है। वह मेरा मुख्य बिंदु था।
दूसरी पंक्ति प्रत्येक वितरण से एक नमूने को दिखाती है। नमूने अपेक्षाकृत छोटे हैं, इसलिए आपके पास वास्तव में बहुत अधिक डिब्बे नहीं हो सकते हैं। दरअसल, यह विशेष रूप से गाऊसी नमूना हिस्टोग्राम पर इतना गाऊसी बिल्कुल नहीं दिखता है।
तीसरी पंक्ति में, मैं हिस्टोग्राम पर प्रत्येक वितरण के लिए 10,000 टिप्पणियों के संयुक्त नमूने दिखा रहा हूं। यहां, आपके पास अधिक डिब्बे हो सकते हैं, और आकार अधिक स्पष्ट हैं।
अंत में, मैं एक ही सामान्यता परीक्षण चलाता हूं और संयुक्त नमूनों के लिए पी-वैल्यू प्राप्त करता हूं और यह पॉसन के लिए सामान्यता को खारिज कर देता है, जबकि गौसियन के लिए अस्वीकार करने में विफल रहता है। पी-वैल्यू हैं: [0.45348631] [0.]
यह एक प्रमाण नहीं है, निश्चित रूप से, लेकिन इस विचार का प्रदर्शन कि आप संयुक्त नमूने पर एक ही परीक्षण चलाते हैं, इसके बजाय उप-योगों से पी-मूल्यों के वितरण का विश्लेषण करने की कोशिश कर रहे हैं।
यहाँ पायथन कोड है:
import numpy as np
from scipy import stats
from matplotlib import pyplot as plt
def pvs(x):
pn = x.shape[1]
pvals = np.zeros(pn)
for i in range(pn):
pvals[i] = stats.jarque_bera(x[:,i])[1]
return pvals
n = 100
pn = 100
mu, sigma = 1, 2
np.random.seed(0)
x = np.random.normal(mu, sigma, size=(n,pn))
x2 = np.random.poisson(15, size=(n,pn))
print(x[1,1])
pvals = pvs(x)
pvals2 = pvs(x2)
x_f = x.reshape((n*pn,1))
pvals_f = pvs(x_f)
x2_f = x2.reshape((n*pn,1))
pvals2_f = pvs(x2_f)
print(pvals_f,pvals2_f)
print(x_f.shape,x_f[:,0])
#print(pvals)
plt.figure(figsize=(9,9))
plt.subplot(3,2,1)
plt.hist(pvals)
plt.gca().set_title('True Normal')
plt.gca().set_ylabel('p-value')
plt.subplot(3,2,2)
plt.hist(pvals2)
plt.gca().set_title('Poisson')
plt.gca().set_ylabel('p-value')
plt.subplot(3,2,3)
plt.hist(x[:,0])
plt.gca().set_title('a small sample')
plt.gca().set_ylabel('x')
plt.subplot(3,2,4)
plt.hist(x2[:,0])
plt.gca().set_title('a small Sample')
plt.gca().set_ylabel('x')
plt.subplot(3,2,5)
plt.hist(x_f[:,0],100)
plt.gca().set_title('Full Sample')
plt.gca().set_ylabel('x')
plt.subplot(3,2,6)
plt.hist(x2_f[:,0],100)
plt.gca().set_title('Full Sample')
plt.gca().set_ylabel('x')
plt.show()