Im not able show share the real data. But with simulated data I can show you here what I mean:
*simulate a dataset;
data simulation;
array q{8,4} _temporary_;
array alpha{4} _temporary_;
array item{8} 3;
array probability{5} _temporary_;
label item1="Anxiety" item2="Depression" item3="Hostility" item4="Guilt feelings" item5="Hallucinations" item6="Emotional withdrawal" item7="Grandiosity" item8="Disorientation";
do i=1 to dim(q);
do k=1 to dim(alpha);
alpha[k]=rand('normal',0,1);
end;
call sortn(of alpha(*));
do k=1 to dim(alpha);
q[i,k]=alpha[k];
end;
end;
do person=1 to 200;
p=rand('normal',0,1);
do i=1 to dim(item);
l=ifn(i=1,0.25,1);
do k=1 to 5;
if k=1 then probability[k]=cdf('logistic',alpha[1],l*p,1);
else if k<5 then probability[k]=cdf('logistic',alpha[k],l*p,1)-cdf('logistic',alpha[k-1],l*p,1);
else if k=5 then probability[k]=1-cdf('logistic',alpha[k-1],l*p,1);
end;
item[i]=rand('table',probability[1],probability[2],probability[3],probability[4],probability[5]);
end;
output simulation;
end;
keep item:;
run;
ods output iteminfocurve=iteminfocurve;
proc irt data=simulation plot=(iic) resfunc=graded;
var item:;
run;
*the iic curve is missing the labels.
*Using the iteminfocurve dataset, we can put in the labels ;
proc format;
value item 1="Anxiety" 2="Depression" 3="Hostility" 4="Guilt feelings" 5="Hallucinations" 6="Emotional withdrawal" 7="Grandiosity" 8="Disorientation";
run;
data iteminfocurve2;
set iteminfocurve(in=a1 obs=101 keep=trait ItemInfoI0 rename=(ItemInfoI0=iteminfo) )
iteminfocurve(in=a2 obs=101 keep=trait ItemInfoI1 rename=(ItemInfoI1=iteminfo))
iteminfocurve(in=a3 obs=101 keep=trait ItemInfoI2 rename=(ItemInfoI2=iteminfo))
iteminfocurve(in=a4 obs=101 keep=trait ItemInfoI3 rename=(ItemInfoI3=iteminfo))
iteminfocurve(in=a5 firstobs=102 keep=trait ItemInfoI0 rename=(ItemInfoI0=iteminfo))
iteminfocurve(in=a6 firstobs=102 keep=trait ItemInfoI1 rename=(ItemInfoI1=iteminfo))
iteminfocurve(in=a7 firstobs=102 keep=trait ItemInfoI2 rename=(ItemInfoI2=iteminfo))
iteminfocurve(in=a8 firstobs=102 keep=trait ItemInfoI3 rename=(ItemInfoI3=iteminfo));
format item item.;
item=1*a1+2*a2+3*a3+4*a4+5*a5+6*a6+7*a7+8*a8;
run;
proc sgpanel data=iteminfocurve2;
panelby item;
series x=trait y=iteminfo;
run;
... View more