में मैट्रिक्स संचयी मानक विचलन की कुशल गणना मैंने हाल ही में आर-सहायता मेलिंग सूची पर इस प्रश्न को पोस्ट किया लेकिन मुझे कोई जवाब नहीं मिला, इसलिए मैंने सोचा कि मैं इसे यहां भी पोस्ट करूंगा और देख सकता हूं कि कोई सुझाव था या नहीं।आर
मैं एक मैट्रिक्स के संचयी मानक विचलन की गणना करने की कोशिश कर रहा हूं। मुझे एक ऐसा फ़ंक्शन चाहिए जो मैट्रिक्स स्वीकार करता है और उसी आकार का मैट्रिक्स देता है जहां आउटपुट सेल (i, j) पंक्तियों 1 और i के बीच इनपुट कॉलम जे के मानक विचलन पर सेट होता है। एनएएस को अनदेखा किया जाना चाहिए, जब तक कि इनपुट मैट्रिक्स का सेल (i, j) स्वयं NA न हो, आउटपुट मैट्रिक्स के मामले में सेल (i, j) भी NA होना चाहिए।
मुझे एक अंतर्निहित फ़ंक्शन नहीं मिला, इसलिए मैंने निम्नलिखित कोड लागू किया। दुर्भाग्यवश, यह एक लूप का उपयोग करता है जो बड़े matrices के लिए कुछ हद तक धीमा हो जाता है। क्या कोई तेज़ अंतर्निहित कार्य है या कोई बेहतर दृष्टिकोण सुझा सकता है?
cumsd <- function(mat)
{
retval <- mat*NA
for (i in 2:nrow(mat)) retval[i,] <- sd(mat[1:i,], na.rm=T)
retval[is.na(mat)] <- NA
retval
}
धन्यवाद।
बहुत अच्छा मरेक, यह मेरा विश्लेषण अधिक कुशल बना रहा है। एफवाईआई, ऐसा लगता है कि आपने फ़ंक्शन में परिवर्तनीय n <- nrow (mat) का उपयोग नहीं किया है। – Abiel
यह प्रारंभिक संस्करणों में से एक से अवशेष है;)। – Marek
इस एल्गोरिदम का उपयोग करके देखें; @ मरेक का एक अच्छा विचार है लेकिन भिन्नता के लिए इस समीकरण का उपयोग करके मजेदार परिणाम दे सकते हैं जब एसडी माध्य के सापेक्ष छोटा होता है। विकिपीडिया में [बेहतर एल्गोरिदम] है (http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance); मेरा जवाब भी देखें [यहां] (http://stackoverflow.com/questions/7474943/surprisingly-slow- मानक-deviation-in-r/7475664#7475664)। – Aaron