Varias direcciones para el análisis de datos longitudinales fueron discutidos en el enlace proporcionado por @Jeromy, así que le sugiero que lea detenidamente, especialmente aquellos funcional el análisis de los datos. Intente buscar en google por "Agrupación Funcional de Datos Longitudinales", o el RITMO de Matlab toolbox que se refiere específicamente con el modelo basado en la agrupación de muestras irregulares trayectorias (Peng y Müller, basados en la Distancia de la agrupación de escasamente observada procesos estocásticos, con aplicaciones a las subastas en línea, Anales de la Estadística Aplicada 2008 2: 1056). Me imagino que puede ser un buen marco estadístico para el tiempo financiero de la serie, pero yo no sé acerca de eso.
El kml
paquete básicamente se basa en k-means, de trabajo (por defecto) en distancias euclídeas entre los t mediciones observadas en n los individuos. Lo que se llama una trayectoria es sólo la serie de valores observados para el individuo i$$, yi=(yi1,yi2,…,yes) y d(yi,yj)=√t−1∑tk=1(yik−yjk)2. Los datos faltantes se maneja a través de una ligera modificación de la anterior medida de distancia (Gower ajuste), asociada a un vecino más cercano-como la imputación de un esquema (para el cálculo de Calinski criterio). Como no me representan a mí mismo lo que los datos reales se vería, no puedo decir si funciona. Al menos, se trabajo con el crecimiento longitudinal de las curvas, "polinomio" de la forma, pero dudo que le permiten detectar muy patrones específicos (como local mínimos/máximos de tiempo específico-puntos con los puntos de tiempo diferentes entre los grupos, por ejemplo la traducción). Si usted está interesado en la agrupación posiblemente desalineados curvas, entonces usted definitivamente tiene que buscar otras soluciones; la agrupación Funcional y la alineación, de Sangalli et al., y las referencias en él puede proporcionar un buen punto de partida.
A continuación, voy a mostrar algo de código que puede ayudar a experimentar con ella (mi semilla generalmente se establece en el 101, si desea reproducir los resultados). Básicamente, para el uso de kml
sólo tienes que construir un clusterizLongData
objeto ( id
número de la primera columna, y el t mediciones en las columnas siguientes).
library(lattice)
xyplot(var0 ~ date, data=test.data, groups=store, type=c("l","g"))
tw <- reshape(test.data, timevar="date", idvar="store", direction="wide")
parallel(tw[,-1], horizontal.axis=F,
scales=list(x=list(rot=45,
at=seq(1,ncol(tw)-1,by=2),
labels=substr(names(tw[,-1])[seq(1,ncol(tw)-1,by=2)],6,100),
cex=.5)))
library(kml)
names(tw) <- c("id", paste("t", 1:(ncol(tw)-1)))
tw.cld <- as.cld(tw)
cld.res <- kml(tw.cld,nbRedrawing=5)
plot(tw.cld)
Las siguientes dos figuras son los crudos datos simulados y las cinco de la solución de clúster (según Calinski criterio, también se utiliza en el fpc paquete). No muestro la versión a escala.
![alt text]()
![alt text]()