क्रुस्काल-वालिस के बीच थोड़ा असंगतता आर-फ़ंक्शन और मैनुअल गणना


9

मैं निम्नलिखित द्वारा भ्रमित हूं, और मैं उत्तर को कहीं और खोदने में सक्षम नहीं हूं।

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

उदाहरण के लिए, मैं एक अभ्यास में दिए गए निम्नलिखित आंकड़ों को देख रहा हूं

activity <- c(2, 4, 3, 2, 3, 3, 4, 0, 4, 3, 4, 0, 0, 1, 3, 1, 2, 0, 3, 1, 0, 3, 4, 0, 1, 2, 2, 2, 3, 2) 
group <- c(rep("A", 11), rep("B", 10), rep("C", 9))
group <- factor(group)
data.raw <- data.frame(activity, group)

और मैं समूह द्वारा गतिविधि का विश्लेषण करना चाहता हूं। पहले मैंने इन-बिल्ट आर फ़ंक्शन का उपयोग करके क्रुस्कल-वालिस परीक्षण चलाया

kruskal.test(activity ~ group, data = data.raw)

जो लौटता है एच=8.9056

डबल-चेक करने के लिए, मैं निम्नलिखित (कोई शक नहीं असहाय) कोड के साथ आर में 'हाथ से' करने की कोशिश करता हूं

rank <- rank(activity)
data.rank <- data.frame(rank, group)
rank.sum <- aggregate(rank ~ group, data = data.rank, sum)

x <- rank.sum[1,2]^2 / 11 + rank.sum[2,2]^2 / 10 + rank.sum[3,2]^2 / 9
H <- (12 / (length(activity) * (length(activity) + 1))) * x - 3 * (length(activity) + 1)
H

जो निम्नलिखित सूत्र को प्रतिबिंबित करने के लिए है:

एच=12एन(एन+1)Σमैं=1जी(आरमैं2nमैं)-3(एन+1)

कहाँ पे एन टिप्पणियों की कुल संख्या है, जी समूहों की संख्या है, nमैं में टिप्पणियों की संख्या है मैंवें समूह, और आरमैं की रैंक का योग है मैंगु समूह।

और अब मुझे मिलता है एच=8.499, जो मेरी उलझन को जोड़ रहा है, यह प्रश्न में अभ्यास के लिए दिया गया उत्तर भी है। मैंने विभिन्न डेटा सेटों के एक जोड़े के लिए यह कोशिश की है, और मुझे इसके लिए थोड़ा अधिक मूल्य प्राप्त होता हैएच इन-बिल्ट फ़ंक्शन का उपयोग करना।

मैंने यह पता लगाने की कोशिश की है कि मैं क्या गलत कर रहा हूं या समझने में असफल हूं, लेकिन कोई फायदा नहीं हुआ। क्या कोई मुझे समझने में मदद कर सकता है कि इनबिल्ट kruskal.testफंक्शन एक अलग मूल्य लौटाता है जो मुझे चीजों को वर्तनी से मिलता है?

जवाबों:


12

kruskal.testइस विकिपीडिया लेख (बिंदु 4) में वर्णित संबंधों के लिए एक सुधार लागू होता है :

पिछले बिंदु में वर्णित शॉर्ट-कट फॉर्मूले का उपयोग करके संबंधों के लिए एक सुधार, एच द्वारा विभाजित करके बनाया जा सकता है 1-Σमैं=1जी(टीमैं3-टीमैं)एन3-एन, ...

अपने कोड से जारी:

TIES <- table(activity)
H / (1 - sum(TIES^3 - TIES)/(length(activity)^3 - length(activity)))
#[1] 8.9056

आप पता लगा सकते हैं कि आर फ़ंक्शन कोड का सावधानीपूर्वक अध्ययन करके क्या करता है, जिसे आप उपयोग करके देख सकते हैं getAnywhere(kruskal.test.default)


4
@MichaelChernick नहीं, यह नहीं है। मुद्दा यह है कि ओपी को परीक्षण का एक सरलीकरण सिखाया गया है जिसका उपयोग केवल तभी किया जाना चाहिए जब कोई संबंध न हो।
रॉलेंड

4
@MichaelChernick मैं यह नहीं कह रहा हूं कि यह स्टैक ओवरफ्लो में फिट नहीं होगा। लेकिन मेरा तर्क है कि यह सीवी पर भी उतना ही फिट बैठता है। जाहिर है, यह मददगार होता अगर ओपी ने न केवल अपना कोड साझा किया होता, बल्कि उन सूत्रों का भी उपयोग कर रहा होता है जो वे उपयोग कर रहे हैं।
रोलैंड

3
@ मिचेल इस धागे की स्थिति एक आसान कॉल है: यह हमारे दायरे में चौकोर है क्योंकि यह एक सांख्यिकीय परीक्षा को समझना चाहता है।
whuber

2
कोड में परिलक्षित सूत्र को शामिल करने के लिए संपादित। पहली बार ऐसा करने के बारे में सोचा है। क्षमा याचना।
MSR

3
आर Hmiscपैकेज spearman2फ़ंक्शन भी देखें जो संबंधों के लिए midranks का उपयोग करता है और क्रुस्ल F-वालिस को प्राप्त करने के लिए एक परीक्षण। मुझे लगता है कि यह कुछ तरीकों की तुलना में अधिक सटीक है।
फ्रैंक हरेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.