क्या वक्र आकृति के आधार पर समय-श्रृंखला क्लस्टरिंग करना संभव है?


47

मेरे पास आउटलेट्स की एक श्रृंखला के लिए बिक्री डेटा है, और समय के साथ उनके घटता के आकार के आधार पर उन्हें वर्गीकृत करना चाहते हैं। डेटा लगभग इस तरह दिखता है (लेकिन स्पष्ट रूप से यादृच्छिक नहीं है, और कुछ लापता डेटा है):

n.quarters <- 100
n.stores <- 20
if (exists("test.data")){
  rm(test.data)
}
for (i in 1:n.stores){
  interval <- runif(1, 1, 200)
  new.df <- data.frame(              
    var0 = interval + c(0, cumsum(runif(49, -5, 5))),
    date = seq.Date(as.Date("1990-03-30"), by="3 month", length.out=n.quarters),
    store = rep(paste("Store", i, sep=""), n.quarters))
  if (exists("test.data")){
    test.data <- rbind(test.data, new.df)    
  } else {
    test.data <- new.df
  }
}
test.data$store <- factor(test.data$store)

मैं जानना चाहता हूं कि आर में घटता के आकार के आधार पर मैं कैसे क्लस्टर कर सकता हूं। मैंने निम्नलिखित दृष्टिकोण पर विचार किया था:

  1. पूरे समय श्रृंखला के लिए 0.0 और 1.0 के बीच के मान को प्रत्येक स्टोर के var0 को रैखिक रूप से परिवर्तित करके एक नया कॉलम बनाएं।
  2. क्लस्टर इन परिवर्तित घटता R में kmlपैकेज का उपयोग कर ।

मेरे दो सवाल हैं:

  1. क्या यह एक उचित खोजपूर्ण दृष्टिकोण है?
  2. मैं अपने डेटा को अनुदैर्ध्य डेटा प्रारूप में कैसे बदल सकता हूं जो kmlसमझ में आएगा? किसी भी आर स्निपेट बहुत सराहना की जाएगी!

2
आप अलग-अलग अनुदैर्ध्य डेटा प्रक्षेप पथ क्लस्टरिंग पर पहले के एक सवाल से कुछ विचार मिल सकता है stats.stackexchange.com/questions/2777/...
Jeromy Anglim

1
@Jeromy एंगलिन लिंक के लिए धन्यवाद। क्या आपका कोई भाग्य था kml?
fmark

मेरे पास एक त्वरित नज़र है, लेकिन फिलहाल मैं व्यक्तिगत समय श्रृंखला की चयनित विशेषताओं (जैसे, मतलब, प्रारंभिक, अंतिम, परिवर्तनशीलता, अचानक परिवर्तन की उपस्थिति, आदि) के आधार पर एक अनुकूलित क्लस्टर विश्लेषण का उपयोग कर रहा हूं।
जेरोमे एंग्लीम

क्या यह कोई नकल है? आँकड़े.स्टैकएक्सचेंज.com
रोब

@Rob यह सवाल अनियमित समय अंतराल को नहीं लगता है, लेकिन वास्तव में वे एक दूसरे के करीब हैं (मैंने अपने लेखन के समय अन्य प्रश्न को याद नहीं किया)।
chl

जवाबों:


26

अनुदैर्ध्य डेटा के विश्लेषण के लिए कई दिशाओं में @Jeromy द्वारा प्रदान किए गए लिंक पर चर्चा की गई थी, इसलिए मैं आपको उन्हें सावधानीपूर्वक पढ़ने का सुझाव दूंगा, विशेष रूप से कार्यात्मक डेटा विश्लेषण पर। , या पेस मैटलैब टूलबॉक्स जो विशेष रूप से अनियमित नमूना प्रक्षेप पथ (पेंग और मुलर, के मॉडल के आधार पर क्लस्टरिंग के साथ संबंध है "अनुदैर्ध्य डेटा के कार्यात्मक क्लस्टरिंग" के लिए googling की कोशिश करो कम मनाया स्टोकेस्टिक प्रक्रियाओं की दूरी आधारित क्लस्टरिंग ऑनलाइन नीलामी के लिए आवेदन के साथ, , वर्ष 2016 के सांख्यिकी 2: 1056)। मैं कल्पना कर सकता हूं कि वित्तीय समय श्रृंखला के लिए एक अच्छा सांख्यिकीय ढांचा हो सकता है, लेकिन मुझे इसके बारे में पता नहीं है।

kmltniyi=(yi1,yi2,,yit)d(yi,yj)=t1k=1t(yikyjk)2। मिसिंग डेटा को निकटतम पड़ोसी नापने की योजना (कंप्यूटिंग कैलिस्की मानदंड के लिए) से संबंधित पूर्ववर्ती दूरी माप (गोवर समायोजन) के एक मामूली संशोधन के माध्यम से नियंत्रित किया जाता है। जैसा कि मैं खुद का प्रतिनिधित्व नहीं करता हूं कि आप वास्तविक डेटा कैसा दिखेंगे, मैं यह नहीं कह सकता कि यह काम करेगा। कम से कम, यह अनुदैर्ध्य विकास घटता, "बहुपद" आकार के साथ काम करता है, लेकिन मुझे संदेह है कि यह आपको बहुत ही विशिष्ट पैटर्न का पता लगाने की अनुमति देगा (जैसे स्थानीय मिनीमा / मैक्सिमा विशिष्ट समय बिंदुओं पर-बिंदुओं के बीच के समय-बिंदुओं के बीच भिन्नता, अनुवाद के लिए) उदाहरण)। यदि आप संभवतः गुमराह किए गए घटता को क्लस्टर करने में रुचि रखते हैं, तो आपको निश्चित रूप से अन्य समाधानों को देखना होगा; सांगल्ली एट अल। और उसके संदर्भ से कार्यात्मक क्लस्टरिंग और संरेखण , एक अच्छा प्रारंभिक बिंदु प्रदान कर सकता है।

kmlclusterizLongDataidt

library(lattice)
xyplot(var0 ~ date, data=test.data, groups=store, type=c("l","g"))

tw <- reshape(test.data, timevar="date", idvar="store", direction="wide")
parallel(tw[,-1], horizontal.axis=F, 
         scales=list(x=list(rot=45, 
                            at=seq(1,ncol(tw)-1,by=2), 
                            labels=substr(names(tw[,-1])[seq(1,ncol(tw)-1,by=2)],6,100), 
                            cex=.5)))

library(kml)
names(tw) <- c("id", paste("t", 1:(ncol(tw)-1)))
tw.cld <- as.cld(tw)
cld.res <- kml(tw.cld,nbRedrawing=5)
plot(tw.cld)

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

वैकल्पिक शब्द

वैकल्पिक शब्द


1
आपके बहुत विस्तृत जवाब के लिए धन्यवाद ची। मैं kmlअपने डेटा पर चल रहा हूं, लेकिन जैसा कि आपने सुझाव दिया है कि यह वक्र आकार के बजाय ज्यादातर परिमाण पर आधारित है, इसलिए मैं कुछ पूर्व-प्रसंस्करण चरणों की कोशिश कर रहा हूं कि क्या मैं मामलों में सुधार कर सकता हूं। संगल्ली एट अल द्वारा काम। मैं जो भी करना चाहता हूँ, उसके लिए बहुत आशाजनक लगता है - मुझे उनके दृष्टिकोण का कार्यान्वयन नहीं मिल रहा है। मेरे पास शायद इस परियोजना के लिए अपने काम का अपना कार्यान्वयन बनाने का समय नहीं है, जो भी हो। क्या आप किसी FOSS कार्यान्वयन के बारे में जानते हैं?
fmark

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

2
अगर मुझे कोई पुष्टि मिलती है तो मैं वापस रिपोर्ट करूँगा :) उनके पेपर k- मीन अलाइनमेंट फॉर कर्व क्लस्टरिंग में कुछ और कार्यान्वयन विवरण हैं जो किसी ऐसे व्यक्ति के लिए भी उपयोगी हो सकते हैं जो स्वयं ऐसा करना चाहते हैं।
fmark

1
केवल माध्य को क्यों न हटाएं (और शायद मानक विचलन द्वारा विभाजित करें), और फिर ऐसा करें? फिर परिणाम आकृति के बारे में बहुत अधिक होंगे, और परिमाण के बारे में कम ...
n

9

वैंग, शियाओज़े, केट स्मिथ, और रॉब ह्यंडमैन में एक सांख्यिकी दृष्टिकोण से एक वैकल्पिक दृष्टिकोण प्रकाशित किया गया था।

'समय श्रृंखला डेटा के लिए विशेषता-आधारित क्लस्टरिंग'। डाटा माइनिंग एंड नॉलेज डिस्कवरी 13, नं। 3 (2006): 335-364

वे लिखते हैं:

यह पत्र उनकी संरचनात्मक विशेषताओं के आधार पर समय श्रृंखला के क्लस्टरिंग के लिए एक विधि प्रस्तावित करता है। अन्य विकल्पों के विपरीत, यह विधि दूरी मीट्रिक का उपयोग करके मानों को क्लस्टर नहीं करती है, बल्कि यह समय श्रृंखला से निकाली गई वैश्विक विशेषताओं पर आधारित क्लस्टर है। फ़ीचर उपाय प्रत्येक व्यक्तिगत श्रृंखला से प्राप्त किए जाते हैं और एक अनियंत्रित तंत्रिका नेटवर्क एल्गोरिथ्म, स्व-आयोजन मानचित्र, या पदानुक्रम क्लस्टरिंग एल्गोरिदम सहित मनमाने क्लस्टरिंग एल्गोरिदम में खिलाया जा सकता है। समय श्रृंखला का वर्णन करने वाले वैश्विक उपाय सांख्यिकीय संचालन को लागू करने के द्वारा प्राप्त किए जाते हैं जो अंतर्निहित विशेषताओं को सर्वोत्तम रूप से कैप्चर करते हैं: प्रवृत्ति, मौसमीता, आवधिकता, धारावाहिक सहसंबंध, कटुता, कुरूपता, अराजकता, गैर-समानता और आत्म-समानता। निकाली गई वैश्विक उपायों का उपयोग करते हुए विधि क्लस्टर के बाद से, यह समय श्रृंखला की गतिशीलता को कम करता है और लापता या शोर डेटा के प्रति बहुत कम संवेदनशील होता है। हम आगे एक खोज तंत्र प्रदान करते हैं जो उस सुविधा सेट से सबसे अच्छा चयन ढूंढता है जिसे क्लस्टरिंग इनपुट के रूप में उपयोग किया जाना चाहिए।

आर कोड रोब के ब्लॉग पर उपलब्ध है ।


6

आप समय श्रृंखला के क्लस्टरिंग पर Eamonn Keogh (UC Riverside) का काम देख सकते हैं । उनकी वेबसाइट में बहुत सारे संसाधन हैं। मुझे लगता है कि वह मैटलैब कोड नमूने प्रदान करता है, इसलिए आपको इसका अनुवाद आर करना होगा।

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