Schnelle Integration in eCDF in R.

10

Ich habe eine Integralgleichung der Form wobei das empirische cdf ist und eine Funktion ist . Ich habe eine Kontraktionsabbildung und versuche daher, die Integralgleichung mithilfe der Banach-Fixpunktsatzsequenz zu lösen.

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

Dies läuft jedoch in R sehr langsam und ich denke, das liegt daran, dass ich immer wieder die Funktion sum () für .xF^n

Gibt es eine schnellere Möglichkeit zur Integration mithilfe der empirischen Verteilung mit einer Funktion wie integrieren ()?

Neuling
quelle
6
Obwohl dies wirklich eher eine R-Frage als eine Statistikfrage ist (und daher wahrscheinlich zum Stackoverflow gehört) ... könnten Sie Ihren Code posten? In R gibt es häufig mehrere Möglichkeiten, um die Leistung der Laufzeit erheblich zu verbessern, und ohne den Code zu sehen, ist es schwer zu sagen, welche möglicherweise zutreffen.
Jbowman

Antworten:

14

Wenn man die empirische Verteilungsfunktion folgt daraus Daher müssen Sie dieses Problem nicht verwenden , um es zu lösen. Diese Art von 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))

sollte super schnell sein, weil es vektorisiert ist.

Zen
quelle
Bitte beachten Sie, dass ich eine verwandte Frage hinzugefügt habe, warum das Integral einer Funktion in Bezug auf die empirische Verteilung der Durchschnitt der an den beobachteten Punkten bewerteten Funktion ist. math.stackexchange.com/questions/2340290/…
texmex