получить средства через образцы из начальной загрузки - PullRequest
0 голосов
/ 31 мая 2018

Я хочу получить средние значения и данные по 20 отобранным данным, но не знаю, как это сделать.Мой текущий код может дать мне средства в каждом образце, а не в разных.

## create data
data <- round(rnorm(100, 5, 3))
data[1:10]
## obtain 20 boostrap samples
## display the first of the boostrap samples

resamples <- lapply(1:20, function(i) sample(data, replace = T))

resamples[1]


## calculate the means for each bootstrap sample
r.mean <- sapply(resamples, mean)
r.median
## calculate the sd of the distribution of medians 
sqrt(var(r.median))

Из приведенного выше кода я получил 20 средних из каждой выборки данных и sd распределения средних.Как я могу получить 100 средних, каждое среднее из распределения 20 образцов?и то же самое для стандартного отклонения?

Большое спасибо !!

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Хотя ответ @konvas - это, вероятно, то, что вам нужно, я бы все же взглянул на базовый пакет boot, когда дело доходит до начальной загрузки.

Посмотрите, может ли следующий пример приблизить вас к тому, что вы пытаетесь сделать.

set.seed(6929)    # Make the results reproducible
data <- round(rnorm(100, 5, 3))

boot_mean <- function(data, indices) mean(data[indices])
boot_sd <- function(data, indices) sd(data[indices])

Runs <- 100
r.mean <- boot::boot(data, boot_mean, Runs)
r.sd <- boot::boot(data, boot_sd, Runs)

r.mean$t
r.sd$t

sqrt(var(r.mean$t))
#          [,1]
#[1,] 0.3152989

sd(r.mean$t)
#[1] 0.3152989

Теперь посмотрите распределение загруженных средств и стандартные ошибки.

op <- par(mfrow = c(1, 2))
hist(r.mean$t)
hist(r.sd$t)
par(op)
0 голосов
/ 31 мая 2018

Сделайте матрицу из ваших образцов

mat <- do.call(rbind, resamples)

Тогда

rowMeans(mat)

даст вам среднее значение "в пределах образца" и

colMeans(mat) 

черезвыборочное среднее.Для других величин, например стандартного отклонения, вы можете использовать apply, например apply(mat, 1, sd) или функции из пакета matrixStats, например matrixStats::rowSds(mat).

...