J'essaie d'apprendre Stan en R et comme défi amusant, j'essaie d'estimer l'emplacement d'un phare en fonction des éclairs observés. Mais les modèles que j'ai essayés ne convergent pas (Rhat! = 1) ou ont des paramètres estimés avec un grand écart.
Les données observées sont des éclairs d'un phare à 100 mètres de la ligne côtière (droite). L'angle est uniformément réparti, mais les éclairs observés le long de la côte sont à queue lourde.
n_flashes <- 50loc <- c (0, 100) angles <- runif (n_flashes, -pi / 2, pi / 2) angles_x <- loc [2] * tan (angles) clignote <- loc [1] + angles_x
Je veux estimer l'emplacement du phare en fonction du processus de génération de modèle actuel à stan. Voici mon modèle stan:
data {int<lower = 0> N; flashs réels [N];} paramètres {réel x_loc; real<lower = 0> y_loc; real<lower = -pi () / 2, supérieur = pi () / 2> angle [N];} modèle {x_loc ~ normal (0, 10); y_loc ~ normal (100, 10); pour (i dans 1: N) {clignote [i] ~ cauchy (x_loc + tan (angle [i]) * y_loc, 1); }}
(Note: je modélise l'observation flash avec un écart type de 1 mètre, car Stan me demande de donner une distribution pour les flashs [i]).
Ensuite, j'appelle le modèle de R:
n_flashes <- 50loc <- c (0, 100) angles <- runif (n_flashes, -pi / 2, pi / 2) angles_x <- loc [2] * tan (angles) clignote <- loc [1] + angles_xstan_input <- list () stan_input $ clignote <- flashesstan_input $ N <- n_flasheskltstan "<- n_flasheskltstan" data = stan_input)
Mais ce modèle a de gros Rhat
. Comment puis-je améliorer ce modèle pour éviter cela? Comment puis-je modéliser les angles en stan? Comment modéliseriez-vous l'emplacement d'un phare en vous basant sur les éclairs observés le long de la côte?