বক্র আকারের উপর ভিত্তি করে টাইম-সিরিজ ক্লাস্টারিং করা কি সম্ভব?


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)

আমি জানতে চাই যে কীভাবে আমি আর- তে কার্ভগুলির আকারের উপর ভিত্তি করে গুচ্ছ করতে পারি I আমি নিম্নলিখিত পদ্ধতির বিষয়টি বিবেচনা করেছি:

  1. সম্পূর্ণ স্টোর সিরিজের জন্য প্রতিটি স্টোরের ভার0কে 0.0 এবং 1.0 এর মধ্যে মান হিসাবে রুপান্তরিত করে একটি নতুন কলাম তৈরি করুন।
  2. আর এ kmlপ্যাকেজটি ব্যবহার করে এই রূপান্তরিত কার্ভগুলি ক্লাস্টার করুন ।

আমার দুটি প্রশ্ন আছে:

  1. এটি কি যুক্তিসঙ্গত অনুসন্ধানের পদ্ধতি?
  2. আমি কীভাবে আমার ডেটা অনুদায়ী ডাটা ফর্ম্যাটে রূপান্তর করতে পারি যা kmlবুঝতে হবে? যে কোনও আর-র স্নিপেটগুলি প্রশংসিত হবে!

2
আপনাকে নির্দিষ্ট অনুদৈর্ঘ্য ডেটা নির্দিষ্ট আবক্র ক্লাস্টারিং উপর আগের প্রশ্নটি থেকে কয়েক ধারনা পেতে পারে stats.stackexchange.com/questions/2777/...
Jeromy Anglim

1
@ জারোমি অ্যাংলিন লিঙ্কটির জন্য ধন্যবাদ। আপনার কি ভাগ্য ছিল kml?
fmark

আমি একটি দ্রুত চেহারা পেয়েছি, তবে এই মুহুর্তের জন্য আমি পৃথক সময় সিরিজের নির্বাচিত বৈশিষ্ট্যগুলির (যেমন, গড়, প্রাথমিক, চূড়ান্ত, পরিবর্তনশীলতা, আকস্মিক পরিবর্তনের উপস্থিতি ইত্যাদি) উপর ভিত্তি করে একটি কাস্টমাইজড ক্লাস্টার বিশ্লেষণ ব্যবহার করছি using
জেরোমি অ্যাংলিম


@ রব এই প্রশ্নটি অনিয়মিত সময় অন্তর ধরে নিয়েছে বলে মনে হচ্ছে না, তবে প্রকৃতপক্ষে তারা একে অপরের কাছাকাছি রয়েছে (আমার লেখার সময় আমি অন্য প্রশ্নটির কথা মনে করিনি))
chl

উত্তর:


26

দ্রাঘিমাংশীয় তথ্য বিশ্লেষণের জন্য বেশ কয়েকটি দিকনির্দেশগুলি @ জারমির সরবরাহিত লিঙ্কটিতে আলোচনা করা হয়েছিল, তাই আমি আপনাকে এগুলি সাবধানে পড়ার পরামর্শ দিচ্ছি, বিশেষত কার্যকরী তথ্য বিশ্লেষণের ক্ষেত্রে। "লম্বিটুডিনাল ডেটার ফাংশনাল ক্লাস্টারিং", বা পিএসিই মাতলাব টুলবক্সের জন্য গুগল করার চেষ্টা করুন যা বিশেষত অনিয়মিতভাবে নমুনাযুক্ত ট্র্যাজকোরিজের মডেল-ভিত্তিক ক্লাস্টারিংয়ের সাথে সম্পর্কিত (পেং এবং মেলার, স্প্রেসিলি পর্যবেক্ষণ স্টোকাস্টিক প্রক্রিয়াগুলির দূরত্ব-ভিত্তিক ক্লাস্টারিং, অনলাইন নিলামের অ্যাপ্লিকেশন সহ , ফলিত পরিসংখ্যানগুলির অ্যানালিসসমূহ ২০০৮ 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)

পরবর্তী দুটি চিত্র হ'ল কাঁচা সিমুলেটেড ডেটা এবং ফাই-ক্লাস্টার সলিউশন (ক্যালিনস্কি মাপদণ্ড অনুসারে, এফপিসি প্যাকেজটিতেও ব্যবহৃত হয় )। আমি স্কেলড সংস্করণ দেখাব না ।

বিকল্প পাঠ

বিকল্প পাঠ


1
আপনার খুব বিস্তারিত উত্তর চি জন্য ধন্যবাদ। আমি kmlআমার ডেটা চালিয়ে যাচ্ছি, তবে আপনি যেমন পরামর্শ দিয়েছিলেন এটি বেশিরভাগ বক্ররেখার চেয়ে বিশালতার উপর ভিত্তি করে ক্লাস্টার হচ্ছে, সুতরাং আমি কিছু প্রাক-প্রসেসিং পদক্ষেপ চেষ্টা করছি যাতে আমি বিষয়গুলির উন্নতি করতে পারি কিনা তা দেখার জন্য। সাঙ্গাল্লি এট আল দ্বারা রচনা। আমি যা করতে চাই তার জন্য খুব প্রতিশ্রুতিবদ্ধ দেখাচ্ছে - তবে আমি তাদের পদ্ধতির কোনও প্রয়োগ খুঁজে পাচ্ছি না। যদিও এই প্রকল্পটির জন্য তাদের নিজস্ব কাজটি বাস্তবায়নের জন্য আমার সম্ভবত সময় নেই। আপনি কোনও FOSS বাস্তবায়ন সম্পর্কে সচেতন?
fmark

@fmark আমার জ্ঞানের কোনও ওএসএস বাস্তবায়ন নেই (যদিও কাজটি বেশ সাম্প্রতিক, যদিও); তারা কে-মানে এবং কে-মেডোইডগুলি ব্যবহার করে যা উভয়ই আর-তে উপলব্ধ my তার জন্য, আপনি মোর্ফোমেট্রি / প্রোক্রাস্টে বিশ্লেষণ দেখে বা মতলব পিএসিই সরঞ্জাম সরঞ্জামটির কোড অনুসন্ধান করে অতিরিক্ত ইনফস খুঁজে পেতে পারেন (তবে এটি ইএম বা এই জাতীয় জিনিসগুলি পূর্ণ হওয়া উচিত)। আমার সেরা পরামর্শটি হ'ল: লেখককে তাদের অ্যালগোরিদম বিনা মূল্যে বাস্তবায়নের জন্য জিজ্ঞাসা করুন।
chl

2
আমি যদি ইতিবাচক পাই তবে আমি ফিরে রিপোর্ট করব :) কার্ভ ক্লাস্টারিংয়ের জন্য তাদের কাগজের কে-মেন্যুয়াল প্রান্তিককরণে আরও কিছু বাস্তবায়ন বিশদ রয়েছে যা এটি নিজেরাই করতে চাইলে কারও পক্ষে কার্যকর হতে পারে।
fmark

1
কেন কেবল গড়টি সরান না (এবং সম্ভবত স্ট্যান্ডার্ড ডিভেশন দ্বারা বিভাজন), এবং তারপরে এটি করুন? তারপরে ফলাফলগুলি আকৃতি সম্পর্কে আরও বেশি হবে, এবং মাত্রা সম্পর্কে কম হবে ...
নট 101

9

ওয়াং, জিয়াওহে, কেট স্মিথ এবং রব হ্যান্ডম্যানের স্ট্যাটাসের মাধ্যমে নিয়মিত একটি বিকল্প পদ্ধতি প্রকাশিত হয়েছিল।

'টাইম সিরিজ ডেটার জন্য চরিত্রগত-ভিত্তিক ক্লাস্টারিং'। ডেটা মাইনিং এবং নলেজ আবিষ্কার 13, নং। 3 (2006): 335–364

তারা লিখে:

এই কাগজটি তাদের কাঠামোগত বৈশিষ্ট্যগুলির উপর ভিত্তি করে টাইম সিরিজের ক্লাস্টারিংয়ের জন্য একটি পদ্ধতির প্রস্তাব দেয়। অন্যান্য বিকল্পের থেকে পৃথক, এই পদ্ধতিটি দূরত্বের মেট্রিক ব্যবহার করে ক্লাস্টার পয়েন্টের মানগুলি নয়, বরং সময় সিরিজ থেকে নিষ্কাশিত বৈশ্বিক বৈশিষ্ট্যের উপর ভিত্তি করে ক্লাস্টার করে। বৈশিষ্ট্যটির পদক্ষেপগুলি প্রতিটি স্বতন্ত্র সিরিজ থেকে প্রাপ্ত হয় এবং একটি অকার্যকর নিউরাল নেটওয়ার্ক অ্যালগরিদম, স্ব-সংগঠিত মানচিত্র, বা শ্রেণিবদ্ধ ক্লাস্টারিং অ্যালগরিদম সহ নির্বিচারে ক্লাস্টারিং অ্যালগরিদমে খাওয়ানো যেতে পারে। সময়ের সিরিজ বর্ণনা করে বিশ্বব্যাপী ব্যবস্থাগুলি পরিসংখ্যানমূলক ক্রিয়াকলাপ প্রয়োগ করে প্রাপ্ত করা হয় যা অন্তর্নিহিত বৈশিষ্ট্যগুলিকে সর্বোত্তমভাবে ক্যাপচার করে: প্রবণতা, seasonতু, সাময়িকী, ক্রমিক সম্পর্ক, স্কিউনেস, কুর্তোসিস, বিশৃঙ্খলা, অরেখা এবং স্ব-মিল। যেহেতু নিষ্কাশন করা বৈশ্বিক ব্যবস্থা ব্যবহার করে পদ্ধতি ক্লাস্টারগুলি, এটি সময় সিরিজের মাত্রিকতা হ্রাস করে এবং অনুপস্থিত বা গোলমাল ডেটা সম্পর্কে খুব কম সংবেদনশীল। ক্লাস্টারিং ইনপুট হিসাবে ব্যবহার করা উচিত এমন বৈশিষ্ট্য সেট থেকে সেরা নির্বাচন খুঁজে পেতে আমরা আরও একটি অনুসন্ধান পদ্ধতি সরবরাহ করি।

র কোডটি রবের ব্লগে উপলব্ধ


6

আপনি সময় সিরিজ ক্লাস্টারিংয়ে ইমন কেওগের (ইউসি রিভারসাইড) কাজ দেখতে পারেন । তাঁর ওয়েবসাইটে প্রচুর সংস্থান রয়েছে। আমি মনে করি তিনি মাতলাব কোডের নমুনা সরবরাহ করেন, সুতরাং আপনাকে এটি আরতে অনুবাদ করতে হবে d

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.