Salutations,
J'effectue des recherches qui aideront à déterminer la taille de l'espace observé et le temps écoulé depuis le big bang. J'espère que vous pourrez aider!
J'ai des données conformes à une fonction linéaire par morceaux sur laquelle je veux effectuer deux régressions linéaires. Il y a un point où la pente et l'interception changent, et je dois (écrire un programme pour) trouver ce point.
Pensées?
regression
change-point
rhombidodécaèdre
la source
la source
Réponses:
Le
mcp
package peut le faire. Dites que vos données sontTout d'abord, simulons quelques données:
Voyons maintenant si nous pouvons récupérer le point de changement à 40 (et les valeurs des paramètres) en utilisant
mcp
:Tracez-le. Les lignes grises sont des tirages aléatoires de l'ajustement, montrant qu'il capture la tendance. La courbe bleue est l'emplacement estimé du point de changement:
Voyons les estimations des paramètres individuels.
int_
sont des interceptions, desx_
pentes sur x et descp_
points de changement:Avertissement: je suis le développeur de
mcp
.la source
Strucchange du package R peut vous aider. Regardez la vignette, elle a un bon aperçu de la façon de résoudre des problèmes similaires.
la source
la source
Il s'agit d'un problème de détection de point de changement (hors ligne). Notre discussion précédente fournit des références aux articles de revues et au code R. Regardez d'abord le «modèle de partition de produit» de Barry et Hartigan , car il gère les changements de pente et a des implémentations efficaces.
la source
De plus, le package segmenté m'a aidé avec des problèmes similaires dans le passé.
la source
segmented
ne peut pas modéliser les changements d'interception entre les segments - uniquement une interception pour le premier segment.J'ai construit sur la réponse de mbq que la recherche de toutes les possibilités. De plus, je fais ceci:
Pourquoi vérifier la signification? C'est parce que le point avec le SSE minimum n'a aucun sens si l'un des modèles par morceaux correspond très mal aux données. Cela peut se produire pour deux variables hautement corrélées sans point d'arrêt clair où les pentes changent.
Vérifions cette approche simple avec un cas de test simple:
Le point d'arrêt est évidemment nul. Utilisez le script R suivant:
Adaptez les modèles linéaires par morceaux pour toutes les combinaisons possibles:
Si nous vérifions les coefficients des deux modèles optimaux, ils seront très significatifs. Leur R2 sera également très élevé.
la source