ANEXO I Programa para el calculo del FWE, PFE y PCE utilizando la prueba de Diferencia Estudentizada No Paramétrica (DENP): C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C PROGRAMA PARA CALCULAR EL FWE,PFE Y PCE EN LA PRUEBA D.E. PROTEGIDA Y NO PROTEGIDA EN EL MODELO COMPLETAMENTE AL AZAR NO PARAMETRICO. ARCHIVO: PACODE.FOR REVISION: 4 DE NOVIEMBRE DE 2004 PROGRAMADO POR: FRANCISCO EMMELHAINZ ELIZAGA. ESTEBAN BURGUETE. JOSE FRANCISCO TAMBORERO. VER LA TESIS: "LA ESTIMACION DE FWE, PCE Y PFE EN PROCEDIMIENTOS DE PRUEBAS DE RANGO MULTIPLE EN EL DISEÑO COMPLETAMENTE AL AZAR NO PARAMETRICO." DEPARTAMENTO DE INGENIERIA INDUSTRIAL Y TEXTIL. UNIVERSIDAD DE LAS AMERICAS-PUEBLA. CHOLULA, PUEBLA, 072820. LA SIMULACION CONSIDERA UN PARAMETRO: EL NUMERO DE SIMULACIONES(IB) QUE REPRESENTA EL NUMERO DE VECES QUE SE SIMULA UN CONJUNTO DE DATOS CON UN CIERTO NUMERO DE TRATAMIENTOS Y DE REPETICIONES,CON DISTRIBUCION UNIFORME(0,1). SE RECOMIENDA USAR COMO MINIMO 500 SIMULACIONES. COMO LINEAS DE PROGRAMACION, SE TIENEN: 1. EL LENGUAJE DE PROGRAMACION USADO ES EL FORTRAN 2. LAS VARIABLES Y FUNCIONES SERAN ENTERAS SI PRINCIPIAN CON LAS LETRAS I,J,K,L,M,N. Y SERAN REALES SI PRINCIPIAN CON CUALQUIER OTRA LETRA. 3. DEBIDO A PROBLEMAS CON EL RECONOCIMIENTO DE ALGUNOS CARACTERES, SE HA DECIDIDO NO USAR ACENTOS. POR LO MISMO, SE DECIDIO USAR MAYUSCULAS EN LOS COMENTARIOS. EN EL PROGRAMA PUEDEN APARECER LINEAS EN MINUSCULAS. 4. EL PROGRAMA TRABAJA INTERACTIVAMENTE. 5. EL PROGRAMA CREA UN ARCHIVO DE SALIDA. SE DEFINEN ALGUNOS PARAMETROS CHARACTER*12 SALIDA COMMON SALIDA 45 COMMON IB CHARACTER*80 TITULO C C AQUI SE LEE EL NOMBRE DEL ARCHIVO DE C SALIDA. SI YA EXISTE UN ARCHIVO CON ESE NOMBRE, C EL PROGRAMA SE DETIENE CON UN MENSAJE DE ERROR. C 1 FORMAT(A12) PRINT*,' ' PRINT*,' INTRODUCE EL NOMBRE DEL ARCHIVO DE SALIDA(OUTPUT)' READ(*,1)SALIDA OPEN(5,FILE=SALIDA,STATUS='NEW') C C AQUI SE LEE EL TITULO. ESTE DEBE SER UNA LINEA DE C NO MAS DE 80 CARACTERES, ESTE TITULO SE PONDRA EN EL C ARCHIVO DE SALIDA. C 2 FORMAT(A80) PRINT*,' ' PRINT*,' INTRODUCE EL TITULO(UNA LINEA < 80 CARACTERES)' READ(*,2)TITULO WRITE(5,2)TITULO C C SE PONE EL MENSAJE INICIAL EN EL ARCHIVO DE SALIDA. C WRITE(5,179) 179 FORMAT(/ 110X,'PROGRAMA PARA CALCULAR EL FWE, PCE Y PFE DE '/ 210X,'LA PRUEBA D.E.(SI Y NO) PROTEGIDAS EN EL '/ 310X,'DISEÑO COMPLETAMENTE AL AZAR NO PARAMETRICO,'// 510X,'PROGRAMADO POR: FRANCISCO EMMELHAINZ.'/ 610X,' ESTEBAN BURGUETE.'/ 710X,' JOSE TAMBORERO.'/) C C SE MANDA EL NOMBRE DEL ARCHIVO DE SALIDA AL C ARCHIVO DE SALIDA. C WRITE(5,180)SALIDA 180 FORMAT(3(/),10X,'ARCHIVO DE SALIDA: ',A12) C C SE PIDE QUE SE INTRODUZCA LA SEMILLA. C 34 PRINT*,' ' PRINT*,' INTRODUCE LA SEMILLA:' PRINT*,' DEBE SER UN ENTERO MAYOR QUE 0' PRINT*,' Y MENOR QUE 2147483647' READ*,ISEMILLA IF(ISEMILLA.LE.0.OR.ISEMILLA.GE.2147483647)GO TO 34 C C LA SEMILLA SE GRABA EN EL ARCHIVO DE SALIDA. C WRITE(5,181)ISEMILLA 181 FORMAT(//10X,'SEMILLA PARA SIMULACION: ',I10) C C POR SEGURIDAD, SE DESHECHAN LOS PRIMEROS 1000 NUMEROS C GENERADOS POR LA SEMILLA. ESTO SE HACE PARA ALEATORIZAR C MEJOR LA SEMILLA, YA QUE POR CADA NUMERO QUE SE GENERA, SE 46 C OBTIENE UNA NUEVA SEMILLA. C DO 5 II=1,1000 YY=UNIFO(ISEMILLA) 5 CONTINUE C C SE FIJA EL NUMERO DE SIMULACIONES(IB). ESTE ES EL NUMERO DE C VECES QUE SE SIMULA UN CONJUNTO DE DATOS. C PRINT*,' ' PRINT*,' INTRODUCE EL NUMERO DE SIMULACIONES' READ*,IB C C ESTA INFORMACION SE MANDA AL ARCHIVO DE SALIDA. C WRITE(5,188)IB 188 FORMAT(//10X,'NUMERO TOTAL DE SIMULACIONES: ',I10) C C EN ESTA PARTE SE PREGUNTA SI SE DESEA CORRER OTRA C SIMULACION. SI SE CONTESTA CON "1" ES "SI", C PARA EL "NO" PUEDE PONERSE CUALQUIER OTRO NUMERO. C SI SE METE UN CARACTER ALFABETICO, C EL PROGRAMA TERMINA CON UN MENSAJE DE ERROR. C 300 CONTINUE PRINT*,' ' PRINT*,' DESEAS CORRER UNA SIMULACION?(SI=1)' READ(*,*)IDESEA IF(IDESEA.NE.1)GO TO 200 C C AQUI SE HACE LA LLAMADA A LA SUBRUTINA QUE HACE C LAS ESTIMACIONES DEL FWE, PCE Y PFE DE LAS PRUEBAS DE C RANGO MULTIPLE EN EL DISEÑO COMPLETAMENTE AL AZAR C NO PARAMETRICO, PROTEGIDAS Y NO PROTEGIDA. C CALL FWPCPFNP(ISEMILLA) C C SE REGRESA A PREGUNTAR SI SE DESEA ESTIMAR C EL FWE, PCE Y PFE EN OTRA COMBINACION DE C TRATAMIENTOS Y REPETICIONES. C GO TO 300 C C SI NO HAY OTRA SIMULACION POR REALIZAR, LA C INSTRUCCIÓN DEL PRINCIPIO SALTARA AL 200 CONTINUE C QUE SE ENCUENTRA AQUI ABAJO, CON LO CUAL SE IMPRIME C UN MENSAJE EN EL ARCHIVO DE SALIDA Y SE TERMINA LA C EJECUCION. C 200 CONTINUE C C MENSAJE DE FIN DEL PROGRAMA AL ARCHIVO DE SALIDA. C WRITE(5,184) C C SE CIERRA EL ARCHIVO DE SALIDA. 47 C CLOSE(5) C C UN MENSAJE FINAL DE FIN DEL PROGRAMA SE PONE EN C PANTALLA. C WRITE(*,184) 184 FORMAT(///20X,' FIN DEL PROGRAMA') STOP END C********************************************************** SUBROUTINE FWPCPFNP(ISEMILLA) C C SUBRUTINA CALCULAR EL FWE, PCE Y PFE DE LA C PRUEBA D.E. C PROTEGIDA Y NO PROTEGIDA EN EL C DISEÑO COMPLETAMENTE AL AZAR NO PARAMETRICO. C DIMENSION RMYDATA(20,20) DIMENSION RMED(20) DIMENSION XRAN(20,20) DIMENSION A(400),AORD(400) DIMENSION ARAN(400) CHARACTER*12 SALIDA COMMON SALIDA COMMON IB C C SE LEE lA INFORMACION DEL NUMERO C DE TRATAMIENTOS Y REPETICIONES. C PRINT*,' ' PRINT*,' INTRODUCE EL NUMERO DE TRATAMIENTOS' PRINT*,' Y DE REPETICIONES' READ*,NTRAT,NREP C C SE CALCULA EL NUMERO DE COMPARACIONES (N ESCOGE 2, ES C DECIR COMBINACIONES DE N TOMANDO 2 A LA VEZ). C RNTRAT=NTRAT RNCOMP=RNTRAT*(RNTRAT-1.)/2. NCOMP=RNCOMP C C EL NUMERO DE TRATAMIENTOS, REPETICIONES Y C COMPARACIONES SE MANDAN AL ARCHIVO DE SALIDA. C WRITE(5,139)NTRAT,NREP,NCOMP 139 FORMAT(//10X,'NUMERO DE TRATAMIENTOS:',I4// 1 10X,'NUMERO DE REPETICIONES:',I4// 1 10X,'NUMERO DE COMPARACIONES:',I4) C C SE PIDE LA CHI CUADRADA DE TABLAS, CON NTRAT-1 Y ALFA. C PRINT*,' INTRODUCE LA CHI CUADRADA CON ',NTRAT-1 READ*,CHICUAD C C LA INFORMACION DE LA CHI DE TABLAS SE MANDA AL 48 C ARCHIVO DE SALIDA. C WRITE(5,421)NTRAT-1,CHICUAD 421 FORMAT(//10X,'CHI DE TABLAS CON ',I3, 1' GRADOS LIBRES= ',F6.2) C C SE INICIALIZAN LOS CONTADORES DE RECHAZOS. C C IFWENP=CONTADOR FAMILYWISE NO PROTEGIDA C IFWEP=CONTADOR FAMILYWISE PROTEGIDA C IPFENP=CONTADOR PER FAMILY NO PROTEGIDA C IPFEP=CONTADOR PER FAMILY PROTEGIDA C IPFENP=0 IFWENP=0 IPFEP=0 IFWEP=0 C C EN ESTE LUGAR SE DA INICIO A LA SIMULACION. C IB=NUMERO DE SIMULACIONES. C DO 322 NXX=1,IB PRINT*,'SIMULACION No.',NXX C C SE GENERAN DATOS DE UNA UNIFORME(0,1). C LOS DATOS SE GUARDAN EN LA MATRIZ C RMYDATA(20,20). ESTOS DATOS SON COMO DATOS C OBSERVADOS. C DO 883 I=1,NTRAT DO 883 J=1,NREP RMYDATA(I,J)=UNIFO(ISEMILLA) 883 CONTINUE C C C (PARA LA H DE K-W) SE METEN LOS DATOS EN UN C VECTOR PARA SER ORDENADOS POR LA SUBRUTINA XORDEN. C XORDEN ES UNA SUBRUTINA PARA ORDENAR LOS DATOS EN C FORMA ASCENDENTE. C IND=0 DO 450 I=1,NTRAT DO 450 J=1,NREP IND=IND+1 450 A(IND)=RMYDATA(I,J) C C AQUI SE ORDENAN LOS DATOS. C XORDEN ES UNA SUBRUTINA QUE ORDENA ASCENDENTEMENTE C UN VECTOR. C ARGUMENTOS: A.....VECTOR SIN ORDENAR C NTOT.....NUMERO DE COMPONENTES DEL VECTOR C SALIDA: AORD.....VECTOR ORDENADO C NTOT=NTRAT*NREP CALL XORDEN(A,NTOT,AORD) C C SE OBTIENEN LOS RANGOS DEFINITIVOS. 49 C XRANGOS ES UNA SUBRUTINA QUE OBTIENE LOS C UN VECTOR YA ORDENADO, A LOS EMPATES LES C PROMEDIO DE SUS RANGOS CORRESPONDIENTES. C ARGUMENTOS: AORD.....VECTOR C NTOT.....NUMERO C ARAN.....VECTOR C CALL XRANGOS(AORD,NTOT,ARAN) C RANGOS DE PONE EL ORDENADO DE COMPONENTES DEL VECTOR CON LOS RANGOS. C LOS RANGOS SE ASIGNAN AL LUGAR QUE LES C CORRESPONDE, LOS RANGOS SE DEVUELVEN A C LA MATRIZ XRAN. C NT=NTRAT*NREP DO 451 I=1,NTRAT DO 451 J=1,NREP DO 451 K=1,NT IF(RMYDATA(I,J).EQ.AORD(K))XRAN(I,J)=ARAN(K) 451 CONTINUE C C SE CALCULAN LAS MEDIAS POR TRATAMIENTO. C SUMRI2=SUMA DE LOS TOTALES DE LOS C RANGOS AL CUADRADO. C RMED(I)=TOTAL DE LOS RANGOS DEL C TRATAMIENTO I C R=NREP SUMRI2=0 DO 566 I=1,NTRAT RMED(I)=0 DO 567 J=1,NREP 567 RMED(I)=RMED(I)+XRAN(I,J) SUMRI2=SUMRI2+RMED(I)*RMED(I) 566 CONTINUE C C CALCULO DEL ESTADISTICO DE C KRUSKAL-WALLIS. C T=NTRAT R=NREP RPT=T*R H=12.*SUMRI2/(RPT*R*(RPT+1.))-3.*(RPT+1.) C C CALCULO DEL NUMERO DE RECHAZOS. C RNRECH=RECHNUM(RMYDATA,NTRAT,NREP,ISEMILLA) ICONT=RNRECH C C AQUI SE GUARDAN ESTOS RESULTADOS C PARA LOS CONTADORES DEL FWE Y PFE PARA LA PRUEBA C NO PROTEGIDA C IPFENP=IPFENP+ICONT IF(ICONT.GE.1)IFWENP=IFWENP+1 C C AQUI SE GUARDAN LOS RESULTADOS PARA LOS CONTADORES 50 C DEL FWE Y PFE DE LA PRUEBA PROTEGIDA. C IF(H.LT.CHICUAD)GO TO 322 IPFEP=IPFEP+ICONT IF(ICONT.GE.1)IFWEP=IFWEP+1 C C AQUI SE TERMINA EL LOOP DE LAS SIMULACIONES. C 322 CONTINUE C C EN ESTA PARTE SE CUANTIFICAN LOS ERRORES, SE C ESTABLECEN LOS INTERVALOS DE CONFIANZA Y SE C IMPRIMEN EN EL ARCHIVO DE SALIDA. C C PRUEBA NO PROTEGIDA. C C PRIMERAMENTE SE RESUELVE EL PROBLEMA PARA EL C FWE. EL FWE PUEDE CONCEBIRSE COMO LA PROPORCION C DE VECES QUE HUBO POR LO MENOS UN RECHAZO. EN C ESTE PROCESO, UN RECHAZO ES UNA COMPARACION C ERRONEA. C C RECORDAR: C RIB= NUMERO DE SIMULACIONES. C RIREPB= NUMERO DE REPETICIONES POR SIMULACION. C RNCOMP= NUMERO DE COMPARACIONES. C RIB=IB RNCOMP=NCOMP C C INFERENCIA PARA FWE. C RFWENP=IFWENP RFWENP=RFWENP/RIB C C AHORA SE RESUELVE EL PROBLEMA PARA EL PFE. EL FWE C PUEDE VERSE COMO EL NUMERO PROMEDIO DE RECHAZOS. C YA QUE SE TRATA DE UNA MEDIA, PUEDE ARGUMENTARSE C QUE EL TEOREMA DEL LIMITE CENTRAL ES APLICABLE. C RPFENP=IPFENP RPFENP=RPFENP/RIB C C EN ESTA PARTE SE REALIZA LA INFERENCIA PARA C EL PCE. POR DEFINICION, EL PCE ES IGUAL AL C PFE DIVIDIDO POR EL NUMERO DE COMPARACIONES. C POR LO QUE USANDO ESTA PROPIEDAD, SE OBTIENE C EL INTERVALO DE CONFIANZA. C RPCENP=RPFENP/RNCOMP C C AQUI SE IMPRIMEN FWE,PFE Y PCE, DE LA PRUEBA C NO PROTEGIDA EN EL ARCHIVO DE SALIDA. C WRITE(5,864)RFWENP,RPFENP,RPCENP 864 FORMAT(// 10X,' PRUEBA NO PROTEGIDA', 1 //10X,' FWE: ',F12.6, 51 1 1 C C C C C C C C //10X,' PFE: ',F12.6, //10X,' PCE: ',F12.6) PRUEBA PROTEGIDA. PRIMERAMENTE SE RESUELVE EL PROBLEMA PARA EL FWE. EL FWE PUEDE CONCEBIRSE COMO LA PROPORCION DE VECES QUE HUBO POR LO MENOS UN RECHAZO. EN ESTE PROCESO, UN RECHAZO ES UNA COMPARACION ERRONEA. RIB=IB RNCOMP=NCOMP C C INFERENCIA PARA FWE. C RFWEP=IFWEP RFWEP=RFWEP/RIB C C AHORA SE RESUELVE EL PROBLEMA PARA EL PFE. EL FWE C PUEDE VERSE COMO EL NUMERO PROMEDIO DE RECHAZOS. C YA QUE SE TRATA DE UNA MEDIA, PUEDE ARGUMENTARSE C QUE EL TEOREMA DEL LIMITE CENTRAL ES APLICABLE. C RPFEP=IPFEP RPFEP=RPFEP/RIB C C EN ESTA PARTE SE REALIZA LA INFERENCIA PARA C EL PCE. POR DEFINICION, EL PCE ES IGUAL AL C PFE DIVIDIDO POR EL NUMERO DE COMPARACIONES. C RPCEP=RPFEP/RNCOMP C C AQUI SE IMPRIMEN FWE,PFE Y PCE, DE LA PRUEBA C PROTEGIDA EN EL ARCHIVO DE SALIDA. C WRITE(5,863)RFWEP,RPFEP,RPCEP 863 FORMAT(// 10X,' PRUEBA PROTEGIDA', 1 //10X,' FWE: ',F12.6, 1 //10X,' PFE: ',F12.6, 1 //10X,' PCE: ',F12.6,// 210X,'______________________________') C C SE REGRESA AL PROGRAMA PRINCIPAL. C RETURN END C*********************************************************** FUNCTION UNIFO(IX) C C GENERADOR DE NUMEROS ALEATORIOS IMPLEMENTANDO LOS RECURSOS: C IX=16807*IX MOD (2**(31)-1) C USANDO SOLO 32 BITS, ICLUYENDO SIGNO. C C ALGUNOS COMPILADORES REQUIEREN LA DECLARACION: C INTEGER*4 IX, K1 C 52 C C C C C C C C C INPUT IX= ENTERO MAYOR QUE 0 Y MENOR QUE 2147483647 OUTPUT IX= NUEVO VALOR PSEUDO-ALEATORIO, UNIF= UNA FRACCION UNIFORME ENTRE 0 Y 1 LA FUNCION GENERADORA DE NUMEROS ALEATORIOS K1=IX/127773 IX=16807*(IX-K1*127773)-K1*2836 IF(IX.LE.0.OR.IX.GE.2147483647)IX=IX+2147483647 UNIFO=IX*4.65661287e-10 RETURN END C*************************************************************** SUBROUTINE XORDEN (X,N,XORD) C C ESTA SUBRUTINA RECIBE UN VECTOR X Y REGRESA UN VECTOR C ORDENADO EN XORD EN FORMA ASCENDENTE. C REAL X(400),XORD(400) C C SE PONEN LAS OBSERVACIONES EN EL VECTOR XORD, Y AHI ES C DONDE SE ORDENAN C DO 44 I=1,N 44 XORD(I)=X(I) DO 45 I=1,N-1 DO 45 J=I+1,N IF (XORD(I) .LT. XORD(J)) GO TO 45 TEMP=XORD(I) XORD(I)=XORD(J) XORD(J)=TEMP 45 CONTINUE RETURN END C******************************************************************** SUBROUTINE XRANGOS(X,N,XRAN) C C ESTA SUBRUTINA RECIBE UN VECTOR X, YA ORDENADO, Y REGRESA UN C VECTOR XRAN CON LOS RANGOS DE CADA OBSERVACION CALCULANDO EL C PROMEDIO DE LOS RANGOS CORRESPONDIENTES, EL ORDEN DE LOS VECTORES C ES N. C DIMENSION X(400) REAL XRAN(400) C C SE ASIGNAN LOS RANGOS EN BRUTO C DO 80 I=1,N 80 XRAN(I)=I IF (N .EQ. 1) GO TO 400 I=0 90 I=I+1 C C CONTAR CUANTOS SON IGUALES A X(I) (INCLUYENDO A X(I)) 53 C ICONT=0 DO 71 J=I,N IF (X(I) .EQ. X(J)) ICONT =ICONT+1 71 CONTINUE C C C SE CALCULA LA SUMA DE LOS RANGOS IGUALES A X(I) SUM=0 DO 81 K=I, I+ICONT-1 81 SUM=SUM+XRAN(K) C C C SE CALCULA EL PROMEDIO Y SE ASIGNA A LOS RANGOS RCONT=ICONT DO 82 K=I, I+ICONT-1 82 XRAN(K)=SUM/RCONT I=I+ICONT-1 IF (I .EQ. N) GO TO 400 GOTO 90 400 CONTINUE RETURN END C************************************************************** FUNCTION RECHNUM(X,NTRAT,NREP,ISEMI) C C ESTA FUNCION SIRVE PARA CALCULAR EL NUMERO DE RECHAZOS C QUE SE PRODUCEN CUANDO SE APLICA LA PRUEBA DE A UN C CONJUNTO DE DATOS QUE SE ENCUENTRA EN LA MATRIZ X C C X=(( X(I,J) )), I=1,NTRAT; J=1,NREP. C ISEMI= SEMILLA PARA LA SIMULACION. C REAL X(20,20),RANPORD(400) REAL XX(400),XXORD(400),RANPROM(20) REAL VECRAN(400) REAL XRANGOS(20,20) REAL XS(20,20),RANPORDS(400) REAL XXS(400),XXORDS(400),RANPROMS(20) REAL DIF(20,20),DIFS(20,20) INTEGER NUMRECH(20,20) INTEGER IRANGOSS(20,20) C -----------------------C - LOS DATOS ESTÁN EN LA MATRIZ X C ---------------------------------------C - LOS DATOS SE METEN EN EL VECTOR (XXORD) C ---------------------------------------IND=0 DO 2 I=1,NTRAT DO 2 J=1,NREP IND=IND+1 XX(IND)=X(I,J) XXORD(IND)=XX(IND) 2 CONTINUE NT=NTRAT*NREP C C --------------------------------------------- 54 C C C C C C C C C C C C C C - SE ORDENAN LOS DATOS EN EL VECTOR (XXORD) --------------------------------------------NT=NTRAT*NREP DO 20 I=1,NT-1 DO 20 J=I+1,NT IF(XXORD(I).LE.XXORD(J)) GO TO 20 T=XXORD(I) XXORD(I)=XXORD(J) XXORD(J)=T 20 CONTINUE ------------------------------------------------ SE ASIGNAN LOS RANGOS A LA MATRIZ (XRANGOS) -----------------------------------------------CALL EMPATE(XXORD,NT,VECRAN) DO 15 I=1,NTRAT DO 15 J=1,NREP DO 15 K=1,NT IF(X(I,J).EQ.XXORD(K))XRANGOS(I,J)=VECRAN(K) 15 CONTINUE ------------------------------------------------- SE SACAN LAS MEDIAS POR TRATAMIENTO (RANPROM) ------------------------------------------------RNREP=NREP DO 21 I=1,NTRAT SUM=0.0 DO 22 J=1,NREP 22 SUM=SUM+XRANGOS(I,J) 21 RANPROM(I)=SUM/RNREP DO 24 I=1,NTRAT 24 RANPORD(I)=RANPROM(I) ------------------------------------ SE ORDENAN LAS MEDIAS (RANPORD) EN FORMA ASCENDENTE RANPORD=RANgo Promedio ORDenado -----------------------------------DO 28 I=1,NT-1 DO 18 J=I+1,NT IF(RANPORD(I).LE.RANPORD(J)) GO TO 18 T=RANPORD(I) RANPORD(I)=RANPORD(J) RANPORD(J)=T 18 CONTINUE 28 CONTINUE C --------------------------------------------------C -SE CALCULA LA MATRIZ DE DIFERENCIAS C ENTRE MEDIAS ORDENADAS C --------------------------------------------------DO 348 I=1,NTRAT-1 DO 348 J=I+1,NTRAT DIF(I,J)=ABS(RANPORD(I)-RANPORD(J)) 348 CONTINUE C------------------------------------------------------C INICIO DE LA SIMULACION C------------------------------------------------------C C EN ESTE PROGRAMA EN PARTICULAR, SOLO SE CUENTAN LOS 55 C C C C C C C C C C C C C C C C C C C C C C C C RECHAZOS. EN TOTAL EL NUMERO DE SIMULACIONES PUEDE FIJARSE CON EL PARAMETRO NTSIM. EN LA SIGUIENTE ASIGNACION SE PUEDE DAR EL VALOR DE NTSIM...NOTE: NTSIM=3000 IX=SEMILLA NTSIM=3000 DO 333 I=1,NTRAT DO 333 J=1,NREP 333 NUMRECH(I,J)=0 DO 724 ICCCC=1,NTSIM ----------------------------- SE GENERAN LOS DATOS (XS) ----------------------------DO 23 I=1,NTRAT DO 23 J=1,NREP 23 XS(I,J)=UNIFO(ISEMI) ------------------------------------- DATOS SIMULADOS A LOS VECTORES XXS Y XXORDS ------------------------------------INDS=0 DO 12 I=1,NTRAT DO 12 J=1,NREP INDS=INDS+1 XXS(INDS)=XS(I,J) XXORDS(I)=XXS(INDS) 12 CONTINUE ------------------------------ ORDENA EL VECTOR (XXORDS) -----------------------------DO 120 I=1,NT-1 DO 110 J=I+1,NT IF(XXORDS(I).LE.XXORDS(J)) GO TO 110 T=XXORDS(I) XXORDS(I)=XXORDS(J) XXORDS(J)=T 110 CONTINUE 120 CONTINUE ------------------------------------------------ SE ASIGNAN LOS RANGOS A LA MATRIZ (IRANGOSS) -----------------------------------------------DO 115 I=1,NTRAT DO 115 J=1,NREP DO 115 K=1,NT IF(XS(I,J).EQ.XXORDS(K))IRANGOSS(I,J)=K 115 CONTINUE --------------------------------------- SE SACAN LAS MEDIAS/TRAT (RANPROMS) --------------------------------------RRR2=NREP DO 121 I=1,NTRAT SUM=0.0 DO 122 J=1,NREP RRR1=IRANGOSS(I,J) 56 122 SUM=SUM+RRR1 121 RANPROMS(I)=SUM/RRR2 C -----------------------------------C - SE ORDENAN LAS MEDIAS (RANPORDS) C -----------------------------------DO 124 I=1,NTRAT 124 RANPORDS(I)=RANPROMS(I) DO 128 I=1,NTRAT-1 DO 118 J=I+1,NTRAT IF(RANPORDS(I).LE.RANPORDS(J)) GO TO 118 T=RANPORDS(I) RANPORDS(I)=RANPORDS(J) RANPORDS(J)=T 118 CONTINUE 128 CONTINUE C --------------------------------------------------C - CALCULO DE LAS DIFERENCIAS SIMULADAS C -------------------------------------------------DO 1348 I=1,NTRAT-1 DO 1348 J=I+1,NTRAT 1348 DIFS(I,J)=ABS(RANPORDS(I)-RANPORDS(J)) C ---------------------------------------------------C - CALCULO DEL NUMERO DE RECHAZOS C ---------------------------------------------------DO 1232 I=1,NTRAT-1 DO 1232 J=I+1,NTRAT IF(DIFS(I,J).GE.DIF(I,J))NUMRECH(I,J)=NUMRECH(I,J)+1 1232 CONTINUE C C TERMINA EL LOOP DE LAS SIMULACIONES C 724 CONTINUE C C CALCULO DE LOS PVALUES DE CADA COMPARACION C Y DEL NUMERO DE RECHAZOS. C RRRRR=NTSIM RECHNUM=0 DO 1234 I=1,NTRAT-1 DO 1234 J=I+1,NTRAT T=NUMRECH(I,J) PVAL=T/RRRRR IF(PVAL.LE.0.05)RECHNUM=RECHNUM+1. 1234 CONTINUE C --------------------------------------------------------C - FINAL DE LA SUBRUTINAC --------------------------------------------------------RETURN END C************************************************************************ ** SUBROUTINE EMPATE(X,N,XRAN) REAL X(N),XRAN(N) C C SE ASIGNAN LOS RANGOS EN BRUTO C DO 80 I=1,N 57 80 XRAN(I)=I IF(N.EQ.1)GO TO 400 I=0 90 I=I+1 C C CONTAR CUANTOS SON IGUALES A X(I) (INCLUYENDO A X(I)) C ICONT=0 DO 71 J=I,N IF(X(I).EQ.X(J))ICONT=ICONT+1 71 CONTINUE C C SE CALCULA LA SUMA DE LOS RANGOS IGUALES A X(I) C SUM=0 DO 81 K=I,I+ICONT-1 81 SUM=SUM+XRAN(K) C C SE CALCULA EL PROMEDIO Y SE ASIGNA A LOS RANGOS C RCONT=ICONT DO 82 K=I,I+ICONT-1 82 XRAN(K)=SUM/RCONT I=I+ICONT-1 IF(I.EQ.N)GO TO 400 GO TO 90 400 CONTINUE RETURN END 58