Senin, 06 Desember 2010

Descriptive Statistic Menggunakan Local Macro

macro
descriptive x;
gj miu.
mcolumn x a b c d e z S
mconstant k1 k2 k3 k4 k5 k6 k7 k8 k9 &
k10 k11 k12 k13 k14 k15 k21 k22 k23  &
k24 k25 k26 k27 k28 k29 k30 k99  &
k88 k77 k66 k31 k32 k33 k34 miu
name x('yield') a('chem') S('sort chem')&
k77('N*')k1('N')k3('rata-rata aritmatik')&
k4('rata-rata harmonik')& k7('rata-rata geometrik')
k8('simpangan rata-rata')k9('ragam')&
k10('simpangan baku')&
k11('koefisien keragaman')k12('nilai minimum')& k13('nilai maximum') k14('range')k15('SSE mean')
k25 (' kuartil 2')k28(' kuartil 1')k29('kuartil 3')&
k30('interkuartil') k34('T')
let k99=count (x)
let k88=1
let k77=0
do k66=1:k99
if x(k66)='*'
let k77=k77+1     #N*
else
let a(k88)=x(k66)
let k88=k88+1
endif
enddo
let k1=count (a)  #N
let k2=sum(a)
let k3=k2/k1      #rata-rata aritmatik
let k4=k1/sum(1/a)      #rata-rata harmonik
let z=loge(a)
let k5=sum(z)
let k6=k5/k1
let k7=exp(k6)    #rata-rata geometrik
let b= a- k3
let c=abs(b)
let k8=sum(c)/k1 #simpangan rata-rata
let d=b**2
let k9=sum(d)/(k1-1)    #ragam
let k10=sqrt(k9)  #simpangan baku
let k11= k10*100/k3     #koefisien keragaman
let S=sort(a)
let k12= S(1)     #min
let k13= S(k1)    #max
let k14=k13-k12   #range
let k15=k10/sqrt(k1)    #SE mean
Let k21 = k1 + 1
Let S= SORT(a)
Let k22 = MOD(k1,2)
Let k23 = MOD(k1,4)
if k22 = 1
Let k24= k21/ 2
Let k25 = S(k24)  #MEDIAN
if k23 = 3
Let k26 = k21 / 4
Let k27 = k24 + k26
Let k28 = S(k26)  #KUARTIL 1
Let k29 = S(k27)  #KUARTIL 3
let k30= k29-k28  #INTERKUARTIL
else
Let k26 = (k1-1) / 4
Let k27 = k24 + k26
Let k28 = (S(k26)+S(k26+1))/2 #KUARTIL 1
Let k29 = (S(k27)+S(k27+1))/2 #KUARTIL 3
let k30= k29-k28        #INTERKUARTIL
endif
else
Let k24 = k1 / 2
Let k25= (S(k24)+S(k24+1))/2  #MEDIAN
if k23 = 0
Let k26 = k1 / 4
Let k27 = k24 + k26
Let k28 = S(k26)+(S(k26+1)-S(k26))/4 #KUARTIL 1
Let k29 = S(k27)+(3*(S(k27+1)-S(k27))/4) #KUARTIL 3
let k30= k29-k28              #INTERKUARTIL
else
Let k26 = (k24-1)/2
Let k27 = k24 + k26 + 1
Let k28 = S(k26)+(3*(S(k26+1)-S(k26))/4) #KUARTIL 1
Let k29 = S(k27)+((S(k27+1)-S(k27))/4)    #KUARTIL 3
let k30= k29-k28              #INTERKUARTIL
endif
endif
let k31=k3-miu
let k32=sqrt(k1)
let k33=k10/k32
let k34= k31/k33
print x a S k77 k1 k3 k4 k7 k8 k9 k10 k11 k12 k13 k14 k15 k28 k25 k29 k30 k34
endmacro   

SORTING (Pengurutan pada suatu kolom)

SOURCE CODE
MACRO
DESCENDING A
MCOLUMN A
MCONSTANT k1 k2 k3 k4
LET k1= COUNT(A)
DO k2= 1: k1-1
 DO k3= k2+1 : k1
   IF A(k2) < A(k3)
      LET k4= A(k3)
      LET A(k3)= A(k2)
      LET A(k2)= k4
   ENDIF
 ENDDO
ENDDO
PRINT A
ENDMACRO

MACRO
ASCENDING A
MCOLUMN A
MCONSTANT k1 k2 k3 k4
LET k1= COUNT(A)
DO k2= 1: k1-1
 DO k3= k2+1 : k1
   IF A(k2) > A(k3)
      LET k4= A(k3)
      LET A(k3)= A(k2)
      LET A(k2)= k4
   ENDIF
 ENDDO
ENDDO
PRINT A
ENDMACRO