(*:Mathematica:: V2.1 *) (*:Context:: "exclosed`" *) (*:Title:: check closed-form estimates *) (*:Summary:: a single loglinear model for partially observed categorical data *) (*:References:: Baker, S.G. Rosenberger, W.F., and Dersimonian,R,(1992). Closed-form estimates for missing counts in two-way contingency tables. Statistics in Medicine, 11, 653-657. *) (*:Keywords:: loglinear, contingency table *) (*:Requirements:: clm` *) (*:History:: 1992 Stuart G. Baker *) Clear[exclosed,designfunction]; y=Transpose[{{4512,21009, 3394,24132, 1049,1135, 142,464,1224}}]; mod1={"a..,b.."}; mod2={"a..,bi."}; mod3={"a..,b.j"}; mod4={"ai.,b.."}; mod5={"a.j,b.."}; mod6={"ai.,bi."}; mod7={"a.j,b.j"}; mod8={"ai.,b.j"}; mod9={"a.j,bi."}; mod={mod1,mod2,mod3,mod4,mod5,mod6,mod7,mod8,mod9} exclosed[y_,modelname_]:= Module[{q1,w1,g1,h1,z1,x1, func1,dim1,configset1, n,q,w,g,h,z,x, components,mstepfunc,msteparg, rmata,rmatb, parametername,rationame, c,model,ratio,name}, (*model 1 *) q1=Identity; w1=J[16,1,0]; g1=Id[16]; h1=(#2)&; z1=J[16,1,0]; dim1={2,2,2,2}; configset1=designfunction[modelname]; x1=CategoricalDesignMatrix[dim1,configset1,VariablesVary->"SlowtoFast"]; func1=NIPFCount; arg1={dim1,configset1}; (*combination*) n={1}; q={q1}; w={w1}; g={g1}; h={h1}; z={z1}; x={x1}; c11=Id[4]; c12={{1,1,0,0},{0,0,1,1}}; c21={{1,0,1,0},{0,1,0,1}}; c22=J[1,4]; c=BlockDiag[c11,c12,c21,c22]; components={n,q,w,g,h,z,x}; mstepfunc={func1}; msteparg={arg1}; model={components,mstepfunc,msteparg}; ratio="None"; parametername=ToString /@ CategoricalParameters[dim1,configset1]; rationame=Automatic; name={parametername,rationame}; Return[{c,model,ratio,name}]] /;MemberQ[mod,modelname] (*MI=1, MJ=2, I=3, J=4*) designfunction[modelname_]:= Switch[modelname[[1]], "a..,b..", {{3,4},{1,2}}, "a..,bi.", {{3,4},{1,2},{2,3}}, "a..,b.j", {{3,4},{1,2},{1,3}}, "ai.,b..", {{3,4},{1,2},{2,4}}, "a.j,b..", {{3,4},{1,2},{1,4}}, "ai.,bi.", {{3,4},{1,2},{2,4},{2,3}}, "a.j,b.j", {{3,4},{1,2},{1,4},{1,3}}, "ai.,b.j", {{3,4},{1,2},{2,4},{1,3}}, "a.j,bi.", {{3,4},{1,2},{1,4},{2,3}}]