en otra ventana

Anuncio
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
Descargar