Biostatistics L12

Macro for Conducting Welch's ANOVA:
GMACRO
Welch

# Lables MUST be in C1
# Data MUST be in C2

Name k1 "I"
Let I = 1
Let k3 = N(c1) - 1
Do k2 = 1 : k3
If c1(k2) ~= c1(k2 + 1) 
Let I = I +1
ENDIf
EndDo

Name c3 'Mean' c4 "ByVar" c5 "Variance" c6 "N"
Statistics C2;
By C1;
Mean 'Mean';
GValues 'ByVar';
Variance 'Variance';
N 'N'.

Name c7 'weights'
Let 'weights' = 'N'/'Variance'

Name c8 'WeightedMean'
Let k3 = I
Do k2 = 1:k3
Let c8(k2) = sum('weights'*'Mean')/(sum('weights'))
EndDo

Name c9 'F'
Name c10 'numerator df'
Name c11 'denominator df'

Let 'F' = sum('weights'*('Mean' - 'WeightedMean')**2)/(I - 1)
Let 'F' = 'F'/( 1 + (2*(I-2)/(I**2 - 1))*sum( (1/('N' -1))*(1 - 'weights'/sum('weights'))**2))

Let c10 = I -1
Let c11 = (I**2 -1)/(3* sum( (1/('N' -1))*(1 - 'weights'/sum('weights'))**2))

Name c12 'p-value'
Let k2 = I -1
Let k3 = Floor(c11(1), 0)
CDF 'F' 'p-value';
F k2 k3.

Let c12 = 1 - c12

ENDMACRO