Быстрая интеграция с eCDF в R

10

У меня есть интегральное уравнение вида где - эмпирический cdf, а - функция , У меня есть сжатие отображения, и поэтому я пытаюсь решить интегральное уравнение с помощью последовательности теоремы Банаха о неподвижной точке.Р н г

T1(Икс)знак равно0Иксг(T1(Y)) dF^N(Y)
F^Nг

Однако в R это работает очень медленно, и я думаю, что это потому, что я интегрирую, используя функцию sum () для снова и снова.ИксF^N

Существует ли более быстрый способ интеграции с использованием эмпирического распределения с помощью такой функции, как integrate ()?

Новичок
источник
6
Хотя это действительно вопрос R, а не вопрос статистики (и, следовательно, он, вероятно, относится к stackoverflow) ... не могли бы вы опубликовать свой код? В R часто существует множество возможностей для получения значительных улучшений производительности во время выполнения, и без просмотра кода трудно сказать, какие из них могут применяться, если таковые имеются.
jbowman

Ответы:

14

F^N(T)знак равно1NΣязнак равно1Nя[Икся,)(T),
-г(T)dF^N(T)знак равно1NΣязнак равно1Nг(Икся),
integrate()R
x <- rnorm(10^6)
g <- function(t) exp(t) # say
mean(g(x))

должно быть супер быстро, потому что это векторизация.

Zen
источник
пожалуйста, обратите внимание, я добавил связанный вопрос о том, почему интеграл функции по эмпирическому распределению является средним значением функции, оцененной в наблюдаемых точках. math.stackexchange.com/questions/2340290/…
texmex