[R] cov.wt gives different results from other (co)variance functions (cov, wtd.var)

peter dalgaard pdalgd at gmail.com
Mon Mar 31 15:30:22 CEST 2014


On 31 Mar 2014, at 00:30 , Emilio Torres Manzanera <torres at uniovi.es> wrote:

> Dear  Sir,
> I am not sure about the precision of the cov.wt function. It seems that it provides different results when using frequency weights. This discrepancy only occurs with the covariance matrix, not with the correlation matrix.
> Do you know to how to solve this issue? Thank you
> Best regards,
> Emilio
> 

PLEASE DON'T DO THIS:

> rm(list=ls())

If a friendly an helpful reader pastes that into a running R session, previous work could be lost, causing the reader to become less friendly and helpful in the future.

Anyways, the crux seems to be that cov.wt has

   cov <- switch(match.arg(method), unbiased = crossprod(x)/(1 - 
        sum(wt^2)), ML = crossprod(x))
 
where frequency weighting would have  N/(N - 1) (in this case 150/149). I'm not sure where the term (1-sum(wt^2)) comes from, though; in variance-weighting, I'd expect n/(n-1) (with n=117 here) which is not the same thing, unless the wt are equal. 


-- 
Peter Dalgaard, Professor
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com




More information about the R-help mailing list