# Re: [R] Problem with Weighted Variance in Hmisc

From: Tom La Bone <labone_at_gforcecable.com>
Date: Fri, 01 Jun 2007 07:00:47 -0400

Thanks. I have another related question:

There is another approach to calculating the weighted variance of the weighted mean that propagates the uncertainty of each term in the weighted mean (see Data Reduction and Error Analysis for the Physical Sciences by Bevington & Robinson). The two approaches do not give the same answer. Can anyone suggest a reference that discusses the merits of the DataPlot approach versus the Bevington approach?

Tom La Bone

-----Original Message-----
From: jiho [mailto:jo.irisson_at_gmail.com] Sent: Friday, June 01, 2007 2:17 AM
To: labone_at_gforcecable.com; R-help
Subject: Re: [R] Problem with Weighted Variance in Hmisc

```> The function wtd.var(x,w) in Hmisc calculates the weighted variance
> of x
> where w are the weights.  It appears to me that wtd.var(x,w) = var
> (x) if all
> of the weights are equal, but this does not appear to be the case. Can
> someone point out to me where I am going wrong here?  Thanks.

The true formula of weighted variance is this one:
http://www.itl.nist.gov/div898/software/dataplot/refman2/ch2/
```
weighvar.pdf
But for computation purposes, wtd.var uses another definition which considers the weights as repeats instead of true weights. However if the weights are normalized (sum to one) to two formulas are equal. If you consider weights as real weights instead of repeats, I would recommend to use this option.
With normwt=T, your issue is solved:

> a=1:10
> b=a
> b[]=2
> b
 2 2 2 2 2 2 2 2 2 2
> wtd.var(a,b)
 8.68421
# all weights equal 2 <=> there are two repeats of each element of a
> var(c(a,a))

 8.68421
> wtd.var(a,b,normwt=T)
 9.166667
> var(a)

 9.166667

Cheers,

JiHO

```---
http://jo.irisson.free.fr/

______________________________________________
R-help_at_stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help