2014-09-18 3 views
0

Im новой для Р.R Создание Normal Plot распределения с использованием набора данных

Im пытается построить нормальную функцию плотности вероятности для среднего 1000 значений выборок, которые из экспоненциального распределения размера 40 каждый. Распределение образцов должно быть приблизительно нормальным.

Проблема, что Im имея это с тем, как визуализируется участок, смотрите ниже:

Вот мой "R" Код:

#allocate list size to store means 
meanOfSampleMeansVector <- numeric(1000) 
#for 1000 iterations create 40 exponential random variable with variance of 0.2 units 
for (i in 1:1000){ 
sample <- rexp(n=40,0.2) 
#get mean of sample 
meanOfSample <- mean(sample) 
#set the mean in list 
meanOfSampleMeansVector[i] <- meanOfSample 
} 

генерировать нормальной функции плотности вероятности

propDensity=dnorm(meanOfSampleMeansVector,mean(meanOfSampleMeansVector),sd(meanOfSampleMeansVector)) 

Подход №1 для печати:

plot(meanOfSampleMeansVector,propDensity, xlab="x value", type="l", 
    ylab="Density", main="Sample Means of Exponential Distribution",col="red") 

Результат: enter image description here

Подход № 2 для построения:

plot(meanOfSampleMeansVector,propDensity, xlab="x value", 
    ylab="Density", main="Sample Means of Exponential Distribution",col="red") 

Результат: enter image description here

Однако то, что я хочу что-то похожее на этот график:

enter image description here

ответ

1
require(ggplot2) 
qplot(meanOfSampleMeansVector,propDensity,geom="line")+ 
    xlab("x value")+ylab("Density")+ 
    ggtitle("Sample Means of Exponential Distribution") 

Я делаю это с ggplot2

0

Base графики может сделать это так же хорошо:

xval <- seq(min(meanOfSampleMeansVector), max(meanOfSampleMeansVector), length=200) 
propDensity=dnorm(xval, mean(meanOfSampleMeansVector), sd(meanOfSampleMeansVector)) 
plot(xval,propDensity, xlab="x value", type="l", 
     ylab="Density", main="Sample Means of Exponential Distribution",col="red") 
0

Проблема в подходе № 1 просто заключается в том, что выборка не сортируется:

S<-sort(meanOfSampleMeansVector) 
propDensity=dnorm(S,mean(S),sd(S)) 
plot(S,propDensity, xlab="x value", type="l", 
    ylab="Density", main="Sample Means of Exponential Distribution",col="red") 

Но я настоятельно рекомендую, что вы посмотрите на density() вместо этого, если вы хотите построить оценочную PDF (здесь добавляется в тот же сюжет):

lines(density(meanOfSampleMeansVector),col=1) 

или может просто использовать нормальный квантиль если вы хотите проверить CLT:

qqnorm(S) 
qqline(S) 
Смежные вопросы