我正在尝试使用PROC NLMIXED拟合非线性混合模型,以查看估算值如何比较PROC GENMOD和PROC NLMIXED。下面显示的是我的PROC GENMOD代码,其中的结果与相关的序数数据(1,2,3)相关。
PROC GENMOD DATA = data RORDER=data DESCENDING;
CLASS group (REF=‘1’) id/;
MODEL group=pred/ dist=mult link=clogit;
REPEATED subject=id;
RUN;
然后我使用下面的PROC NLMIXED代码运行非线性混合模型。
PROC NLMIXED DATA=data.gee;
PARMS B0=0 B1=0 SD=1 THRES1=1 THRES2=1;
Z=B0+B1*pred+U;
IF (group=1) THEN P=1/(1+EXP(-(0-Z)));
ELSE IF (group=2) THEN P=(1/(1+EXP(-(THRES1-Z))))-(1/(1+EXP(-(0-Z))));
ELSE IF (group=3) THEN P=1-(1/(1+EXP(-(THRES1+THRES2-Z))));
LL=LOG(P);
MODEL group ~ general(LL);
RANDOM U ~ normal(0, SD*SD) subject=id;
RUN;
两种PROC方法的结果(贝塔估计值,p值)相差太大,我认为我的PROC NLMIXED代码是错误的。您是否看到我的PROC NLMIXED代码有任何立即错误?另外,我们如何在“ PARMS”语句中获得beta和阈值的初始值?我目前使用随机的0、1值。