[R] using weights in lrm
Stephan Lindner
lindners at umich.edu
Tue Jul 4 15:51:37 CEST 2006
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 at umich.edu
"If I have seen further it is by standing on the shoulders of giants."
-- Isaac Newton
More information about the R-help
mailing list