Programming the statistical procedures from SAS

Offset in poisson model

Reply
Highlighted
Regular Contributor
Posts: 174

Offset in poisson model

I am running a Poisson model in sas comparing the number of ER visits after a surgery between 2 diseases in a given year. For those patients who were diagnosed later on in the year however, we have less follow up time to capture the ER visit so I decided to offset by the month of the surgery. I am wondering if someone may help in interpreting the estimates produced in the model with this offset term.

Esteemed Advisor
Posts: 5,611

Re: Offset in poisson model

Interpret what estimates? From what model? On what data?

PG
Regular Contributor
Posts: 174

Re: Offset in poisson model

The parameter estimates from the model described above? Did I leave out anything important?
Esteemed Advisor
Posts: 5,611

Re: Offset in poisson model

Yes, the SAS code and the data.

PG
Regular Contributor
Posts: 174

Re: Offset in poisson model

proc genmod data=dat;
class disease;
model er_visits = disease / dist = poisson
link = log
offset = logindexmonth;
run;

disease = a or b, er_visits is a count, and logindexmonth is the log of the number of months into the calendar year when the patient had their surgery. alternatively, I think I could also do the number of months left in left in the calendar year to reflect the follow up time but I was not sure which one would be more appropriate.
Esteemed Advisor
Posts: 5,611

Re: Offset in poisson model

You should be using the log of the number of months during which the visits were counted for that patient as an offset.

PG
Regular Contributor
Posts: 174

Re: Offset in poisson model

Thank you! So I have an estimate statement for disease just looking at disease 1 -1, for disease a b. With the offset, I am not sure how to interpret the estimate. Does the offset change this?
Esteemed Advisor
Posts: 5,611

Re: Offset in poisson model

The time unit that you choose for your offset calculation will determine the units of your estimates. For example, a Poisson process with mean 10 per month, during a varying number of months :

 

data test;
call streaminit(7);
do id = 1 to 20;
    mth = rand("integer", 12);
    logmth = log(mth);
    logyr = log(mth/12);
    n = rand("Poisson", mth*10);
    output;
    end;
run;

title "Time expressed in months";
proc genmod data=test;
model n = / dist=Poisson offset=logmth;
run;

title "Time expressed in years";
proc genmod data=test;
model n = / dist=Poisson offset=logyr;
run;

Notice how the exponentiated mean estimate is multiplied by 12 when offset is expressed in years instead of months..

 

PG
Ask a Question
Discussion stats
  • 7 replies
  • 105 views
  • 3 likes
  • 2 in conversation