Tengo datos de ventas para una serie de puntos de venta, y quiero clasificarlos según la forma de sus curvas a lo largo del tiempo. Los datos se ven más o menos así (pero obviamente no son aleatorios y faltan algunos datos):
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)
Me gustaría saber cómo puedo agrupar en función de la forma de las curvas en R. He considerado el siguiente enfoque:
- Cree una nueva columna transformando linealmente var0 de cada tienda a un valor entre 0.0 y 1.0 para toda la serie de tiempo.
- Agrupe estas curvas transformadas usando el
kml
paquete en R.
Tengo dos preguntas:
- ¿Es este un enfoque exploratorio razonable?
- ¿Cómo puedo transformar mis datos en el formato de datos longitudinal que
kml
comprenda? ¡Cualquier fragmento R sería muy apreciado!
kml
?