Tine
2007-Nov-28 08:56 UTC
[R] Different value between R variance and definition of variance
Hi! Let us define random variable: > x = seq(0,1,length=100) If we calculate variance following definition E[(x-E(x))^2] we get: > mean( (x - mean(x))^2 ) # == mean(x^2) - mean(x)^2 0.08501684 And if we use internal R function var: > var(x) 0.08587559 Can anyone tells me why the difference?
Stefano Calza
2007-Nov-28 09:23 UTC
[R] Different value between R variance and definition ofvariance
Hi! maybe because sample variance has N-1 at the denominator (say degrees of freedom)? so all.equal((sum(x^2) - 100*mean(x)^2)/99, var(x)) ## TRUE but (sum(x^2) - 100*mean(x)^2)/100 # == your value Stef On Wed, Nov 28, 2007 at 09:56:58AM +0100, Tine wrote: <Tine>Hi! <Tine> <Tine>Let us define random variable: <Tine> > x = seq(0,1,length=100) <Tine> <Tine>If we calculate variance following definition E[(x-E(x))^2] we get: <Tine> > mean( (x - mean(x))^2 ) # == mean(x^2) - mean(x)^2 <Tine>0.08501684 <Tine> <Tine>And if we use internal R function var: <Tine> > var(x) <Tine>0.08587559 <Tine> <Tine>Can anyone tells me why the difference? <Tine> <Tine>______________________________________________ <Tine>R-help a r-project.org mailing list <Tine>https://stat.ethz.ch/mailman/listinfo/r-help <Tine>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html <Tine>and provide commented, minimal, self-contained, reproducible code.
Daniel Nordlund
2007-Nov-28 16:19 UTC
[R] Different value between R variance and definition of variance
> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf > Of Tine > Sent: Wednesday, November 28, 2007 12:57 AM > To: r-help at r-project.org > Subject: [R] Different value between R variance and definition of variance > > Hi! > > Let us define random variable: > > x = seq(0,1,length=100) > > If we calculate variance following definition E[(x-E(x))^2] we get: > > mean( (x - mean(x))^2 ) # == mean(x^2) - mean(x)^2 > 0.08501684 > > And if we use internal R function var: > > var(x) > 0.08587559 > > Can anyone tells me why the difference? >I haven't seen a response, so I will chime in. R calculates an unbiased estimate of the population variance from which your x is assumed to be a simple random sample of size n (in your case n=100). See any basic book on statistics. So, using your formula, R "in effect" calculates mean((x-mean(x)^2) * n/(n-1) Hope this is helpful, Dan Daniel Nordlund Bothell, WA USA
Maybe Matching Threads
- compute variance of every column in a matrix without a loop
- Accessing the fixed- and random-effects variance-covariance matrices of an nlme model
- Problem with Weighted Variance in Hmisc
- R function which finds confidence interval for binomial variance
- variance of a scalar (PR#546)