J'ai une base de données d'événements (c'est-à-dire une variable de dates) et des covariables associées.
Les événements sont générés par le processus de Poisson non stationnaire, le paramètre étant une fonction inconnue (mais peut-être linéaire) de certaines covariables.
Je pense que le package NHPoisson existe uniquement à cette fin; mais après 15 heures de recherches infructueuses, je suis encore loin de savoir comment l'utiliser.
Heck, j'ai même essayé de lire les deux ouvrages référencés: Coles, S. (2001). Une introduction à la modélisation statistique des valeurs extrêmes. Springer. Casella, G. et Berger, RL, (2002). Inférence statistique. Brooks / Cole.
Le seul exemple dans la documentation de fitPP.fun ne semble pas correspondre à ma configuration; Je n'ai pas de valeurs extrêmes! J'ai juste des événements nus.
Quelqu'un peut-il m'aider avec un exemple simple d'ajustement d'un processus de Poisson avec le paramètre avec une seule covariable , et en supposant que ? Je suis intéressé par l'estimation de et . Je fournis un ensemble de données à deux colonnes avec des temps d'événements (disons, mesurés en secondes après un certain temps arbitraire ) et une autre colonne avec des valeurs de la covariable ?
la source
Réponses:
Montage d'un processus de Poisson stationnaire
Tout d'abord, il est important de savoir quel type de données d'entrée NHPoisson a besoin.
Avant tout, NHPoisson a besoin d'une liste d' indices de moments d'événements. Si nous enregistrons l'intervalle de temps et le nombre d'événements dans l'intervalle de temps, alors je dois le traduire en une seule colonne de dates, éventuellement "étalant" les dates sur l'intervalle sur lequel elles sont enregistrées.
Pour la simplicité, je suppose que nous utilisons du temps mesuré en secondes et que la "seconde" est l'unité naturelle de .λ
Simulons les données d'un processus de Poisson simple et stationnaire, qui a événements par minute:λ = 1
Le
simNHP.fun
fait la simulation. Nous utilisons pour obteniraux$posNH
, une variable avec des indices de moments de déclenchement d'événements simulés. Nous pouvons voir que nous avons environ 60 * 24 = 1440 événements, en vérifiant `length (aux $ posNH).Maintenant, rétroconcevons le avec :λ
fitPP.fun
Étant donné que la fonction ne prend que les indices d'événements, elle a également besoin d'une mesure du nombre d'indices possibles. Et c'est une partie très déroutante , car dans le vrai processus de Poisson, il est possible d'avoir un nombre infini d'événements possibles (si seulement ). Mais du point de vue de la, nous devons choisir une unité de temps suffisamment petite. Nous le choisissons si petit que nous pouvons supposer au maximum un événement par unité de temps.λ > 0
fitPP
Donc, ce que nous faisons en fait, c'est que nous approchons le processus de Poisson avec une séquence granulaire d'événements binomiaux, chaque événement s'étend exactement sur une unité de temps, par analogie avec le mécanisme dans lequel la distribution de Poisson peut être considérée comme une limite de la distribution binomiale dans la loi d'événements rares .
Une fois que nous l'avons compris, le reste est beaucoup plus simple (du moins pour moi).
Pour obtenir l'approximation de notre me dois prendre exposant du paramètre ajusté , . Et voici une autre information importante, qui manque dans le manuel : avec nous nous adaptons au logarithme de , pas à lui-même.λ λ λ
beta
exp(coef(out)[1])
NHPoisson
Montage d'un processus de Poisson non stationnaire
NHPoisson
s'adapte au modèle suivant:c'est-à-dire qu'il adapte la combinaison linéaire des paramètres (appelés covariables) au logarithme du .P⃗ λ
Préparons maintenant le processus de Poisson non stationnaire.
Tout comme auparavant,
aux$posNH
nous donnerait des indices d'événements, mais cette fois nous remarquerons que l'intensité des événements diminue exponentiellement avec le temps. Et le taux de cette diminution est un paramètre que nous voulons estimer.Il est important de noter que nous devons mettre en
all.seconds
tant que covariable, nonlambdas
. L'exponentiation / logaritmisation se fait en interne par lefitPP.fun
. BTW, en dehors des valeurs prédites, la fonction crée deux graphiques par défaut.La dernière pièce est une fonction couteau suisse pour la validation du modèle,
globalval.fun
.Entre autres choses, la fonction divise le temps en intervalles, chacun étant
lint
long, il est donc possible de créer des graphiques bruts qui comparent l'intensité prédite avec l'intensité observée.la source