jeudi 16 mai 2019

Drawing from truncated normal distribution delivers wrong standard deviation in R

I draw random numbers from a truncated normal distribution. The truncated normal distribution is supposed to have mean 100 and standard deviation 60 after truncation at 0 from the left. I computed an algorithm to compute the mean and sd of the normal distribution prior to the truncation (mean_old and sd_old). The function vtruncnorm gives me the (wanted) variance of 60^2. However, when I draw random variables from the distribution, the standard deviation is around 96. I don't understand why the sd of the random variables varies from the computation of 60.

I tried increasing the amount of draws - still results in sd around 96.

 require(truncnorm)
 mean_old = -5425.078
 sd_old = 745.7254
 val = rtruncnorm(10000, a=0,  mean = mean_old, sd = sd_old)
 sd(val)
 sqrt(vtruncnorm( a=0,  mean = mean_old, sd = sd_old))




Aucun commentaire:

Enregistrer un commentaire