Calcite | Level 5

## How do I calculate stabilized inverse probability weights for a cohort study?

Hello,

I am trying to calculate inverse probability weights for loss-to-followup in my cohort study. From what I've read, my stabilized weights should have a mean of 1 and the sum of the unstabilized weights should be double the sum of the stabilized weights, however, the average of my stabilized weights is 1.4. I tried two methods below (with the tables ipw22 and ipw44) I am not sure where the error in my code could be, it would be greatly appreciated if someone could help!

(I had some missing data with the covariates, so I imputed with the mean or mode) so as not to lose too many subjects in the logistic regression.

**I am not sure which version of SAS I am on because I use SAS through EMACS, but I think it is 9.3**

/*Part1: Estimate conditional probabilities for denominator using pooled logistic regression*/
proc logistic data=tables.ipw;
class <covariates>;
model dropout= <covariates>/lackfit;
output out=d_data (keep=n_ident d) p=d; run;

/*Part2: Calculate cumulative probabilities for stabilized weights (sw)*/
proc sort data=tables.ipw; by n_ident; run;
proc sort data=n_data; by n_ident; run;
proc sort data=d_data; by n_ident; run;

data ipw22;
merge tables.ipwsimple n_data d_data;
by n_ident;
if dropout=1 then do;
uw=1/d; /*unstabilized weight*/
sw=n/d; /*stabilized weight*/
end;

else if dropout=0 then do;
uw=1/(1-d); /*unstabilized weight*/
sw=(1-n)/(1-d); /*stabilized weight*/
end;
run;

data ipw44;
merge tables.ipw n_data d_data;
by n_ident;
if dropout=1 then do;
uw=1/d; /*unstabilized weight*/
sw=(1195/2002)/d; /*(eligible population/total population) stabilized weight*/
end;
else if dropout=0 then do;
uw=1/(1-d);
sw=(1-(1195/2002))/(1-d);
end;

predict=log(d/(1-d))*log(d/(1-d)); run; /*Create term to check verifications after*/

*----------------------------------------------------
*Assess distribution of SW
*Mean should be=1
*UW range should be greater than SW range
*UW sum should be twice the sum of SW sum
*----------------------------------------------------;

proc means data=ipw22 mean sum min max; var uw sw; run;
proc means data=ipw44 mean sum min max; var sw uw; run;

## Re: How do I calculate stabilized inverse probability weights for a cohort study?

I've never done anything like this, so take what I suggest with a swimming pool of salt.

Could you just scale your SW after calculating the mean?  For instance if you get a mean of 1.4, divide all the stabilized weights you have calculated by 1.4 and then rerun.  The other possibility here is there may be a missing factor.  Whenever I see 1.4, I immediately think of two possibilities - square root of 2 (the remainder is lost to round off) or square root of the normal variate for .975 (=1.96).  If either of those is a possibility, check your sources.

SteveDenham

Discussion stats