Прогнозное моделирование с анализом таблиц сопряженности в SAS
Существует ли быстрый способ создания всех возможных моделей (т.е. независимых, совместных, однородных, насыщенных) для таблицы сопряженности с данными подсчета с использованием sas? И затем сгенерировать достоверность соответствия, которая включает значения p для каждой из этих моделей?
*model testing only main effects (S,E,I) this is the independence model;
proc genmod data=class5.accident;
class seatbelt(ref='0') ejected(ref='0') injury(ref='0') /param=reference ;
model count = seatbelt ejected injury /dist=Poisson;
run;
*checking pvalue of deviance statistics from independent model;
data testp2;
dev=11444.3754;
df=4;
pvalue=1-probchi(dev, df);
run;
proc print data=testp2 noobs; run;
***models testing joint independence;
*model testing seatbelt, and ejected*injury interaction (S,EI);
proc genmod data=class5.accident;
class seatbelt(ref='0') ejected(ref='0') injury(ref='0') /param=reference ;
model count = seatbelt ejected injury ejected*injury /dist=Poisson;
run;
*model testing ejecting, and seatbelt by injury interaction (E,SI);
proc genmod data=class5.accident;
class seatbelt(ref='0') ejected(ref='0') injury(ref='0') /param=reference ;
model count = ejected seatbelt injury seatbelt*injury /dist=Poisson;
run;
*model testing injury and seatbelt*ejected interaction (I,SE);
proc genmod data=class5.accident;
class seatbelt(ref='0') ejected(ref='0') injury(ref='0') /param=reference ;
model count = injury seatbelt ejected seatbelt*ejected /dist=Poisson;
run;
***models testing conditional independence;
*model testing seatbelt*ejected and seatbelt*injury interaction (SE,SI);
proc genmod data=class5.accident;
class seatbelt(ref='0') ejected(ref='0') injury(ref='0') /param=reference ;
model count = injury seatbelt ejected seatbelt*ejected seatbelt*injury
/dist=Poisson;
run;
*model testing seatbelt*ejected and ejected*injury interaction (SE,EI);
proc genmod data=class5.accident;
class seatbelt(ref='0') ejected(ref='0') injury(ref='0') /param=reference ;
model count = injury seatbelt ejected seatbelt*ejected ejected*injury
/dist=Poisson;
run;
*model testing seatbelt*injury and ejected*injury interaction (SI,EI);
proc genmod data=class5.accident;
class seatbelt(ref='0') ejected(ref='0') injury(ref='0') /param=reference ;
model count = injury seatbelt ejected seatbelt*injury ejected*injury
/dist=Poisson;
run;
***homogenous model
*model testing homogenous model, i.e. seatbelt*ejected, seatbelt*injury, and
ejected*injury interactions (SE,SI,EI);
proc genmod data=class5.accident;
class seatbelt(ref='0') ejected(ref='0') injury(ref='0') /param=reference ;
model count = injury seatbelt ejected seatbelt*injury ejected*injury
seatbelt*ejected /dist=Poisson;
output out=pred predicted=predicted;