Re: [R] using weights in lrm

From: Stephan Lindner <lindners_at_umich.edu>
Date: Tue 04 Jul 2006 - 23:51:37 EST

Dear all,

here's my own answer to the first warning message -- the warning message comes from handling missing values, which is specified as na.delte as default in lrm.

Cheers,

Stephan

# Consider a toy data frame:

> d.temp

   y.js h.hhsize h.work.frac h.age h.sex h.popgroup weightsd cluster

1    No        3   0.3333333    20 female   Coloured 47.80062    1001
2    No        5   0.6000000    18 female   Coloured 47.80062    1001
3   Yes        4   0.7500000    18 female      White 47.80062    1001
4   Yes        6   0.5000000    21 female   Coloured 49.71264    1002
5    No        6   0.5000000    15 female   Coloured 49.71264    1002
6    No        3   0.6666667    20 female      White 49.71264    1002
7    No        3   0.3333333    21 female      White 49.71264    1002
8   Yes        6   0.6666667    19 female      White 49.71264    1002
9    No        6   0.6666667    16   male      White 49.71264    1002
10   No        3   0.3333333    16   male   Coloured 49.71264    1002
11   No        5   0.4000000    15   male   Coloured 42.85572    1003
12   No        6   0.6666667    18   male      White 42.85572    1003
13   No        4   0.2500000    17   male      White 45.88860    1004
14   No        3   0.3333333    15 female   Coloured 45.88860    1004
15   No        4   0.5000000    19 female      White 45.88860    1004
16  Yes        4   0.5000000    16 female      White 45.88860    1004
17  Yes        6   0.3333333    21 female   Coloured 45.88860    1004
18   No        3   0.6666667    15 female      White 46.03022    1005
19  Yes        5   0.4000000    20 female      White 46.03022    1005
20   No        5   1.0000000    19 female      White 46.03022    1005


# The dependent variable has no missing values. Then, lrm works fine.

results <- robcov(ols.results <- lrm(y.js ~

                                     + h.hhsize             
                                     + h.work.frac           
                                     + factor(h.age)        
                                     + h.sex
                                     + h.popgroup           
                                     
                                    ,data=d.temp,x=T,y=T
                                    ,weights=weightsd, normwt=TRUE),
                                    d.temp$cluster)


# Now change the first observation to a missing value:

d.temp$y.js[1] <- NA

# and do the same again produces the warning:

results <- robcov(ols.results <- lrm(y.js ~

                                     + h.hhsize             
                                     + h.work.frac           
                                     + factor(h.age)        
                                     + h.sex
                                     + h.popgroup           
                                     
                                    ,data=d.temp,x=T,y=T
                                    ,weights=weightsd, normwt=TRUE),
                                    d.temp$cluster)



# But specifying na.action="exclude" resolves it.

results <- robcov(ols.results <- lrm(y.js ~

                                     + h.hhsize             
                                     + h.work.frac           
                                     + factor(h.age)        
                                     + h.sex
                                     + h.popgroup           
                                     
                                    ,data=d.temp,x=T,y=T, na.action="na.exclude"
                                    ,weights=weightsd, normwt=TRUE),
                                    d.temp$cluster)


# ------------------------------------------- #


On Tue, Jul 04, 2006 at 07:59:31AM -0500, Frank E Harrell Jr wrote:
> Stephan Lindner wrote:
> >Dear all,
> >
> >
> >just a quick question regarding weights in logistic regression. I do
> >
> >
> >
> >results <- lrm(y.js ~
> > h.hhsize
> > + h.death1
> > + h.ill1
> > + h.ljob1
> > + h.fin1
> > + h.div1
> > + h.fail1
> > + h.sex
> > + h.ch.1
> > + h.ch.5
> > + h.ch.12
> > + h.ch.13
> > + h.popgroup
> > + y.school.now
> > ,x=T,y=T, data=d.caps1y, weights=weightsd, normwt=TRUE
> > )
> >
> >
> >The regression works (in the sense that the results are not way off
> >the one w/o wighting the sample), but I get the following warning messages:
> >
> >Warning messages:
> >1: number of items to replace is not a multiple of replacement length
> >2: currently weights are ignored in model validation and bootstrapping lrm
> >fits in: lrm(y.js ~ h.hhsize + h.death1 + h.ill1 + h.ljob1 + h.fin1 +
> >
> >Perhaps someone can help me clearifying the warning messages -- thanks
> >a lot in advance !
>
> I think the second warning is clear. Regarding the first, make sure
> that the weights vector has length equal to the number of rows in
> d.capsly. Sometimes you have to subset weights. If that's not the
> problem, try to create a minimal failing example and we'll work on it.
>
> Frank Harrell
>
> >
> >
> >Cheers,
> >
> >Stephan
> >
> >
> >
> >
>
>
> --
> Frank E Harrell Jr Professor and Chair School of Medicine
> Department of Biostatistics Vanderbilt University
>
>

-- 
-----------------------
Stephan Lindner, Dipl.Vw.
Doctoral Student in Economics
1512 Gilbert Ct., V-17
Ann Arbor, Michigan 48105
U.S.A.
Tel.: 001-734-272-2437
E-Mail: lindners@umich.edu

"If I have seen further it is by standing on the shoulders of giants."
-- Isaac Newton

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Tue Jul 04 23:55:57 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Wed 05 Jul 2006 - 02:15:37 EST.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.