Ho dati di vendita per una serie di punti vendita e desidero categorizzarli in base alla forma delle loro curve nel tempo. I dati sono più o meno così (ma ovviamente non sono casuali e hanno alcuni dati mancanti):
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)
Vorrei sapere come posso raggruppare in base alla forma delle curve in R. Avevo considerato il seguente approccio:
- Crea una nuova colonna trasformando linearmente var0 di ciascun negozio in un valore compreso tra 0,0 e 1,0 per l'intera serie temporale.
- Raggruppa queste curve trasformate usando il
kml
pacchetto in R.
Ho due domande:
- È un approccio esplorativo ragionevole?
- Come posso trasformare i miei dati nel formato dati longitudinale che
kml
capirà? Qualsiasi frammento di R sarebbe molto apprezzato!
kml
?