It seems that var() computes sample variance. It is straight forward to compute population variance from sample variance. However, I feel that it is still convenient to have a function that can compute population variance. Is there a population variance function available in R? $ Rscript var.R> set.seed(0) > n = 4 > x = rnorm(n) > var(x)[1] 0.6526278> sum((x-mean(x))^2)/(n-1)[1] 0.6526278>
> sum((x-mean(x))^2)/(n)[1] 0.4894708> ((n-1)/n) * var(x)[1] 0.4894708 hth, Kingsford On Mon, Oct 19, 2009 at 9:30 AM, Peng Yu <pengyu.ut at gmail.com> wrote:> It seems that var() computes sample variance. It is straight forward > to compute population variance from sample variance. However, I feel > that it is still convenient to have a function that can compute > population variance. Is there a population variance function available > in R? > > $ Rscript var.R >> set.seed(0) >> n = 4 >> x = rnorm(n) >> var(x) > [1] 0.6526278 >> sum((x-mean(x))^2)/(n-1) > [1] 0.6526278 >> > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
On Mon, Oct 19, 2009 at 12:53 PM, Kingsford Jones <kingsfordjones at gmail.com> wrote:>> sum((x-mean(x))^2)/(n) > [1] 0.4894708 >> ((n-1)/n) * var(x) > [1] 0.4894708But this is not a built-in function in R to do so, right?> hth, > Kingsford > > On Mon, Oct 19, 2009 at 9:30 AM, Peng Yu <pengyu.ut at gmail.com> wrote: >> It seems that var() computes sample variance. It is straight forward >> to compute population variance from sample variance. However, I feel >> that it is still convenient to have a function that can compute >> population variance. Is there a population variance function available >> in R? >> >> $ Rscript var.R >>> set.seed(0) >>> n = 4 >>> x = rnorm(n) >>> var(x) >> [1] 0.6526278 >>> sum((x-mean(x))^2)/(n-1) >> [1] 0.6526278 >>> >> >> ______________________________________________ >> R-help at r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> >
Probably a simple typo, but just to keep things straight: you want to divide by n when describing the standard deviation of a sample, and divide by n-1 when estimating a population standard deviation (your initial description had it backwards I think). On Tue, Feb 2, 2010 at 5:25 PM, Peng Yu <pengyu.ut at gmail.com> wrote:> On Mon, Oct 19, 2009 at 12:53 PM, Kingsford Jones > <kingsfordjones at gmail.com> wrote: >>> sum((x-mean(x))^2)/(n) >> [1] 0.4894708 >>> ((n-1)/n) * var(x) >> [1] 0.4894708 > > But this is not a built-in function in R to do so, right? > >> hth, >> Kingsford >> >> On Mon, Oct 19, 2009 at 9:30 AM, Peng Yu <pengyu.ut at gmail.com> wrote: >>> It seems that var() computes sample variance. It is straight forward >>> to compute population variance from sample variance. However, I feel >>> that it is still convenient to have a function that can compute >>> population variance. Is there a population variance function available >>> in R? >>> >>> $ Rscript var.R >>>> set.seed(0) >>>> n = 4 >>>> x = rnorm(n) >>>> var(x) >>> [1] 0.6526278 >>>> sum((x-mean(x))^2)/(n-1) >>> [1] 0.6526278 >>>> >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >>> and provide commented, minimal, self-contained, reproducible code. >>> >> > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- Ista Zahn Graduate student University of Rochester Department of Clinical and Social Psychology http://yourpsyche.org
On Tue, Feb 2, 2010 at 10:25 AM, Peng Yu <pengyu.ut at gmail.com> wrote:> On Mon, Oct 19, 2009 at 12:53 PM, Kingsford Jones > <kingsfordjones at gmail.com> wrote: >>> sum((x-mean(x))^2)/(n) >> [1] 0.4894708 >>> ((n-1)/n) * var(x) >> [1] 0.4894708 > > But this is not a built-in function in R to do so, right?No because down that path lies bloat....> >> hth, >> Kingsford >> >> On Mon, Oct 19, 2009 at 9:30 AM, Peng Yu <pengyu.ut at gmail.com> wrote: >>> It seems that var() computes sample variance. It is straight forward >>> to compute population variance from sample variance. However, I feel >>> that it is still convenient to have a function that can compute >>> population variance. Is there a population variance function available >>> in R? >>> >>> $ Rscript var.R >>>> set.seed(0) >>>> n = 4 >>>> x = rnorm(n) >>>> var(x) >>> [1] 0.6526278 >>>> sum((x-mean(x))^2)/(n-1) >>> [1] 0.6526278 >>>> >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >>> and provide commented, minimal, self-contained, reproducible code. >>> >> > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >