मेरे पास निम्नलिखित संरचना के साथ एक डेटा सेट है:
a word | number of occurrence of a word in a document | a document id
मैं आर में सामान्य वितरण के लिए एक परीक्षण कैसे कर सकता हूं? संभवतः यह एक आसान सवाल है लेकिन मैं एक आर नौसिखिया हूं।
मेरे पास निम्नलिखित संरचना के साथ एक डेटा सेट है:
a word | number of occurrence of a word in a document | a document id
मैं आर में सामान्य वितरण के लिए एक परीक्षण कैसे कर सकता हूं? संभवतः यह एक आसान सवाल है लेकिन मैं एक आर नौसिखिया हूं।
जवाबों:
यदि मैं आपके प्रश्न को सही ढंग से समझता हूं, तो यह जांचने के लिए कि क्या दस्तावेजों के एक सेट में शब्द की घटना एक सामान्य वितरण का अनुसरण करती है, आप सिर्फ एक आकार-विल्क परीक्षण और कुछ qqplots का उपयोग कर सकते हैं। उदाहरण के लिए,
## Generate two data sets
## First Normal, second from a t-distribution
words1 = rnorm(100); words2 = rt(100, df=3)
## Have a look at the densities
plot(density(words1));plot(density(words2))
## Perform the test
shapiro.test(words1); shapiro.test(words2)
## Plot using a qqplot
qqnorm(words1);qqline(words1, col = 2)
qqnorm(words2);qqline(words2, col = 2)
Qqplot कमांड देते हैं:
आप देख सकते हैं कि भारी पूंछ ( अधिक जानकारी ) द्वारा दूसरा डेटा सेट स्पष्ट रूप से सामान्य नहीं है ।
शापिरो-वॉक नॉर्मलिटी टेस्ट में, पी-वैल्यू पहले डेटा सेट (> .9) के लिए बड़ी है लेकिन दूसरे डेटा सेट (<.01) के लिए बहुत छोटी है। यह आपको दूसरे के लिए अशक्त परिकल्पना को अस्वीकार करने के लिए प्रेरित करेगा।
qqline
1 ढलान और म्यू अवरोधन होगा।
मान लें कि आपके डेटासेट को कॉल किया गया है words
और counts
उसमें एक कॉलम है, तो आप वितरण के दृश्य के लिए हिस्टोग्राम की साजिश कर सकते हैं:
hist(words$counts, 100, col="black")
जहां 100 डिब्बे की संख्या है
आप एक सामान्य QQ प्लॉट का उपयोग करके भी कर सकते हैं
qqnorm(words$counts)
अंत में, आप सामान्यता के लिए शापिरो-विल्क परीक्षण का भी उपयोग कर सकते हैं
shapiro.test(word$counts)
हालाँकि, इस चर्चा को देखें: सामान्यता परीक्षण: 'अनिवार्य रूप से बेकार?'
कोई भी परीक्षण आपको यह नहीं दिखाएगा कि आपके डेटा का सामान्य वितरण है - यह आपको केवल तभी दिखाएगा जब डेटा सामान्य रूप से पर्याप्त रूप से असंगत है कि आप अशक्त अस्वीकार कर देंगे।
लेकिन मायने किसी भी मामले में सामान्य नहीं हैं, वे सकारात्मक पूर्णांक हैं - क्या संभावना है कि सामान्य वितरण से एक अवलोकन एक ऐसा मूल्य लेगा जो पूर्णांक नहीं है? (... यह संभावना 1 की घटना है)।
आप इस मामले में सामान्यता के लिए परीक्षण क्यों करेंगे? यह स्पष्ट रूप से असत्य है।
[कुछ मामलों में यह जरूरी नहीं है कि आप बता सकते हैं कि आपका डेटा वास्तव में सामान्य नहीं है। वास्तविक डेटा कभी नहीं (या लगभग कभी नहीं) वास्तव में एक सामान्य वितरण से तैयार होने जा रहे हैं।]
यदि आपको वास्तव में एक परीक्षण करने की आवश्यकता है, शापिरो-विल्क परीक्षण ( ?shapiro.test
) सामान्यता का एक अच्छा सामान्य परीक्षण है, जो कि व्यापक रूप से उपयोग किया जाता है।
सामान्यता को देखने का एक और अधिक औपचारिक तरीका यह परीक्षण करना है कि क्या कुर्तोसिस और तिरछापन शून्य से काफी अलग है।
ऐसा करने के लिए, हमें प्राप्त करने की आवश्यकता है:
kurtosis.test <- function (x) {
m4 <- sum((x-mean(x))^4)/length(x)
s4 <- var(x)^2
kurt <- (m4/s4) - 3
sek <- sqrt(24/length(x))
totest <- kurt/sek
pvalue <- pt(totest,(length(x)-1))
pvalue
}
कर्टोसिस के लिए, और:
skew.test <- function (x) {
m3 <- sum((x-mean(x))^3)/length(x)
s3 <- sqrt(var(x))^3
skew <- m3/s3
ses <- sqrt(6/length(x))
totest <- skew/ses
pt(totest,(length(x)-1))
pval <- pt(totest,(length(x)-1))
pval
}
स्केवनेस के लिए।
ये दोनों परीक्षण एक-पूंछ वाले हैं, इसलिए आपको दो-पूंछ बनने के लिए पी-मान को 2 से गुणा करना होगा। यदि आपका पी-मूल्य एक से बड़ा हो जाता है, तो आपको कुर्टोसिस.टेस्ट के बजाय 1-कर्टोसिस.टेस्ट () का उपयोग करने की आवश्यकता होगी।
यदि आपके कोई अन्य प्रश्न हैं तो आप मुझे j.bredman@gmail.com पर ईमेल कर सकते हैं
kurtosis()
और skewness()
कार्यों के बारे में ? नमूनों का उपयोग करने वाले परिणाम अलग हैं। rnorm()
nortest
R के पैकेज का उपयोग करके , ये परीक्षण किए जा सकते हैं:
एंडरसन-डार्लिंग नॉर्मलिटी टेस्ट करें
ad.test(data1)
सामान्यता के लिए Cramér-von Mises परीक्षण करें
cvm.test(data1)
सामान्यता के लिए पियर्सन ची-स्क्वायर टेस्ट करें
pearson.test(data1)
सामान्यता के लिए शापिरो-फ्रांसिया परीक्षण करें
sf.test(data1)
normtest
पैकेज का उपयोग करके कई अन्य परीक्षण किए जा सकते हैं । विवरण देखें
https://cran.r-project.org/web/packages/normtest/normtest.pdf पर
zipfR
पैकेज देखें।