टी-टेस्ट में टी-मान से मैन्युअल रूप से पी वैल्यू की गणना


48

मेरे पास 31 मूल्यों के साथ एक नमूना डेटासेट है। मैं दो-पूंछ वाले टी-टेस्ट को आर का उपयोग करके परीक्षण करने के लिए दौड़ाता हूं अगर सही मतलब 10 के बराबर है:

t.test(x=data, mu=10, conf.level=0.95)

आउटपुट:

t = 11.244, df = 30, p-value = 2.786e-12
alternative hypothesis: true mean is not equal to 10 
95 percent confidence interval:
 19.18980 23.26907 
sample estimates:
mean of x 
 21.22944 

अब मैं मैन्युअल रूप से एक ही काम करने की कोशिश कर रहा हूं:

t.value = (mean(data) - 10) / (sd(data) / sqrt(length(data))) 
p.value = dt(t.value, df=length(lengths-1))

इस पद्धति का उपयोग करके गणना की गई टी-वैल्यू टी-टेस्ट आर फ़ंक्शन द्वारा आउटपुट के समान है। हालाँकि, पी-मूल्य 3.025803e-12 है।

किसी भी विचार मैं गलत क्या कर रहा हूँ?

धन्यवाद!

संपादित करें

यहाँ मेरा डेटासेट सहित पूरा R कोड है:

# Raw dataset -- 32 observations
data = c(21.75, 18.0875, 18.75, 23.5, 14.125, 16.75, 11.125, 11.125, 14.875, 15.5, 20.875,
            17.125, 19.075, 25.125, 27.75, 29.825, 17.825, 28.375, 22.625, 28.75, 27, 12.825, 
            26, 32.825, 25.375, 24.825, 25.825, 15.625, 26.825, 24.625, 26.625, 19.625)

# Student t-Test
t.test(x=data, mu=10, conf.level=0.95)

# Manually calculate p-value
t.value = (mean(data) - 10) / (sd(data) / sqrt(length(data)))
p.value = dt(t.value, df=length(data) - 1)

जवाबों:


43

इसका उपयोग करें ptऔर इसे दो-पूंछ करें।

> 2*pt(11.244, 30, lower=FALSE)
[1] 2.785806e-12

1
मुझे लगता है कि एक विवरण गायब है: जब कम = एफ का उपयोग करना है? - कृपया मेरा प्रश्न यहाँ देखें: आंकड़े
vonjd

3
मान को सकारात्मक होने की आवश्यकता है, इसलिए यदि इसका उपयोग उस चर के साथ किया जाए जो नकारात्मक हो सकता है, तो लपेटें abs
आरोन -

3
दो पूंछ वाले परीक्षण के लिए, आप इस संभावना की तलाश कर रहे हैं कि मान -11.244 से कम या +11.244 से अधिक है। निचला = एफ आर को पहले पैरामीटर से अधिक होने की संभावना की गणना करने के लिए कहता है। अन्यथा, यह आपको पहले पैरामीटर से कम मूल्य की संभावना देता है। जैसे, आप 2 * pt (-11.244, 30) भी कर सकते हैं। व्यक्तिगत रूप से, मैं आमतौर पर 2 * pt (-abs (q), df = n-1) को आर डिफॉल्ट के रूप में निचले = टी में करता हूं।
आशिक

9

मैंने इसे एक टिप्पणी के रूप में पोस्ट किया था, लेकिन जब मैं संपादन में थोड़ा और जोड़ना चाहता था, तो यह बहुत लंबा हो गया इसलिए मैंने इसे यहां स्थानांतरित कर दिया है।

संपादित करें : आपका परीक्षण आँकड़ा और df सही हैं। अन्य उत्तर कॉल में टेल क्षेत्र की गणना pt()और दो-पूंछ के लिए दोहरीकरण के साथ समस्या को नोट करता है, जो कि इस अंतर को हल करता है। फिर भी मैं अपनी पिछली चर्चा / टिप्पणी को छोड़ दूंगा क्योंकि यह अत्यधिक पूंछ में पी-वैल्यू के बारे में प्रासंगिक बिंदुओं को और अधिक बनाता है:

यह संभव है कि आप कुछ भी गलत नहीं कर रहे हैं और अभी भी एक अंतर प्राप्त कर सकते हैं, लेकिन यदि आप एक प्रतिलिपि प्रस्तुत करने योग्य उदाहरण पोस्ट करते हैं तो यह आगे की जांच करना संभव हो सकता है कि क्या आपको कुछ त्रुटि है (डीएफ में कहें)।

इन चीजों की गणना उन अनुमानों से की जाती है जो विशेष रूप से बहुत चरम पूंछ में सटीक नहीं हो सकते हैं।

यदि दो चीजें समान सन्निकटन का उपयोग नहीं करती हैं, तो वे निकटता से सहमत नहीं हो सकते हैं, लेकिन समझौते की कमी से कोई फर्क नहीं पड़ता (सटीक टेल क्षेत्र के लिए जहां तक ​​सार्थक संख्या हो, आवश्यक मान्यताओं को आश्चर्यजनक डिग्री तक पकड़ना होगा सटीकता)। क्या आपके पास वास्तव में सटीक सामान्यता, सटीक स्वतंत्रता, बिल्कुल निरंतर विचरण है?

2×10-123×10-120.0001


6

इसे मैन्युअल रूप से गणना करने का सबसे अच्छा तरीका है:

t.value = (mean(data) - 10) / (sd(data) / sqrt(length(data))) 
p.value = 2*pt(-abs(t.value), df=length(data)-1)

1


0

मैं वास्तव में absटिप्पणियों के साथ, @Aaron प्रदान किए गए उत्तर को पसंद करता हूं । मुझे लगता है कि एक आसान पुष्टि चल रही है

pt(1.96, 1000000, lower.tail = F) * 2

जो पैदावार देता है 0.04999607

यहां, हम अच्छी तरह से ज्ञात संपत्ति का उपयोग कर रहे हैं कि सामान्य वितरण के तहत 95% क्षेत्र ~ 1.96 मानक विचलन पर होता है, इस प्रकार ~ 0.05 का आउटपुट हमारे पी-मूल्य देता है। जब एन विशाल है, तब से मैंने १०००००० का उपयोग किया, टी वितरण सामान्य वितरण के समान ही है। इसे चलाने से मुझे @ आरोन के समाधान में आराम मिला।

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