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!
kml
?