2016-05-16 3 views
0

В настоящее время я получить 95% ДИ на медиане с помощью этогоВзвешенная медиана самозагрузки

x<-rnorm(100) 
     bootmed = apply(matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4), 1, median) 
    quantile(bootmed, c(.025, 0.975))[1]->a1 
    quantile(bootmed, c(.025, 0.975))[2]->a2 

Сейчас проблема заключается в том, что мне нужно сделать это для взвешенной медианы. Я использую взвешенные медианные функции здесь http://www.inside-r.org/packages/cran/matrixStats/docs/weightedMedian

поэтому я не только х с номерами, но и у с весами (runif (100)) - так что теперь я вычисляю

weightedMedian(x,runif(100)) 

но как эквивалент для вышеупомянутого бутстрапа?

+0

Идея ни от кого? – kutyw

ответ

0

Аргумент позволяет передавать необязательные аргументы в вашу функцию. Кроме того, вы также можете определить пользовательскую функцию. Предполагая, что ваши средние веса идентичны для всех строк, ответ на ваш вопрос выглядит следующим образом:

x <- rnorm(100) 
y <- rnorm(100) 
M <- matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4) 

bootmed = apply(M, 1, weightedMedian, w=y) 
# Or, alternatively.. 
bootmed = apply(M, 1, function(x) weightedMedian(x,y))