############################################################## # # # ICMPA - Macro para calcular índices de capacidade # # multivariados para processos autocorrelacionados # # # # Nota: Esta macro foi projetada para o MINITAB WINDOWS, # # versão 14 ou posterior # # # # Autora: Bruna de Castro Dias Bicalho # # Bacharel em Estatística - UFMG # # Orientadora: Profa. Sueli Aparecida Mingoti # # Ph.D em Estatística - Iowa State University # # # # Versão 1.0 # # Ano 2005 # # Departamento de Estatística - UFMG # # # ############################################################## MACRO INDICES; DADOS D.1-D.N; MCOVA MC.1-MC.M; PARS MP; MEDIAS MDS; ALFA A; TAM CR. MCOLUMN D.1-D.N MC.1-MC.M MP MDS MCONSTANT A N M CR # D.1-D.N : COLUNAS ONDE OS DADOS ESTAO ARMAZENADOS # MC.1-MC.M : COLUNAS ONDE A MATRIZ DE COVARIANCIA DOS # RESIDUOS DO MODELO AR(1) ESTAO ARMAZENADAS # MDS : COLUNA ONDE ESTAO ARMAZENADAS AS MEDIAS DO # MODELO AR(1) # ALFA : NIVEL DE SIGNIFICANCIA # VALOR PADRÃO PARA O NIVEL DE SIGNIFICANCIA DEFAULT A = 5 # VALOR PADRAO PARA O TAMANHO DE VETORES COM DIST. NORMAL # MULTIVARIADA QUE SERAO GERADOS NO CALCULO DE C RO DE ZERO ALFA DEFAULT CR = 10000 IF N > 1 MTITLE "O usuário informou os dados:" CALL CASO1 D.1-D.N; ALFA A; TAM CR. ELSEIF M > 1 MTITLE "O usuário informou a matriz de covariância dos resíduos do modelo AR(1),a coluna" MTITLE "de parâmetros do modelo e a coluna de médias das características de interesse:" CALL CASO2 MC.1-MC.M; PARS MP; MEDIAS MDS; ALFA A; TAM CR. ENDIF ENDMACRO ########################################### # PRIMEIRO CASO: DADOS BRUTOS DISPONÍVEIS # ########################################### MACRO CASO1 D.1-D.N; ALFA A; TAM CR. MCOLUMN D.1-D.N MED DP VAR RESI.1-RESI.N COEFS.1-COEFS.N MCOLUMN FITS.1-FITS.N MP MD TEMP.1-TEMP.N MC.1-MC.N MG.1-MG.N MGD MCOLUMN RMGD MV CROALFA.1-CROALFA.N DMCORR RDMCORR CRO.1-CRO.N ZT MCOLUMN RESP LIE LSE MDE CHOICE RI SIGMA SIGMAS CPM R1 R2 CPI MCOLUMN CPKM1 CPKM2 CPK MMATRIX MPARS MCOVA MGAMA DGMGAMA MCORR MCONSTANT A CR I N J CROZALFA V ID_CPM ID_CPKM ID_CPMM NOTITLE BRIEF 0 # CALCULO DA MEDIA E DA VARIANCIA DOS DADOS DO I = 1 : N LET MED(I) = MEAN(D.I) LET DP(I) = STDEV(D.I) LET VAR(I) = (STDEV(D.I))**2 ENDDO # AJUSTAR O MODELO AR(1) PARA CADA UMA DAS N CARACTERISTICAS # E ARMAZENAR OS PARÂMETROS PHI, A CONSTANTE E OS RESIDUOS DO I = 1 : N ARIMA 1 0 0 D.I RESI.I FITS.I COEFS.I; CONSTANT. # ARMAZENAR A COLUNA DE PARAMETROS PHI DO MODELO AR(1) LET MP(I) = COEFS.I(1) # ARMAZENAR A COLUNA DE MEDIAS DO MODELO AR(1) LET MD(I) = COEFS.I(2) / (1 - COEFS.I(1)) ENDDO # TRANSFORMA A COLUNA DE PARAMETROS PHI EM UMA MATRIZ DIAGONAL # PARA O CALCULO DA MATRIZ DE COVARIANCIA CRUZADA DE LAG ZERO DIAGONAL MP MPARS # TRANSFORMA A MATRIZ DIAGONAL DE PARAMETROS PHI EM N COLUNAS # PARA O CALCULO DA MATRIZ DE COVARIANCIA CRUZADA DE LAG ZERO COPY MPARS TEMP.1-TEMP.N # CALCULO DA MATRIZ DE COVARIANCIA DOS RESIDUOS DO MODELO AR(1) COVARIANCE RESI.1-RESI.N MCOVA # TRANSFORMA A MATRIZ DE COVARIANCIA DOS RESIDUOS MCOVA EM N COLUNAS COPY MCOVA MC.1-MC.N # CALCULO DA MATRIZ DE COVARIANCIA CRUZADA DE LAG ZERO DO I = 1 : N DO J = 1 : N LET MG.I(J) = MC.I(J) / (1 - TEMP.I(I)*TEMP.J(J)) ENDDO ENDDO # TRANSFORMA AS COLUNAS "MG.1-MG.N" NA MATRIZ DE COVARIANCIA # CRUZADA DE LAG ZERO COPY MG.1-MG.N MGAMA # CALCULO DA MATRIZ DE CORRELACAO CRUZADA DE LAG ZERO # TRANSFORMA A MATRIZ DE COVARIANCIA CRUZADA DE LAG ZERO # EM UMA MATRIZ DIAGONAL DIAGONAL MGAMA MGD # FAZ A RAIZ QUADRADA LET RMGD = SQRT(MGD) LET MGD = 1/SQRT(MGD) # TRANSFORMA A COLUNA EM UMA MATRIZ DIAGONAL MGD DGMGAMA # MULTIPLICACAO DE MATRIZES PARA ENCONTRAR A MATRIZ # DE CORRELACAO CRUZADA DE LAG ZERO MULTIPLY DGMGAMA MGAMA MCORR MULTIPLY MCORR DGMGAMA MCORR # DIAGONAL DA MATRIZ DE CORRELACAO CRUZADA DE LAG ZERO DIAGONAL MCORR DMCORR # RAIZ DA MATRIZ DIAGONAL DE CORRELACAO CRUZADA DE LAG ZERO LET RDMCORR = SQRT(DMCORR) LET DMCORR = 1/SQRT(DMCORR) # CALCULO DE C_RO_ZERO_ALFA # CALCULO DO VETOR DE TAMANHO N DE MEDIAS ZERO DO I = 1 : N LET MV(I) = 0 ENDDO # GERAR VETORES ALEATORIOS SEGUINDO UMA DISTRIBUICAO NORMAL # MULTIVARIADA COM VETOR DE MEDIAS ZERO E MATRIZ DE COVARIANCIA # IGUAL A MATRIZ DE CORRELACAO CRUZADA DE LAG ZERO RANDOM CR CROALFA.1-CROALFA.N; MNORMAL MV MCORR. # CALCULO DE Zt DO I = 1 : N DO J = 1 : CR LET CROALFA.I(J) = (CROALFA.I(J) - MV(I))/DMCORR(I) ENDDO ENDDO DO I = 1 : N DO J = 1 : CR LET CRO.I(J) = ABSOLUTE (CROALFA.I(J)) ENDDO ENDDO RMAX CRO.1-CRO.N ZT SORT ZT ZT LET V = (100 - A)/100 LET V = ROUND(CR*V) LET CROZALFA = ZT(V) # IMPRESSÃO DOS DADOS BRIEF 1 MTITLE 'PRIMEIRA PARTE : Informações fornecidas pelos dados' MTITLE 'para o cálculo dos índices de capacidade multivariados' MTITLE 'Média dos dados' PRINT MED MTITLE 'Desvio-padrão dos dados' PRINT DP MTITLE 'Variância dos dados' PRINT VAR MTITLE 'Vetor de médias calculadas pelo modelo AR(1)' PRINT MD MTITLE 'Vetor de parâmetros phi do modelo AR(1)' PRINT MP MTITLE 'Matriz de covariância dos resíduos do modelo AR(1)' PRINT MCOVA MTITLE 'Matriz de covariância cruzada de lag zero' PRINT MGAMA MTITLE 'Matriz de correlação cruzada de lag zero' PRINT MCORR MTITLE 'Valor de c rô zero alfa' PRINT CROZALFA # CALCULO DOS INDICES DE CAPACIDADE MULTIVARIADOS # ENTRADA DE DADOS BRIEF 1 MTITLE 'SEGUNDA PARTE: CÁLCULO DOS ÍNDICES DE CAPACIDADE MULTIVARIADOS' NOTE NOTE Informe os limites inferiores de especificação: NOTE IMPORTANTE: O usuário deve entrar com os dados mantendo NOTE sempre a mesma ordem das variáveis envolvidas no processo. SET RESP; FILE 'TERMINAL'; NOBS N. LET LIE = RESP NOTE Informe os limites superiores de especificação: NOTE ATENÇÃO: O usuário deve entrar com os dados mantendo NOTE sempre a mesma ordem das variáveis envolvidas no processo. SET RESP; FILE 'TERMINAL'; NOBS N. LET LSE = RESP NOTE Informe o vetor de médias de especificação. NOTE ATENÇÃO: O usuário deve entrar com os dados mantendo NOTE sempre a mesma ordem das variáveis envolvidas no processo. SET RESP; FILE 'TERMINAL'; NOBS N. LET MDE = RESP BRIEF 1 MLABEL 1 NOTE NOTE Escolha o índice de capacidade multivariado que deseja calcular: NOTE NOTE 1 - Primeiro caso: O vetor de médias do processo é igual ao vetor de NOTE médias de especificação. NOTE Cálculo do índice CPM. NOTE NOTE 2 - Segundo caso: O processo não está centrado no vetor de médias de NOTE especificação. NOTE Cálculo do índice CPKM. NOTE NOTE 3 - Terceiro caso: Os limites de especificação não estão centrados no NOTE vetor de médias nominais de especificação. NOTE Cálculo do índice CPMM. NOTE NOTE 4 - Sair SET CHOICE; FILE 'TERMINAL'; NOBS 1. IF CHOICE = 1 DIAG MGAMA SIGMA LET SIGMAS = SQRT(SIGMA) LET RI = LSE - LIE LET CPM = RI / (SIGMAS*CROZALFA) LET ID_CPM = MIN(CPM) BRIEF 1 MTITLE 'Vetor dos índices de capacidade multivariado CP' MTITLE 'para cada uma das características de interesse:' PRINT CPM MTITLE "Índice de capacidade multivariado - CPM" PRINT ID_CPM IF ID_CPM >= 1 NOTE O processo é capaz. ELSE NOTE O processo não é capaz. ENDIF BRIEF 1 GOTO 1 ELSE IF CHOICE = 2 LET CPKM1 = (MD - LIE) / CROZALFA LET CPKM2 = (LSE - MD) / CROZALFA RMIN CPKM1-CPKM2 CPK LET ID_CPKM = MIN(CPK) BRIEF 1 MTITLE 'Vetor dos índices de capacidade multivariado CPK' MTITLE 'para cada uma das características de interesse:' PRINT CPK MTITLE 'Índice de capacidade multivariado - CPKM' PRINT ID_CPKM IF ID_CPKM >= 1 NOTE O processo é capaz. ELSE NOTE O processo não é capaz. ENDIF BRIEF 1 GOTO 1 ELSE IF CHOICE = 3 DIAG MGAMA SIGMA LET SIGMAS = SQRT(SIGMA) LET R1 = MDE - LIE LET R2 = LSE - MDE LET CPI = (R1 + R2)/(2*SIGMAS*CROZALFA) LET ID_CPMM = MIN(CPI) BRIEF 1 MTITLE 'Vetor dos índices de capacidade multivariado CPI' MTITLE 'para cada uma das características de interesse:' PRINT CPI MTITLE "Índice de capacidade multivariado - CPMM" PRINT ID_CPMM IF ID_CPMM >= 1 NOTE O processo é capaz. ELSE NOTE O processo não é capaz. ENDIF BRIEF 1 GOTO 1 ELSE IF CHOICE = 4 BRIEF 1 EXIT ENDIF ENDMACRO ############################################################## # SEGUNDO CASO: MATRIZ COVARIANCIA, PARAMETROS E MEDIAS DADOS# ############################################################## MACRO CASO2 MC.1-MC.M; PARS MP; MEDIAS MDS; ALFA A; TAM CR. MCOLUMN MC.1-MC.M MP MDS TEMP.1-TEMP.M MG.1-MG.M MGD RMGD MCOLUMN DMCORR RDMCORR MV CROALFA.1-CROALFA.M CRO.1-CRO.M ZT MCOLUMN RESP CHOICE LIE LSE MDE SIGMA SIGMAS RI CPM CPKM1 MCOLUMN CPKM2 CPK R1 R2 CPI MCONSTANT M CR I J A V CROZALFA ID_CPM ID_CPKM ID_CPMM MMATRIX MCOVA MPARS MGAMA DGMGAMA MCORR NOTITLE # CALCULO DA MATRIZ DE COVARIANCIA DOS RESIDUOS DO MODELO AR(1) COPY MC.1-MC.M MCOVA # TRANSFORMA A COLUNA DE PARAMETROS PHI EM UMA MATRIZ DIAGONAL # PARA O CALCULO DA MATRIZ DE COVARIANCIA CRUZADA DE LAG ZERO DIAG MP MPARS # TRANSFORMA A MATRIZ DIAGONAL DE PARAMETROS PHI EM N COLUNAS # PARA O CALCULO DA MATRIZ DE COVARIANCIA CRUZADA DE LAG ZERO COPY MPARS TEMP.1-TEMP.M # CALCULO DA MATRIZ DE COVARIANCIA CRUZADA DE LAG ZERO DO I = 1 : M DO J = 1 : M LET MG.I(J) = MC.I(J)/(1 - TEMP.I(I)*TEMP.J(J)) ENDDO ENDDO # TRANSFORMA AS COLUNAS "MG.1-MG.M" NA MATRIZ DE COVARIANCIA # CRUZADA DE LAG ZERO COPY MG.1-MG.M MGAMA # CALCULO DA MATRIZ DE CORRELAÇÃO CRUZADA DE LAG ZERO # TRANSFORMA A MATRIZ DE COVARIANCIA CRUZADA DE LAG ZERO # EM UMA MATRIZ DIAGONAL DIAGONAL MGAMA MGD # FAZ A RAIZ QUADRADA LET RMGD = SQRT(MGD) LET MGD = 1/SQRT(MGD) # TRANSFORMA A COLUNA EM UMA MATRIZ DIAGONAL MGD DGMGAMA # MULTIPLICACAO DE MATRIZES PARA ENCONTRAR A MATRIZ # DE CORRELACAO CRUZADA DE LAG ZERO MULTIPLY DGMGAMA MGAMA MCORR MULTIPLY MCORR DGMGAMA MCORR # DIAGONAL DA MATRIZ DE CORRELACAO CRUZADA DE LAG ZERO DIAGONAL MCORR DMCORR # RAIZ DA MATRIZ DIAGONAL DE CORRELACAO CRUZADA DE LAG ZERO LET RDMCORR = SQRT(DMCORR) LET DMCORR = 1/SQRT(DMCORR) # CALCULO DE C_RO_ZERO_ALFA # CALCULO DO VETOR DE TAMANHO M DE MEDIAS ZERO DO I = 1 : M LET MV(I) = 0 ENDDO RAND CR CROALFA.1-CROALFA.M; MNORM MV MCORR. # CALCULO DE Zt DO I = 1 : M DO J = 1 : CR LET CROALFA.I(J) = (CROALFA.I(J) - MV(I))/DMCORR(I) ENDDO ENDDO DO I = 1 : M DO J = 1 : CR LET CRO.I(J) = ABSOLUTE (CROALFA.I(J)) ENDDO ENDDO RMAX CRO.1-CRO.M ZT SORT ZT ZT LET V = (100 - A)/100 LET V = ROUND(CR*V) LET CROZALFA = ZT(V) # IMPRESSÃO DOS DADOS BRIEF 1 MTITLE 'PRIMEIRA PARTE : Informações fornecidas pelos dados' MTITLE 'para o cálculo dos índices de capacidade multivariados' MTITLE 'Vetor de médias calculadas pelo modelo AR(1)' PRINT MDS MTITLE 'Vetor de parâmetros phi do modelo AR(1)' PRINT MP MTITLE 'Matriz de covariância dos resíduos do modelo AR(1)' PRINT MCOVA MTITLE 'Matriz de covariância cruzada de lag zero' PRINT MGAMA MTITLE 'Matriz de correlação cruzada de lag zero' PRINT MCORR MTITLE 'Valor de c rô zero alfa' PRINT CROZALFA # CALCULO DOS INDICES DE CAPACIDADE MULTIVARIADOS # ENTRADA DE DADOS BRIEF 1 MTITLE 'SEGUNDA PARTE: CÁLCULO DOS ÍNDICES DE CAPACIDADE MULTIVARIADOS' NOTE NOTE Informe os limites inferiores de especificação: NOTE ATENÇÃO: O usuário deve entrar com os dados mantendo NOTE sempre a mesma ordem das variáveis envolvidas no processo. SET RESP; FILE 'TERMINAL'; NOBS M. LET LIE = RESP NOTE Informe os limites superiores de especificação: NOTE ATENÇÃO: O usuário deve entrar com os dados mantendo NOTE sempre a mesma ordem das variáveis envolvidas no processo. SET RESP; FILE 'TERMINAL'; NOBS M. LET LSE = RESP NOTE Informe o vetor de médias de especificação. NOTE ATENÇÃO: O usuário deve entrar com os dados mantendo NOTE sempre a mesma ordem das variáveis envolvidas no processo. SET RESP; FILE 'TERMINAL'; NOBS M. LET MDE = RESP BRIEF 1 MLABEL 1 NOTE NOTE Escolha o índice de capacidade multivariado que deseja calcular: NOTE NOTE 1 - Primeiro caso: O vetor de médias do processo é igual ao vetor de NOTE médias de especificação. NOTE Cálculo do índice CPM. NOTE NOTE 2 - Segundo caso: O processo não está centrado no vetor de médias de NOTE especificação. NOTE Cálculo do índice CPKM. NOTE NOTE 3 - Terceiro caso: Os limites de especificação não estão centrados no NOTE vetor de médias nominais de especificação. NOTE Cálculo do índice CPMM. NOTE NOTE 4 - Sair SET CHOICE; FILE 'TERMINAL'; NOBS 1. IF CHOICE = 1 DIAG MGAMA SIGMA LET SIGMAS = SQRT(SIGMA) LET RI = LSE - LIE LET CPM = RI / (SIGMAS*CROZALFA) LET ID_CPM = MIN(CPM) BRIEF 1 MTITLE 'Vetor dos índices de capacidade multivariado CP' MTITLE 'para cada uma das características de interesse:' PRINT CPM MTITLE "Índice de capacidade multivariado - CPM" PRINT ID_CPM IF ID_CPM >= 1 NOTE O processo é capaz. ELSE NOTE O processo não é capaz. ENDIF BRIEF 1 GOTO 1 ELSE IF CHOICE = 2 LET CPKM1 = (MDS - LIE) / CROZALFA LET CPKM2 = (LSE - MDS) / CROZALFA RMIN CPKM1-CPKM2 CPK LET ID_CPKM = MIN(CPK) BRIEF 1 MTITLE 'Vetor dos índices de capacidade multivariado CPK' MTITLE 'para cada uma das características de interesse:' PRINT CPK MTITLE 'Índice de capacidade multivariado - CPKM' PRINT ID_CPKM IF ID_CPKM >= 1 NOTE O processo é capaz. ELSE NOTE O processo não é capaz. ENDIF BRIEF 1 GOTO 1 ELSE IF CHOICE = 3 DIAG MGAMA SIGMA LET SIGMAS = SQRT(SIGMA) LET R1 = MDE - LIE LET R2 = LSE - MDE LET CPI = (R1 + R2)/(2*SIGMAS*CROZALFA) LET ID_CPMM = MIN(CPI) BRIEF 1 MTITLE 'Vetor dos índices de capacidade multivariado CPI' MTITLE 'para cada uma das características de interesse:' PRINT CPI MTITLE "Índice de capacidade multivariado - CPMM" PRINT ID_CPMM IF ID_CPMM >= 1 NOTE O processo é capaz. ELSE NOTE O processo não é capaz. ENDIF BRIEF 1 GOTO 1 ELSE IF CHOICE = 4 BRIEF 1 EXIT ENDIF ENDMACRO