Por ejemplo, tengo una serie de valores como los siguientes
data <- c(rnorm(10000,40,1500),rnorm(9000,-35,1400),rnorm(11000,30,1300))
No conozco la media, no conozco la sd de mis datos, y estoy particularmente interesado en el "signo de la media" de mis datos (puedo hacer una prueba t pero la mayoría de las veces no es significativa, e incluso si lo es, sólo cuenta la mitad de la historia), y sería mejor saber si cambia con el tiempo. (sin embargo, creo que los datos no son una serie temporal, es decir, los puntos de datos consecutivos son independientes entre sí). Pero, también dudo que mis datos puedan tener diferentes distribuciones de base (supuestamente normales) en diferentes etapas de tiempo.
Entonces, ¿cuál es la forma estándar de analizar estos datos? Puedes ver que el sd de mis datos es bastante grande. ¿Tengo que fingir que es una serie temporal y descomponerla para ver la tendencia?
df <- data.frame(x=1:30000, data=data)
ggplot(df, aes(x=x)) + geom_bar(aes(y=cumsum(data)), width=1, stat="identity")
Este es el gráfico de los valores acumulados de los datos. ¿Se puede saber si procede de una distribución normal o de varias distribuciones normales con diferentes medias y varianzas? Si es posible, ¿qué suposiciones tengo que hacer?
Comparado con esto:
data <- rnorm(30000, 3, 1800)
df <- data.frame(x=1:30000, data=data)
ggplot(df, aes(x=x)) + geom_bar(aes(y=cumsum(data)), width=1, stat="identity")
Actualización:
Supongo que changepoint
paquete en R es lo suficientemente bueno
> a <- cpt.meanvar(data=c(rnorm(10000,40,1500),rnorm(9000,-35,1400),rnorm(11000,30,1300)), method="BinSeg")
> summary(a)
Changepoint type : Change in mean and variance
Method of analysis : BinSeg
Test Statistic : Normal
Type of penalty : SIC with value, 20.61791
Maximum no. of cpts : 5
Changepoint Locations : 10264 19013
> b <- cpt.meanvar(data=rnorm(30000, 3, 1800), method="BinSeg")
> summary(b)
Changepoint type : Change in mean and variance
Method of analysis : BinSeg
Test Statistic : Normal
Type of penalty : SIC with value, 20.61791
Maximum no. of cpts : 5
Changepoint Locations :
PELT daría algunos pequeños intervalos pensó que tenía pena de incluir el número de puntos de cambio.
> a <- cpt.meanvar(penalty="SIC1",data=c(rnorm(10000,40,1500),rnorm(9000,-35,1400),rnorm(11000,30,1300)), method="PELT")
> summary(a)
Changepoint type : Change in mean and variance
Method of analysis : PELT
Test Statistic : Normal
Type of penalty : SIC1 with value, 30.92686
Maximum no. of cpts : Inf
Changepoint Locations : 10049 18984 18987
>
> a <- cpt.meanvar(penalty="SIC1",data=c(rnorm(10000,40,1500),rnorm(9000,-35,1400),rnorm(11000,30,1300)), method="PELT")
> summary(a)
Changepoint type : Change in mean and variance
Method of analysis : PELT
Test Statistic : Normal
Type of penalty : SIC1 with value, 30.92686
Maximum no. of cpts : Inf
Changepoint Locations : 8810 8814 18962