|
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. |
| Free forum by Nabble | Edit this page |
