C --------------------------------------------------------------------------
C ALPHANEW.FOR GJL 9-6-89 12-11-89
C 18:00
C
C Comparing Alpha Coefficients for Independent Samples
C Algorithm adapted from formulae in:
C Feldt, Woodruff & Salih (1987). Statistical inference for coefficient
C alpha. APPLIED PSYCH MEAS., 11, 93-103.
C
C
CHARACTER INF*24,OUTF*24,FMT*80,FMT2*80
INTEGER DF,I,N,TYPE
DIMENSION A(20),NI(20),NN(20),R(20,20)
REAL*8 A,MU,NB,Q,QQ,SA,SI,SS,SM,UX,ZCHI,PCHI,RDF,TDF,R,HMN,NC,SUMN
REAL*8 CM,CI,CP,NI,NN
C Variable definitions ...
C NB DF + 1 or NB - 1 = DF for test i
C NI(I) the number of items in test i
C NN(I) number of respondents who took test i
C SI the estimated variance of alpha for test i
C A(I) Alpha Coefficient for test i
C Q Constant = 1/3 for transforming alphas
C QQ Constant = 2/3 "
C SA the sum of unweighted transformed alphas (used to get MU below)
C MU the simple unweighted average of the transformed alphas
C na the number of alphas (or # of groups)
C UX the Chi-squared value for omnibus Ho: A(1) = A(2) = ... = A(na)
C
C
WRITE (*,1)
1 FORMAT(//,
+' Lautenschlager, G. J. (1989). ALPHATST: Testing for'/
+' differences in coefficient alpha.'/
+' Applied Psychological Measurement, 13, 284.'//)
C
27 WRITE(*,28)
28 FORMAT(' ENTER INPUT FILENAME: ',\)
READ(*,29) INF
29 FORMAT(A24)
OPEN(5,FILE=INF,STATUS='OLD')
READ(5,31) TYPE,N,OUTF
31 FORMAT(I1,I2,A24)
C
WRITE (6,32) TYPE,N,OUTF
32 FORMAT(' ------------- ALPHATST OUTPUT -------------------------'/
+1X,'TYPE =',I1,'N = ', I2, 'INPUT FILE =',A24)
C
IF (TYPE.GT.2) GOTO 700
IF (TYPE.LT.1) GOTO 700
C N = # OF GROUPS (IND) OR # OF SUBTESTS COMPARED ACROSS GROUPS
C OUTF = file name for output
C
OPEN(6,FILE=OUTF,STATUS='NEW')
READ(5,33) FMT
C FMT = FIRST input format
33 FORMAT(A80)
C
WRITE (6,34) FMT
34 FORMAT('FORMAT=',A80)
C
C
C
Q = .33333333333333333
QQ = .66666666666666666
C
C READ IN ALPHA, # ITEMS & SAMPLE SIZE INFORMATION
READ(5,FMT) ( A(I),NI(I),NN(I),I=1,N )
WRITE(6,FMT) ( A(I),NI(I),NN(I),I=1,N )
C
MU = 0
SA = 0
DO 45 I = 1,N
SA = SA + ( 1 / (1 - A(I))**Q)
45 CONTINUE
MU = SA / N
C
C ******************************************************************
C
C Solution of INDEPENDENT GROUPS case when TYPE=1
IF (TYPE.EQ.1) THEN
C
C
C EACH SI FOUND USING FORMULA (19) AND SUM INTO SS
C SEE PARAGRAPH ABOVE FORMULA (19) FOR MEANING OF NB
C FIND VARIANCE OF USING FORMULA (20)
SS = 0
SM = 0
DO 80 I = 1,N
NB = ( (NI(I) - 1) * NN(I) ) / (NI(I)+1.0)
SI = 2 / ( 9 * (NB - 1) * ((1-A(I))**QQ) )
C
SS = SS + SI
80 CONTINUE
C
SM = SS / N
C
C CALCULATE INDEPENDENT GROUPS CHI-SQUARED USING FORMULA (21)
UX = 0
DO 85 I = 1,N
UX = UX + ( ( ( (1/(1-A(I))**Q) -MU) **2) /SM )
85 CONTINUE
DF=N-1
RDF=N-1
C
ENDIF
C
C ******************************************************************
C
C Solution of DEPENDENT GROUP case when TYPE=2
IF (TYPE.EQ.2) THEN
C
C FMT2 = CORRELATION MATRIX input format ONLY FOR DEPENDENT TESTS
READ(5,33) FMT2
90 FORMAT(A80)
C
C READ IN CORRELATION MATRIX lower triangular regardless of input file
DO 100 I=1,N
READ(5,FMT2)(R(I,J),J=1,I)
WRITE(6,FMT2)(R(I,J),J=1,I)
100 CONTINUE
C
SUMN=0
DO 110 I=1,N
SUMN=SUMN+(1/NI(I))
110 CONTINUE
HMN=N/SUMN
I=1
NC=NN(I)*(HMN-1)/(HMN+1)
C
C EACH SI FOUND USING FORMULA (24) SUBSTITUTING
C COMMON N (NC AS CALCULATED ABOVE)
C
C FIND VARIANCE OF USING FORMULA (20)
SS = 0
SM = 0
DO 120 I = 1,N
SI = 2 / ( 9 * (NC-1) * ((1-A(I))**QQ) )
SS = SS + SI
120 CONTINUE
SM = SS / N
C
CP=0
DO 130 I=2,N
DO 130 J=1,I-1
CI = 2*R(I,J)**2 / ( 9*(NC-1)*((1-A(I))**Q)*((1-A(J))**Q) )
C
CP = CP + CI
130 CONTINUE
C
C FIND COVARIANCE OF ALPHA I & ALPHA J USING FORMULA (25)
CM = CP / ((N**2-N)/2)
C
C CALCULATE DEPENDENT SAMPLE CHI-SQUARED USING FORMULA (26)
UX = 0
DO 335 I = 1,N
UX = UX + ( ( ( (1/(1-A(I))**Q) -MU) **2) /(SM-CM) )
335 CONTINUE
DF=N-1
RDF=N-1
C
ENDIF
C
C ******************************************************************
C ******************************************************************
C FIND p-VALUE FOR CHI-SQUARED
C
TDF = 2/(9*RDF)
ZCHI = ( (UX/DF)**Q - (1-TDF) ) / DSQRT(TDF)
PCHI = .5 / (1 + (.196854*ZCHI) + (.115194*(ZCHI)**2) +
+ (.000344*(ZCHI)**3) + (.019527*(ZCHI)**4) ) ** 4
C PRINT HEADER & INPUT INFORMATION
WRITE (6,345) INF
345 FORMAT(' -------------------------------------------------------'/
+1X,' ------------- TEST FOR ALPHA COEFFICIENTS -------------'/
+1X,'INPUT FILE FOR THIS RUN WAS: ',A24)
C
IF (TYPE.EQ.1) THEN
WRITE(6,350) N
350 FORMAT(5X,'# OF INDEPENDENT GROUPS: ',I3,/)
ELSEIF (TYPE.EQ.2) THEN
WRITE(6,355) N
355 FORMAT(5X,'# OF DEPENDENT ALPHAS: ',I3,/)
ENDIF
WRITE(6,400) UX
400 FORMAT(10X,'CHI-SQUARED VALUE IS : ',F12.4,/)
WRITE(6,410) DF,PCHI
410 FORMAT(12X,'df = ',I5,11X,'p < ',F8.5)
C
C CLOSE FILES
500 CLOSE(5)
CLOSE(6)
GOTO 900
700 WRITE(*,701)
701 FORMAT(' ERROR IN INPUT FILE!!',\)
900 STOP
END