This macro is from David Nicholls, Senior Support Statistician at SPSS.
[COPY AND PASTE SYNTAX IN THE BOX BELOW INTO A SPSS SYNTAX WINDOW]
then below the patsed syntax type
MKAPPASC VARS=varlist.
where varlist is the list of variables containing the ratings for each rater. So. for example,
MKAPPASC VARS=r1 r2 r3.
evaluates the kappa for the three raters whose ratings per case are contained in columns called r1 r2 r3.
***************************************
* MACRO NAME: MKAPPASC.SPS
* *
* README FILE:MKAPPASC.RM
* *
* SPSS REQUIREMENTS:Release 4.0 or above
*
* Advanced Statistics Module
*
* AUTHOR: David Nichols [mailto:nichols@spss.com]
*
* LAST UPDATED: 04/08/97
*
**************************************
preserve.
set printback=off mprint=off.
save outfile='ka_tmp1.sav'.
define mkappasc (vars=!charend('/')).
set mxloops=1000.
count ms_=!vars (missing).
select if ms_=0.
matrix.
get x /var=!vars.
compute c=mmax(x).
compute y=make(nrow(x),c,0).
loop i=1 to nrow(x).
loop j=1 to ncol(x).
loop k=1 to c.
do if x(i,j)=k.
compute y(i,k)=y(i,k)+1.
end if.
end loop.
end loop.
end loop.
compute pe=msum((csum(y)/msum(y))&**2).
compute k=ncol(x).
compute pa=mssq(y)/(nrow(y)*k*(k-1))-(1/(k-1)).
compute kstat=(pa-pe)/(1-pe).
compute num=2*(pe-(2*k-3)*(pe**2)+2*(k-2)*msum((csum(y)/msum(y))&**3)).
compute den=nrow(y)*k*(k-1)*((1-pe)**2).
compute ase=sqrt(num/den).
compute z=kstat/ase.
compute sig=1-chicdf(z**2,1).
save {kstat,ase,z,sig} /outfile='ka_tmp2.sav'
/variables=kstat,ase,z,sig.
end matrix.
get file='ka_tmp2.sav'.
formats all (f11.8).
variable labels kstat 'Kappa' /ase 'ASE' /z 'Z-Value' /sig 'P-Value'.
report format=list automatic align(center)
/variables=kstat ase z sig
/title "Estimated Kappa, Asymptotic Standard Error,"
"and Test of Null Hypothesis of 0 Population Value".
get file='ka_tmp1.sav'.
!enddefine.- The macro first saves your working data file to a file named ka_tmp1.sav. The macro creates two new files, ka_tmp1.sav and ka_tmp2.sav, which contain respectively your original data, and a file used to store the values printed in the reported output.
MAKE SURE YOU HAVE NO EXISTING FILES CALLED KA_TMP1.SAV OR KA_TMP2.SAV AS THESE WILL BE OVERWRITTEN.
- Multiple invocations of the macro in the same interactive session will produce the following note:
>The macro name specified on the DEFINE command duplicates the name of a previously defined macro. This instance will take precedence.
This warning does not indicate a problem and may be ignored.
