Saudações,
Estou realizando pesquisas que ajudarão a determinar o tamanho do espaço observado e o tempo decorrido desde o big bang. Espero que você possa ajudar!
Eu tenho dados em conformidade com uma função linear por partes na qual desejo executar duas regressões lineares. Há um ponto em que a inclinação e a interceptação mudam, e eu preciso (escrever um programa para) encontrar esse ponto.
Pensamentos?
regression
change-point
rhombidodecahedron
fonte
fonte
Respostas:
O
mcp
pacote pode fazer isso. Digamos que seus dados sejamPrimeiro, vamos simular alguns dados:
Agora vamos ver se podemos recuperar o ponto de mudança em 40 (e os valores dos parâmetros) usando
mcp
:Traçar. As linhas cinza são desenhos aleatórios do ajuste, mostrando que ele captura a tendência. A curva azul é o local estimado do ponto de mudança:
Vamos ver as estimativas de parâmetros individuais.
int_
são interceptações,x_
são inclinações em x ecp_
são pontos de mudança:Disclaimer: Eu sou o desenvolvedor de
mcp
.fonte
A distribuição de pacotes R pode ajudá-lo. Veja a vinheta, ela tem uma boa visão geral de como resolver problemas semelhantes.
fonte
fonte
Este é um problema de detecção de ponto de mudança (offline). Nossa discussão anterior fornece referências a artigos de periódicos e código R. Veja primeiro o "modelo de partição de produtos" de Barry e Hartigan , porque ele lida com mudanças na inclinação e possui implementações eficientes.
fonte
Além disso, o pacote segmentado me ajudou com problemas semelhantes no passado.
fonte
segmented
não é possível modelar alterações de interceptação entre segmentos - apenas uma interceptação para o primeiro segmento.Eu desenvolvi a resposta do mbq que procurava por todas as possibilidades. Além disso, faço isso:
Por que verificar o significado? Isso ocorre porque o ponto com o SSE mínimo não faz sentido se um dos dois modelos se encaixa muito mal nos dados. Isso pode acontecer para duas variáveis altamente correlacionadas sem um ponto de interrupção claro, onde as inclinações mudam.
Vamos verificar essa abordagem simples com um caso de teste fácil:
O ponto de interrupção é obviamente zero. Use o seguinte script R:
Ajuste modelos lineares por partes para todas as combinações possíveis:
Se verificarmos os coeficientes para os dois modelos ótimos, eles serão altamente significativos. O R2 deles também será muito alto.
fonte