Saludos,
Estoy realizando una investigación que ayudará a determinar el tamaño del espacio observado y el tiempo transcurrido desde el Big Bang. ¡Ojalá puedas ayudar!
Tengo datos que se ajustan a una función lineal por partes en la que quiero realizar dos regresiones lineales. Hay un punto en el que la pendiente y la intersección cambian, y necesito (escribir un programa para) encontrar este punto.
Pensamientos?
regression
change-point
romdodecaedro
fuente
fuente
Respuestas:
El
mcp
paquete puede hacer esto. Digamos que sus datos sonPrimero, simulemos algunos datos:
Ahora veamos si podemos recuperar el punto de cambio en 40 (y los valores de los parámetros) usando
mcp
:Tramalo. Las líneas grises son dibujos aleatorios del ajuste, lo que muestra que captura la tendencia. La curva azul es la ubicación estimada del punto de cambio:
Veamos las estimaciones de los parámetros individuales.
int_
son intersecciones,x_
son pendientes en xycp_
son puntos de cambio:Descargo de responsabilidad: soy el desarrollador de
mcp
.fuente
R strucchange de paquete puede ayudarlo. Mire la viñeta, tiene una buena visión general de cómo resolver problemas similares.
fuente
Si el número de puntos no es demasiado grande, puede probar todas las posibilidades. Vamos a suponer que los puntos son , donde . Entonces, puede hacer un bucle con de a y ajustar dos líneas a ambos y . Finalmente, elige para el cual la suma de la suma de los residuos al cuadrado para ambas líneas es mínima.i = 1 , . . , N j 2 N - 2 { X 1 , . . . , X j } { X ( j + 1 ) , . . . , X N } jXyo= ( xyo, yyo) i = 1 , . . , N j 2 norte- 2 { X1, . . . , Xj} { X( j + 1 ), . . . , Xnorte} j
fuente
Este es un problema de detección de punto de cambio (fuera de línea). Nuestra discusión anterior proporciona referencias a artículos de revistas y código R. Mire primero el "modelo de partición del producto" de Barry y Hartigan , porque maneja los cambios en la pendiente y tiene implementaciones eficientes.
fuente
También el paquete segmentado me ha ayudado con problemas similares en el pasado.
fuente
segmented
no puede modelar cambios de intercepción entre segmentos, solo una intercepción para el primer segmento.Me basé en la respuesta de mbq que busca todas las posibilidades. Además, hago esto:
¿Por qué verificar la importancia? Esto se debe a que el punto con el SSE mínimo no tiene sentido si alguno de los modelos por partes se ajusta muy mal a los datos. Esto puede suceder para dos variables altamente correlacionadas sin un punto de ruptura claro donde cambian las pendientes.
Veamos este enfoque simple con un caso de prueba fácil:
El punto de ruptura es obviamente cero. Use el siguiente script R:
Ajuste modelos lineales por partes para todas las combinaciones posibles:
Si verificamos los coeficientes para los dos modelos óptimos, serán altamente significativos. Su R2 también será muy alto.
fuente