Intégration rapide avec eCDF dans R

10

J'ai une équation intégrale de la forme où est le cdf empirique et est une fonction . J'ai une cartographie de contraction et j'essaie donc de résoudre l'équation intégrale en utilisant la séquence du théorème de Banach Fixed Point.

T1(x)=0xg(T1(y)) dF^n(y)
F^ng

Cependant, cela fonctionne très lentement dans R et je pense que c'est parce que j'intègre en utilisant la fonction sum () pour encore et encore.xF^n

Existe-t-il un moyen plus rapide d'intégration en utilisant la distribution empirique avec une fonction telle que integr ()?

Débutant
la source
6
Bien que ce soit vraiment une question R plutôt qu'une question de statistiques (et appartient donc probablement à stackoverflow) ... pourriez-vous poster votre code? Dans R, il existe souvent de nombreuses possibilités d'obtenir de grandes améliorations des performances d'exécution et sans voir le code, il est difficile de dire lequel, le cas échéant, pourrait s'appliquer.
jbowman

Réponses:

14

Définissant la fonction de distribution empirique il s'ensuit que Par conséquent, vous n'avez pas besoin d'utiliser pour résoudre ce problème. Ce genre de code

F^n(t)=1ni=1nI[xi,)(t),
g(t)dF^n(t)=1ni=1ng(xi).
integrate()R
x <- rnorm(10^6)
g <- function(t) exp(t) # say
mean(g(x))

devrait être super rapide car il est vectorisé.

Zen
la source
veuillez noter que j'ai ajouté une question connexe expliquant pourquoi l'intégrale d'une fonction par rapport à la distribution empirique est la moyenne de la fonction évaluée aux points observés. math.stackexchange.com/questions/2340290/...
texmex