Как я могу построить среднее? - PullRequest
2 голосов
/ 01 ноября 2019

Я пытаюсь использовать симуляции, от 1 до 1000 выборок из популяции со средним значением 50 и стандартным отклонением 10. Рассчитать среднее значение для каждой выборки и составить график, показывающий, как это значение меняется по мере того, как выувеличить размер выборки. Основываясь на этом графике, является ли среднее значение предвзятой или непредвзятой оценкой среднего значения для населения?

Ниже я сделал следующее:

sd_uncorrected<-function(x){ return(sqrt(sum((x-mean(x))^2)/length(x)))
}

population <- rnorm(n = 1000, mean = 50, sd = 10) 
population_mean <- mean(population) 
population_std <- sd_uncorrected(population)

paste('population mean=',population_mean)
paste('population std = ', population_std)

sample_size <- 1000 # how many elements we want to sample
sample_n <- sample(population, size = sample_size, replace = FALSE) 
sample_n

mean(sample_n)
sd_uncorrected(sample_n)

n_experiments <- 1000 # we will sample 1000 times
sample_size <- 10 # how many elements we want to sample?
sample_means <- c()

library(ggplot2)
sample_means_df <- data.frame(means=sample_means)
ggplot(sample_means_df, aes(x=means)) + geom_histogram() +
geom_vline(xintercept = population_mean, color='red') + # population mean
geom_vline(xintercept = mean(sample_means_df$means), color='black')

Я получаю следующее сообщение об ошибке иЯ не знаю, что мне нужно делать. Может кто-нибудь, пожалуйста, помогите мне?

Error in FUN(X[[i]], ...) : object 'means' not found
In addition: Warning message:
In mean.default(sample_means_df$means) :
argument is not numeric or logical: returning NA

1 Ответ

0 голосов
/ 01 ноября 2019

возможно, следует написать

sample_means = replicate(sample_size, 
                         mean(sample(population, size = sample_size, replace = FALSE) ))

после вашей строки

sample_means <- c()

Как сказано в комментарии, вы объявили вектор без содержимого для sample_means

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...