[R] Probability weights with density estimation

David Winsemius dwinsemius at comcast.net
Fri Jan 18 05:00:13 CET 2008


"Charles C. Berry" <cberry at tajo.ucsd.edu> wrote in
news:Pine.LNX.4.64.0801161019340.7346 at tajo.ucsd.edu: 

> On Wed, 16 Jan 2008, David Winsemius wrote:
> 
>>   I am a physician examining an NHANES dataset available at the
>>   NCHS website:
http://www.cdc.gov/nchs/about/major/nhanes/nhanes2005-2006/demo_d.xpt
snip
>>
>> TC.ran <- exp(rnorm(400,1.5,.3))
>> HDL.ran <- exp(rnorm(400,.4,.3) )
>>
>> f1<-kde2d(HDL.ran,TC.ran,n=25,lims=c(0,4,2,10))
>>
>> contour(f1$x,f1$y,f1$z,ylim=c(0,8),xlim=c(0,3),ylab="TC mmol/L",
>>          xlab="HDL mmol/L")
>> lines(f1$x,5*f1$x)   # iso-ratio lines
>> lines(f1$x,4*f1$x)
>> lines(f1$x,3*f1$x)
>>
>> Two questions:
>> Is there a 2d density estimation function that has provision for
>> probability weights (or inverse sampling probabilities)? 
snip

> 
> It looks like you can use bkde2D from the KernSmooth package.
> 
> You might look at the function sqlocpoly in surveyNG which uses 
> the KernSmooth package for details.

The prospect of setting up an SQL database was rather daunting and I 
continued my search. There were references in the the sql.. functions' 
documentation that they were providing the functions in package Locfit. 
Finding locfit() provided the weighting options I needed. This is what 
I came up with:

tc.hdl.fit <- with(small.nh.chol,
                   locfit(~LBDHDDSI+LBDTCSI,        
                     weights=WTMEC2YR, 
                     xlim=c(0,0,4,10)
                         ) 
                    )         
plot(tc.hdl.fit)        #give warnings but does work                  
title(main="Weighted", xlab="HDL", ylab="TC")    
# add labels _after_ plotting.
# never could figure out how to get plot() to accept xlab or ylab 
# when passing the locfit object to it. 
with(tc.hdl.fit, lines(x,x*4))   

-- 
Thanks; 
and thank you, Andy Liaw, for helpful earlier posts;
David Winsemius




More information about the R-help mailing list