Message for Frederic Villamayor

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Message for Frederic Villamayor

Marta Garcia-Granero
Sorry pals for using this channel to contact Frederic, but I'm afraid
my gmail account is blocked by his mail server.

Frederic

Te he mandado una versión incompleta (si es que no se pueden tener
varias ventanas de sintaxis abiertas a la vez...). La que te he
mandado hace un momento no presentaba la heterogeneidad global.

Este es el código completo y correcto:

* MICRONUCLEUS TEST IN RATS: Dosis 0 data at 24 h , males vs females *.
DATA LIST LIST/Gender Animal x m (4 F8).
BEGIN DATA
1  2 3 2000
1  4 1 2000
1  6 1 2000
1  8 0 2000
1 10 2 2000
2  1 1 2000
2  3 1 2000
2  5 0 2000
2  7 5 2000
2  9 1 2000
END DATA.

MATRIX.
GET data/VAR=ALL/NAMES=vnames.
PRINT data
 /FORMAT='F8'
 /CNAMES=vnames
 /TITLE='Input data'.
COMPUTE n=NROW(data).
* Chi-square omega for all data *.
COMPUTE x=data(:,3).
COMPUTE m=data(:,4).
COMPUTE p=x/m.
COMPUTE GrandP=CSUM(x)/CSUM(m).
COMPUTE
ChiOmega=(CSUM(x&*p)-(CSUM(x)*GrandP))/(GrandP*(1-GrandP)).
COMPUTE ChiOSig=1-CHICDF(ChiOmega,n-1).
PRINT {ChiOmega, ChiOSig}
 /FORMAT='F8.3'
 /CLABEL='Chi²','Sig.'
 /TITLE='Heterogeneity test (all data together)'.
* Chi-square omega (within groups) *.
COMPUTE Grouped=T(DESIGN(data(:,1)))*data(:,3:4).
COMPUTE groups=DESIGN(data(:,1)).
COMPUTE ni=CSUM(groups).
COMPUTE Groupsp=groups&*(p*MAKE(1,NCOL(ni),1)).
COMPUTE GrandX=Grouped(:,1).
COMPUTE GrandP=Grouped(:,1)/Grouped(:,2).
COMPUTE
ChiOmega=(T(T(x)*Groupsp)-GrandX&*GrandP)/(GrandP&*(1-GrandP)).
COMPUTE ChiOSig=MAKE(NCOL(ni),1,0).
LOOP i=1 TO NCOL(ni).
- COMPUTE ChiOSig(i)=1-CHICDF(ChiOmega(i),(ni(i)-1)).
END LOOP.
PRINT {ChiOmega, ChiOSig}
 /FORMAT='F8.3'
 /CLABEL='Chi²','Sig.'
 /RLABELS='Group 1','Group 2','Group 3','Group 4','Group 5'
 /TITLE='Heterogeneity test (by gender)'.
* Chi-square beta (between groups heterogeneity) *.
COMPUTE d =Grouped(:,1).
COMPUTE ti=Grouped(:,2).
COMPUTE p=d/ti.
COMPUTE GrandP=CSUM(d)/CSUM(ti).
COMPUTE
ChiBeta=(CSUM(d&*p)-(CSUM(d)*GrandP))/(GrandP*(1-GrandP)).
COMPUTE ChiBSig=1-CHICDF(ChiBeta,NCOL(ni)-1).
PRINT {ChiBeta,ChiBSig}
 /FORMAT='F8.3'
 /CLABEL='Chi²','Sig.'
 /TITLE='Between genders heterogeneity'.
DO IF MMIN(ChiOSig) LT 0.05.
- COMPUTE F=(ChiBeta/(NCOL(ni)-1))/(MSUM(ChiOmega)/MSUM(ni-1)).
- COMPUTE FSig=1-FCDF(F,(NCOL(ni)-1),MSUM(ni-1)).
END IF.
PRINT {F,FSig}
 /FORMAT='F8.3'
 /CLABELS='F Stat','Sig.'
 /TITLE='F Statistic and significance'.
END MATRIX.

* MICRONUCLEUS TEST IN RATS: data at 24 h , 500 vs control (males+females) *.
DATA LIST LIST/Group Animal x m (4 F8).
BEGIN DATA
1  2 3 2000
1  4 1 2000
1  6 1 2000
1  8 0 2000
1 10 2 2000
1  1 1 2000
1  3 1 2000
1  5 0 2000
1  7 5 2000
1  9 1 2000
2 12 1 2000
2 14 2 2000
2 16 1 2000
2 18 1 2000
2 20 3 2000
2 11 1 2000
2 13 0 2000
2 15 1 2000
2 17 0 2000
2 19 1 2000
END DATA.

MATRIX.
GET data/VAR=ALL/NAMES=vnames.
PRINT data
 /FORMAT='F8'
 /CNAMES=vnames
 /TITLE='Input data'.
COMPUTE n=NROW(data).
COMPUTE x=data(:,3).
COMPUTE m=data(:,4).
COMPUTE p=x/m.
COMPUTE GrandP=CSUM(x)/CSUM(m).
COMPUTE Grouped=T(DESIGN(data(:,1)))*data(:,3:4).
COMPUTE groups=DESIGN(data(:,1)).
COMPUTE ni=CSUM(groups).
COMPUTE d =Grouped(:,1).
COMPUTE ti=Grouped(:,2).
COMPUTE p=d/ti.
COMPUTE GrandP=CSUM(d)/CSUM(ti).
COMPUTE
ChiBeta=(CSUM(d&*p)-(CSUM(d)*GrandP))/(GrandP*(1-GrandP)).
COMPUTE ChiBSig=1-CHICDF(ChiBeta,NCOL(ni)-1).
PRINT {ChiBeta,ChiBSig}
 /FORMAT='F8.3'
 /CLABEL='Chi²','Sig.'
 /TITLE='Differences between treated & control groups (both genders together)'.
END MATRIX.