Tôi có dữ liệu bán hàng cho một loạt các cửa hàng và muốn phân loại chúng dựa trên hình dạng đường cong của chúng theo thời gian. Dữ liệu trông gần giống như thế này (nhưng rõ ràng không phải là ngẫu nhiên và có một số dữ liệu bị thiếu):
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)
Tôi muốn biết làm thế nào tôi có thể co cụm dựa trên hình dạng của các đường cong trong R. Tôi đã xem xét phương pháp sau:
- Tạo một cột mới bằng cách chuyển đổi tuyến tính var0 của mỗi cửa hàng thành giá trị trong khoảng từ 0,0 đến 1,0 cho toàn bộ chuỗi thời gian.
- Phân cụm các đường cong biến đổi này bằng cách sử dụng
kml
gói trong R.
Tôi có hai câu hỏi:
- Đây có phải là một cách tiếp cận thăm dò hợp lý?
- Làm cách nào tôi có thể chuyển đổi dữ liệu của mình sang định dạng dữ liệu theo chiều dọc
kml
sẽ hiểu? Bất kỳ đoạn R sẽ được đánh giá cao!
kml
?