Hi, Can anyone help me with the following. I have been using R for Monte Carlo simulations and got some results I couldn't explain. Therefor I performed following short test: -------------- mean.sds <- NULL sample.sizes <- 3:30 for(N in sample.sizes){ dum <- NULL for(I in 1:5000){ x <- rnorm(N,0,1) dum <- c(dum,sd(x)) } mean.sds<- c(mean.sds,mean(dum)) } plot(sample.sizes,mean.sds) -------------- My question is why don't I get 1 as a result from my sd() for small sample sizes? According to the help, sd() is unbiased, which anyway would not explain the small offset... Is it something in rnorm()? Thanx, Roy -- The information contained in this communication and any atta...{{dropped}}
Where in the help file of sd() do you see the claim that it produces unbiased estimate? Try the following: sample.sizes <- 3:30 reps <- 5000 set.seed(1) mean.vars <- sapply(sample.sizes, function(n) mean(sd(matrix(rnorm(n*reps), nc=reps))^2)) plot(sample.sizes,mean.vars) I.e., the sample variance, or sd()^2, is unbiased for the true variance. If U is an unbiased estimator of a parameter theta, f(U) is _not_ necessarily unbiased for f(theta). It would be if f() is linear. Andy> From: Roy Werkman > > Hi, > > Can anyone help me with the following. I have been using R for Monte > Carlo simulations and got some results I couldn't explain. Therefor I > performed following short test: > > -------------- > mean.sds <- NULL > sample.sizes <- 3:30 > > for(N in sample.sizes){ > dum <- NULL > for(I in 1:5000){ > x <- rnorm(N,0,1) > dum <- c(dum,sd(x)) > } > mean.sds<- c(mean.sds,mean(dum)) > } > plot(sample.sizes,mean.sds) > -------------- > > My question is why don't I get 1 as a result from my sd() for small > sample sizes? According to the help, sd() is unbiased, which anyway > would not explain the small offset... Is it something in rnorm()? > > Thanx, > Roy > > > -- > The information contained in this communication and any\ >...{{dropped}}
"Roy Werkman" <roy.werkman at asml.com> writes:> Hi, > > Can anyone help me with the following. I have been using R for Monte > Carlo simulations and got some results I couldn't explain. Therefor I > performed following short test: > > -------------- > mean.sds <- NULL > sample.sizes <- 3:30 > > for(N in sample.sizes){ > dum <- NULL > for(I in 1:5000){ > x <- rnorm(N,0,1) > dum <- c(dum,sd(x)) > } > mean.sds<- c(mean.sds,mean(dum)) > } > plot(sample.sizes,mean.sds) > -------------- > > My question is why don't I get 1 as a result from my sd() for small > sample sizes? According to the help, sd() is unbiased, which anyway > would not explain the small offset... Is it something in rnorm()?According to *what* help? In ?sd, it isn't there and it wouldn't be true if it was there. Please don't spread rumors like that. The _variance_, var(x) is unbiased, and sd(x) is the square root of that. It is not possible for a concave function of an unbiased estimator to be unbiased (unless you're talking median unbiasedness which is clearly not the case). This is first-year math-stat theory. -- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907