Saya memiliki data penjualan untuk serangkaian outlet, dan ingin mengategorikannya berdasarkan bentuk kurva mereka dari waktu ke waktu. Data terlihat kurang lebih seperti ini (tetapi jelas tidak acak, dan memiliki beberapa data yang hilang):
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)
Saya ingin tahu bagaimana saya bisa mengelompokkan berdasarkan bentuk kurva di R. Saya telah mempertimbangkan pendekatan berikut:
- Buat kolom baru dengan mengubah secara linear setiap var0 toko ke nilai antara 0,0 dan 1,0 untuk seluruh rangkaian waktu.
- Cluster kurva yang diubah ini menggunakan
kml
paket dalam R.
Saya punya dua pertanyaan:
- Apakah ini pendekatan eksplorasi yang masuk akal?
- Bagaimana saya bisa mengubah data saya menjadi format data longitudinal yang
kml
akan mengerti? Cuplikan R akan sangat dihargai!
r
time-series
clustering
fmark
sumber
sumber
kml
?Jawaban:
Beberapa arahan untuk menganalisis data longitudinal dibahas dalam tautan yang disediakan oleh @Jeromy, jadi saya akan menyarankan Anda untuk membacanya dengan cermat, terutama pada analisis data fungsional. Coba googling untuk "Clustering Fungsional Data Longitudinal", atau kotak alat PACE Matlab yang secara khusus berkaitan dengan pengelompokan berbasis model lintasan sampel tidak teratur (Peng dan Müller, pengelompokan berbasis jarak dari proses stokastik yang jarang diamati, dengan aplikasi untuk lelang online , Annals of Applied Statistics 2008 2: 1056). Saya bisa membayangkan bahwa mungkin ada kerangka kerja statistik yang baik untuk seri waktu keuangan, tetapi saya tidak tahu tentang itu.
kml
kml
clusterizLongData
id
Dua angka berikutnya adalah data simulasi mentah dan solusi lima klaster (sesuai dengan kriteria Calinski, juga digunakan dalam paket fpc ). Saya tidak menunjukkan versi skala .
sumber
kml
menjalankan data saya, tetapi seperti yang Anda sarankan itu sebagian besar berdasarkan pada besarnya bukan bentuk kurva, jadi saya mencoba beberapa langkah pra-pemrosesan untuk melihat apakah saya dapat memperbaiki masalah. Karya Sangalli et al. terlihat sangat menjanjikan untuk apa yang ingin saya lakukan - saya tidak dapat menemukan implementasi dari pendekatan mereka. Saya mungkin tidak punya waktu untuk membuat implementasi pekerjaan mereka sendiri untuk proyek ini, bagaimanapun juga. Apakah Anda mengetahui adanya implementasi FOSS?Pendekatan alternatif diterbitkan oleh stats.se biasa di Wang, Xiaozhe, Kate Smith, dan Rob Hyndman.
Mereka menulis:
Kode R tersedia di blog Rob .
sumber
Anda bisa melihat karya Eamonn Keogh (UC Riverside) tentang pengelompokan seri waktu. Situs webnya memiliki banyak sumber daya. Saya pikir dia memberikan contoh kode Matlab, jadi Anda harus menerjemahkan ini ke R.
sumber