################################################################################## # # # Macro: ICUPA.MAC # # Versao: 1.0 # # Data: Dezembro, 2004 # # Autores: Fernando Luiz Pereira de Oliveira (Bacharel em Estatitica-UFMG) # # Sueli Ap. Mingoti(Profa.Adjunta- UFMG - orientadora) # # # # # # Nota: Esta macro foi projetada para o MINITAB WINDOWS, versao 14 ou # # posterior # # # # # # Descrição: Esta macro implementa coeficientes de capacidade para processos # # univariados autocorrelacionados usando-se as idéias de # # Apley & Tsung (2002) e Mingoti & Glória(2003). # # # # # # # ################################################################################## MACRO MAIN DATA; DEFA DF; LENGTH D; ALFA AA. #MAIN COLUNA ONDE OS DADOS ESTAO ARMAZENADOS #DEFA O TAMANHO DA DEFASAGEM #LENGTH O QUANTIDADE DE VETORES DE REAMOSTRAGEM #ALFA O VALOR PRA CALCULO DE CRALFA E INTERVALO DE CONFIAN€A MCOLUMN DATA CHOICE DEF_1 DEF_2 ISL USL SM MCOLUMN COVA_11 COVA_12 CORR_11 CORR_12 CPM_V MCOLUMN COL1 COL2 COL3 MV CP_V CPK_5 CPK_95 CPK_M_V.1-CPK_M_V.2 MCOLUMN REA.1-REA.D UNI_CPK CP CPK.1-CPK.2 CPK_M RII.1-RII.2 MCONSTANT D_COUNT K I J CRALFA A B UNI_CP U_CPK_M MCONSTANT CPM RI C_5 C_95 DF RESP D C CPM_5 CPM_95 AA AUX MCOLUMN INDICE UREA.1-UREA.D USTDEV UCP UCPK TEMP MCONSTANT UCP_A1 UCP_A2 UCPK_A1 UCPK_A2 UCPS UCPI CPK_M1 MMATRIX COVA_1 CORR_1 DEFAULT AA = 5 DEFAULT DF = 1 DEFAULT D = 200 LET AUX = ROUND(D*(AA/100)) LET INDICE(1) = ABS(AUX) LET AUX = ROUND(D*((100-AA)/100)) LET INDICE(2) = ABS(AUX) BRIEF 1 NOTE############################################################################## NOTE# # NOTE# Macro: MONO.MAC # NOTE# Versao: 1.0 # NOTE# Data: Dezembro, 2004 # NOTE# Autores: Fernando Luiz Pereira de Oliveira (Bacharel em Estatitica-UFMG) # NOTE# Sueli Ap. Mingoti(Profa.Adjunta- UFMG - orientadora # NOTE# # NOTE# # NOTE# Nota: Esta macro foi projetada para o MINITAB WINDOWS, versao 14 ou # NOTE# posterior # NOTE# # NOTE# Descriçao:Esta macro implementa coeficientes de capacidade para processos # # univariados autocorrelacionados usando-se as idéias de # # Apley & Tsung(2002) e Mingoti & Glória(2003). # # # NOTE# # NOTE# # NOTE############################################################################## BRIEF 0 # O NUMERO DE OBSERVA€OES DA COLUNA INFORMADA # DEVE SEMPRE SER PAR. BRIEF 0 COUNT DATA D_COUNT IF MOD(D_COUNT,2) <> 0 BRIEF 1 NOTE O numero de observaçoes da coluna informada NOTE deve ser par. NOTE Macro nao pode continuar... BRIEF 0 EXIT ENDIF # AUTO CORRELA€AO DOS DADOS BRIEF 1 ACF DATA PAUSE BRIEF 0 ################################################################# ################################################################# #ENTRADA DE DADOS BRIEF 1 MTITLE 'ENTRADA DE DADOS' NOTE NOTE INFORME O LIMITE INFERIOR DE ESPECIFICAÇAO SET ISL; FILE 'TERMINAL'; NOBS 1. NOTE NOTE INFORME O LIMITE SUPERIOR DE ESPECIFICAÇAO SET USL; FILE 'TERMINAL'; NOBS 1. NOTE NOTE INFORME A MEDIA NOMINAL DE ESPECIFICAÇAO SET SM; FILE 'TERMINAL'; NOBS 1. MTITLE 'FIM ENTRADA DE DADOS' NOTE BRIEF 0 ################################################################# ################################################################# ################################################################# ################################################################# #DEFASAGEM DOS DADOS LET K = D_COUNT - DF LET I = 1 DO J = 1 : K LET DEF_1(J) = DATA(J) LET DEF_2(J) = DATA(J + DF) ENDDO ################################################################# ################################################################# ################################################################# ################################################################# #MATRIZ DE CORRELA€AOO CORR DEF_1 DEF_2 CORR_1 COPY CORR_1 CORR_11 CORR_12 ################################################################# ################################################################# ################################################################# ################################################################# #MATRIZ DE COVARIANCIA COVA DEF_1 DEF_2 COVA_1 COPY COVA_1 COVA_11 COVA_12 ################################################################# ################################################################# ################################################################# ################################################################# #CRALFA LET MV(1) = MEAN(DEF_1) LET MV(2) = MEAN(DEF_2) RAND 10000 COL1 COL2; MNOR MV COVA_1. LET COL1 = ABSO(COL1) LET COL2 = ABSO(COL2) RMAXIMUN COL1 COL2 COL3 SORT COL3 COL3 LET AUX = 10000*AA/100 LET CRALFA = COL3(AUX) ## TESTE DE VALOR DO CRALFA ## BRIEF 1 ## LET AUX = COL3(500) ## PRINT AUX ## PAUSE ## BRIEF 0 ################################################################## ################################################################## ################################################################# ################################################################# #REAMOSTRAGEM DA DEFAZAGEM LET A = 1 LET B = 2 LET C = D / 2 BRIEF 1 DO I = 1 : C SAMP K DEF_1 DEF_2 REA.A REA.B; REPLACE. LET A = A + 2 LET B = B + 2 ENDDO BRIEF 1 ################################################################# ################################################################# ################################################################# ################################################################# #IMPRESSAO BRIEF 1 NOTE DESEJA VISUALIZAR A DEFASAGEM? (Y - SIM ; N - NAO) YESNO RESP IF RESP = 1 PRINT DEF_1 DEF_2 ENDIF NOTE DESEJA VISUALIZAR MATRIZ DE CORRELAÇAO E COVARIANCIA? (Y - SIM ; N - NAO) YESNO RESP IF RESP = 1 PRINT COVA_1 CORR_1 ENDIF NOTE DESEJA VISUALIZAR O VETOR DE MEDIA NOTE AMOSTRAL? (Y - SIM ; N - NA0) YESNO RESP IF RESP = 1 PRINT MV ENDIF NOTE DESEJA VISUALIZAR O VALOR CRALFA? (Y - SIM ; N - NAO) YESNO RESP IF RESP = 1 PRIN CRALFA ENDIF NOTE DESEJA VISUALIZAR AS REAMOSTRAGENS NOTE PARA A COMPOSIÇAO DO INTERVALO DE CONFIANÇA? (Y - SIM ; N - NAO) YESNO RESP IF RESP = 1 PRINT REA.1-REA.D ENDIF BRIEF 0 ################################################################# ################################################################# #------ MENU PRINCIPAL ------# MLABEL 1 BRIEF 1 NOTE 1 - PROCESSO UNIVARIADO NOTE 2 - PROCESSO MULTIVARIADO NOTE 3 - INTERVALO DE CONFIANÇA PARA O PROCESSO MULTIVARIADO NOTE 4 - INTERVALO DE CONFIANÇA PARA O PROCESSO UNVARIADO NOTE 5 - SAIR BRIEF 0 SET CHOICE; FILE 'TERMINAL'; NOBS 1. IF CHOICE = 1 GOTO 2 ELSEIF CHOICE = 2 GOTO 3 ELSEIF CHOICE = 3 GOTO 4 ELSEIF CHOICE = 4 GOTO 5 ELSEIF CHOICE = 5 EXIT ELSE GOTO 1 ENDIF #----------------------------# #---- PROCESSO UNIVARIADO ---# MLABEL 2 BRIEF 1 MTITLE "PROCESSO UNIVARIADO" NOTE 1 - PRIMEIRO CASO CP NOTE 2 - SEGUNDO CASO CPK NOTE 3 - MENU PRINCIPAL SET CHOICE; FILE 'TERMINAL'; NOBS 1. IF CHOICE = 1 LET UNI_CP = (USL(1) - ISL(1))/(ISL(1)*STDEV(DATA)) BRIEF 1 MTITLE "PROCESSO UNIVARIADO" MTITLE "PRIMEIRO CASO: CP" NOTE PRINT UNI_CP NOTE BRIEF 0 GOTO 1 ELSEIF CHOICE = 2 LET UNI_CPK(1) = (USL(1) - MEAN(DATA))/(3*STDEV(DATA)) LET UNI_CPK(2) = (MEAN(DATA) - ISL(1))/(3*STDEV(DATA)) LET U_CPK_M = MIN(UNI_CPK) BRIEF 1 TITLE "PROCESSO UNIVARIADO" TITLE "SEGUNDO CASO: CPK" NOTE PRINT U_CPK_M NOTE BRIEF 0 GOTO 1 ELSEIF CHOICE = 3 GOTO 1 ELSE GOTO 2 ENDIF BRIEF 0 #----------------------------# #--- PROCESSO MULTIVARIADO --# MLABEL 3 BRIEF 1 MTITLE "PROCESSO MULTIVARIADO" NOTE 1 PRIMEIRO CASO: PROCESSO CENTRADO NO VETOR MEDIO NOMINAL NOTE 2 SEGUNDO CASO: PROCESSO NAO CENTRADO NO VETOR MEDIO NOMINAL NOTE 3 TERCEIRO CASO: LIMITE DE ESPECIFICAÇAO NAO CENTRADOS NO VETOR MEDIO NOMINAL NOTE 4 VOLTAR BRIEF 0 SET CHOICE; FILE 'TERMINAL'; NOBS 1. IF CHOICE = 1 LET RI = (USL(1) - SM(1)) #LET RI = (USL(1) - ISL(1))/2 LET CP(1) = RI/(STDEV(DEF_1)*CRALFA) LET CP(2) = RI/(STDEV(DEF_2)*CRALFA) LET CPM = MIN(CP) BRIEF 1 MTITLE 'PROCESSO CENTRADO NO VETOR MDIO NOMINAL' NOTITLE PRINT CPM BRIEF 0 GOTO 1 ELSEIF CHOICE = 2 LET CPK.1(1) = (MEAN(DEF_1) - ISL(1))/(CRALFA*STDEV(DEF_1)) LET CPK.1(2) = (USL(1) - MEAN(DEF_1))/(CRALFA*STDEV(DEF_1)) LET CPK.2(1) = (MEAN(DEF_2) - ISL(1))/(CRALFA*STDEV(DEF_2)) LET CPK.2(2) = (USL(1) - MEAN(DEF_2))/(CRALFA*STDEV(DEF_2)) LET CPK_M(1) = MIN(CPK.1) LET CPK_M(2) = MIN(CPK.2) NAME CPK_M 'CPK' BRIEF 1 TITLE MTITLE 'PROCESSO NAO CENTRANDO NO VETOR MDIO NOMINAL' NAME CPK_M1 'CPK'm GLOBAL' LET CPK_M1 = MIN(CPK_M) PRINT CPK_M CPK_M1 BRIEF 0 GOTO 1 ELSEIF CHOICE = 3 LET RII.1(1) = SM(1) - ISL(1) LET RII.1(2) = USL(1) - SM(1) LET RII.2(1) = SM(1) - ISL(1) LET RII.2(2) = USL(1) - SM(1) LET CP(1) = (RII.1(1) + RII.1(2))/(2*STDEV(DEF_1)*CRALFA) LET CP(2) = (RII.2(1) + RII.2(2))/(2*STDEV(DEF_2)*CRALFA) LET CPM = MIN(CP) BRIEF 1 MTITLE 'LIMITE DE ESPECIFICA€AO NAO CENTRADOS NO VETOR MDIO NOMINAL' NOTITLE PRINT CPM TITLE BRIEF 0 GOTO 1 ELSEIF CHOICE = 4 GOTO 1 ELSE GOTO 4 ENDIF #----------------------------# #-- INTERVALO DE CONFIAN€A --# MLABEL 4 BRIEF 1 MTITLE 'INTERVALO DE CONFIANÇA MULTIVARIADO' NOTE 1 PRIMEIRO CASO: PROCESSO CENTRADO NO VETOR MEDIO NOMINAL NOTE 2 SEGUNDO CASO: PROCESSO NAO CENTRADO NO VETOR MEDIO NOMINAL NOTE 3 TERCEIRO CASO: LIMITE DE ESPECIFICAÇAO NAO CENTRADOS NO VETOR MEDIO NOMINAL NOTE 4 VOLTAR NOTE 5 SAIR SET CHOICE; FILE 'TERMINAL'; NOBS 1. IF CHOICE = 1 LET A = 1 LET B = 2 LET RI = USL(1) - SM(1) DO I = 1 : C LET CP(1) = RI/((STDEV(REA.A)*CRALFA)) LET CP(2) = RI/((STDEV(REA.B)*CRALFA)) LET CP_V(I) = MIN(CP) LET A = A + 2 LET B = B + 2 ENDDO SORT CP_V CP_V BRIEF 1 MTITLE 'INTERVALO DE CONFIANÇA:' PRINT CP_V LET AUX = ROUND(INDICE(1)/2) LET C_5 = CP_V(AUX) LET AUX = ROUND(INDICE(2)/2) LET C_95 = CP_V(AUX) PRINT C_5 C_95 BRIEF 0 GOTO 4 ELSEIF CHOICE = 2 BRIEF 1 LET A = 1 LET B = 2 DO I = 1 : C LET CPK.1(1) = (MEAN(REA.A) - ISL(1))/(CRALFA*STDEV(REA.A)) LET CPK.1(2) = (USL(1) - MEAN(REA.A))/(CRALFA*STDEV(REA.A)) LET CPK.2(1) = (MEAN(REA.B) - ISL(1))/(CRALFA*STDEV(REA.B)) LET CPK.2(2) = (USL(1) - MEAN(REA.B))/(CRALFA*STDEV(REA.B)) LET CPK_M_V.1 (I) = MIN(CPK.1) LET CPK_M_V.2 (I) = MIN(CPK.2) LET A = A + 1 LET B = B + 1 ENDDO SORT CPK_M_V.1 CPK_M_V.2 CPK_M_V.1 CPK_M_V.2 LET AUX = ROUND(INDICE(1)/2) LET CPK_5(1) = CPK_M_V.1(AUX) LET CPK_5(2) = CPK_M_V.2(AUX) LET AUX = ROUND(INDICE(1)/2) LET CPK_95(1) = CPK_M_V.1(AUX) LET CPK_95(2) = CPK_M_V.2(AUX) PRINT CPK_5 CPK_95 GOTO 4 ELSEIF CHOICE = 3 LET A = 1 LET B = 1 LET RII.1(1) = SM(1) - ISL(1) LET RII.1(2) = USL(1) - SM(1) LET RII.2(1) = SM(1) - ISL(1) LET RII.2(2) = USL(1) - SM(1) DO I = 1 : C LET CP(1) = (RII.1(1) + RII.1(2))/(2*STDEV(REA.A)*CRALFA) LET CP(2) = (RII.2(1) + RII.2(2))/(2*STDEV(REA.B)*CRALFA) LET CPM_V (I) = MIN(CP) LET A = A + 1 LET B = B + 1 ENDDO SORT CPM_V CPM_V LET AUX = ROUND(INDICE(1)/2) LET CPM_5 = CPM_V(AUX) LET AUX = ROUND(INDICE(2)/2) LET CPM_95 = CPM_V(AUX) PRINT CPM_5 CPM_95 GOTO 4 ELSEIF CHOICE = 4 GOTO 1 ELSEIF CHOICE = 5 EXIT ELSE GOTO 4 ENDIF BRIEF 1 #---- INTERVALO DE CONFIANÇA UNIVARIADO -----# MLABEL 5 BRIEF 1 MTITLE 'CALCULO DE INTERVALO DE CONFIANÇA UNIVARIADO' NOTE 1 - INDICE CP NOTE 2 - INDICE CPK NOTE 3 - VOLTAR NOTE 4 - SAIR SET CHOICE; FILE 'TERMINAL'; NOBS 1. IF CHOICE = 1 BRIEF 0 #REAMOSTRANDO A COLUNA DE DADOS #D VEZES DO I = 1 : D SAMP K DATA UREA.I; REPLACE. LET UCP(I) = (USL(1) - ISL(1))/(6*STDEV(UREA.I)) ENDDO BRIEF 1 NOTE DESEJA IMPRIMIR AS OS CP's DA NOTE REAMOSTRAGEM? (Y - SIM ; N - NAO) YESNO RESP IF RESP = 1 PRINT UCP ENDIF SORT UCP UCP LET AUX = INDICE(1) LET UCP_A1 = UCP(AUX) LET AUX = INDICE(2) LET UCP_A2 = UCP(AUX) NAME UCP_A1 'INDICE CP 1' NAME UCP_A2 'INDICE CP 2' PRINT UCP_A1 UCP_A2 GOTO 5 ELSE IF CHOICE = 2 BRIEF 0 DO I = 1 : D SAMP K DATA UREA.I; REPLACE. LET UCPS = (USL(1) - MEAN(UREA.I))/(3*STDEV(UREA.I)) LET UCPI = (MEAN(UREA.I) - ISL(I))/(3*STDEV(UREA.I)) LET TEMP(1) = UCPS LET TEMP(2) = UCPI LET UCPK(I) = MIN(TEMP) ENDDO BRIEF 1 SORT UCPK UCPK NOTE DESEJA IMPRIMIR AS OS CPK's DA NOTE REAMOSTRAGEM? (Y - SIM ; N - NAO) YESNO RESP IF RESP = 1 PRINT UCPK ENDIF LET AUX = INDICE(1) LET UCPK_A1 = UCPK(AUX) LET AUX = INDICE(2) LET UCPK_A2 = UCPK(AUX) NAME UCPK_A1 'INDICE CPK 1' NAME UCPK_A2 'INDICE CPK 2' PRINT UCPK_A1 UCPK_A2 GOTO 5 ELSE IF CHOICE = 3 GOTO 1 ELSE IF CHOICE = 4 BRIEF 1 EXIT ELSE GOTO 5 ENDIF BRIEF 0 #----------------------------# BRIEF 1 ENDMACRO #INTERVALO DE CONFIANÇA DENTRO DO PROCESSO UNIVARIADO # - PROCESSO USANDO BOOTSTRAP