Hi I have some density estimates obtained from density(). I would like to calculate the sum of squares of these. As the x values of the estimates are not the same, and I would prefer not to restrict the estiomate to a certain range of x values, how can I do the calculation? Lets say: d1 <- density(Data1) d2 <- density(Data2) If the x values would be the same, I would: ssq <- sum( (d1$y - d2$y)^2 ) but as it isn't, I can't do that. is there an easy way to get the sum of squares? Thanks, Rainer
David Winsemius
2008-Jan-24 15:24 UTC
[R] Calculating sum of squares from density estimates
Rainer M Krug <r.m.krug at gmail.com> wrote in news:4798991D.3000607 at gmail.com:> Hi > > I have some density estimates obtained from density(). I would like > to calculate the sum of squares of these. As the x values of the > estimates are not the same, and I would prefer not to restrict the > estiomate to a certain range of x values, how can I do the > calculation? > > Lets say: > > d1 <- density(Data1) > d2 <- density(Data2) > > If the x values would be the same, I would: > > ssq <- sum( (d1$y - d2$y)^2 ) > > but as it isn't, I can't do that. > > is there an easy way to get the sum of squares?Presumably there is a common domain for these densities. Consider forcing the x values to be the same by identically specifying n=, from=, and to=?> ?density > x <- rnorm(200,1,1) > x2 <- rnorm(200,1,1) > d1 <- density(x, n=512, from=-1, to= 4) > d2 <- density(x2, n=512, from=-1, to= 4) > ssq <- sum( (d1$y - d2$y)^2 ) > ssq[1] 0.4722924> x <- rnorm(200,1,1) > x2 <- rnorm(200,1.5,1) > d1 <- density(x, n=512, from=-1, to= 4) > d2 <- density(x2, n=512, from=-1, to= 4) > ssq <- sum( (d1$y - d2$y)^2 ) > ssq[1] 2.111498 -- David Winsemius