Ich habe Verkaufsdaten für eine Reihe von Filialen und möchte sie anhand der Form ihrer Kurven im Zeitverlauf kategorisieren. Die Daten sehen ungefähr so aus (sind aber offensichtlich nicht zufällig und enthalten einige fehlende Daten):
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)
Ich würde gerne wissen, wie ich anhand der Form der Kurven in R Cluster bilden kann . Ich hatte den folgenden Ansatz in Betracht gezogen:
- Erstellen Sie eine neue Spalte, indem Sie die Variable "var0" jedes Geschäfts für die gesamte Zeitreihe linear auf einen Wert zwischen 0,0 und 1,0 transformieren.
- Bündeln Sie diese transformierten Kurven mit dem
kml
Paket in R.
Ich habe zwei Fragen:
- Ist das ein vernünftiger explorativer Ansatz?
- Wie kann ich meine Daten in das Längsschnittdatenformat umwandeln,
kml
das es versteht? Beliebige R-Schnipsel wären sehr dankbar!
kml
?