Publicado el :
Estadística CREATION_INTERNE

Prueba de Adecuación (GOF) para DataSet III

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza creando un conjunto de datos `haseman_soares` a partir de datos en línea (`datalines`). Luego, transforma este conjunto de datos para tener una observación por frecuencia. Se llaman dos macros, `%GOF_BB` y `%GOF_RCB`, para realizar las pruebas de adecuación. Los residuos generados por estas macros se combinan, se ordenan y se clasifican para preparar la creación de gráficos Q-Q. Finalmente, se utiliza `PROC SGPANEL` para visualizar estos residuos en forma de gráficos Q-Q, lo que permite evaluar la distribución de los residuos.
Análisis de datos

Type : CREATION_INTERNE


El conjunto de datos inicial `haseman_soares` se crea directamente en el script a través de una instrucción `datalines`, y luego se transforma para expandir las observaciones basándose en la columna `freq`.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP crea el conjunto de datos `haseman_soares` utilizando datos brutos proporcionados por `datalines`. Lee las variables `m` y `t1` a `t10`. Se utiliza un bucle `DO OVER` en la matriz `tt` (compuesta por `t1` a `t10`) para transformar los datos, creando filas para cada `freq` no nula, donde `t` es el índice de la columna y `freq` es el valor correspondiente.
¡Copiado!
1DATA haseman_soares;
2 INPUT m t1-t10;
3 array tt t1-t10;
4 DO over tt;
5 t = _i_ - 1;
6 freq = tt;
7 OUTPUT;
8 END;
9 keep m t freq;
10 DATALINES;
11 1 7 . . . . . . . . .
12 2 7 . . . . . . . . .
13 3 6 . . . . . . . . .
14 4 5 2 1 . . . . . . .
15 5 8 2 1 . 1 1 . . . .
16 6 8 . . . . . . . . .
17 7 4 4 2 1 . . . . . .
18 8 7 7 1 . . . . . . .
19 9 8 9 7 1 1 . . . . .
20 10 22 17 2 . 1 . 1 1 .
21 11 30 18 9 1 2 . 1 . 1 .
22 12 54 27 12 2 1 . 2 . . .
23 13 46 30 8 4 1 1 . 1 . .
24 14 43 21 13 3 1 . . 1 . 1
25 15 22 22 5 2 1 . . . . .
26 16 6 6 3 . 1 1 . . . .
27 18 3 . 2 1 . . . . . .
28 ;
2 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP post-procesa el conjunto de datos `haseman_soares`. Elimina las observaciones donde `freq` es un valor perdido. Para cada observación restante, genera un número de filas igual al valor de `freq`, desnormalizando así los datos para que cada fila represente una única ocurrencia del evento. Luego se eliminan las variables `i` y `freq`.
¡Copiado!
1DATA haseman_soares;
2 SET haseman_soares;
3 IF freq = . THEN delete;
4 DO i=1 to freq;
5 OUTPUT;
6 END;
7 drop i freq;
8 RUN;
3 Bloque de código
ODS
Explicación :
Estas instrucciones ODS (Output Delivery System) activan la salida HTML y la generación de gráficos para los procedimientos siguientes. La salida se guardará en formato HTML.
¡Copiado!
1ods html;
2 ods graphics on;
4 Bloque de código
MACRO
Explicación :
Este bloque llama a dos macros SAS, `%GOF_BB` y `%GOF_RCB`, que se supone que realizan pruebas de adecuación (Goodness-of-Fit). Toman como entrada el conjunto de datos `haseman_soares` y utilizan las variables `t` y `m` para sus cálculos. El parámetro `title2` se usa para añadir un subtítulo a las salidas generadas por las macros.
¡Copiado!
1%GOF_BB (inds=haseman_soares,t=t,m=m,title2=DataSet III -- Haseman and Soares (1976));
2%GOF_RCB(inds=haseman_soares,t=t,m=m,title2=Dataset III -- Haseman and Soares (1976));
3 
5 Bloque de código
DATA STEP Data
Explicación :
Este DATA STEP combina los conjuntos de datos `Resid_BB` y `Resid_RCB`, que contienen los residuos de las pruebas de adecuación, en un nuevo conjunto de datos único llamado `Resid_BB_RCB`. Esto prepara los datos para un análisis y visualización unificados.
¡Copiado!
1*--- Construct QQ Plots;
2 DATA Resid_BB_RCB;
3 SET Resid_BB Resid_RCB;
4 RUN;
6 Bloque de código
PROC SORT
Explicación :
El procedimiento `PROC SORT` ordena el conjunto de datos `Resid_BB_RCB` por la variable `Distribution`. Esta ordenación es esencial para los pasos de análisis subsiguientes, especialmente para `PROC RANK` y `PROC SGPANEL` que pueden requerir datos ordenados por grupo.
¡Copiado!
1 
2PROC SORT
3DATA=Resid_BB_RCB;
4BY Distribution;
5 
6RUN;
7 
7 Bloque de código
PROC RANK Data
Explicación :
El procedimiento `PROC RANK` se utiliza para calcular los rangos normales (cuantiles normales) de los residuos. Toma como entrada `Resid_BB_RCB` y crea un nuevo conjunto de datos `new_qqplots`. La opción `normal=blom` usa la fórmula de Blom para el cálculo de las puntuaciones normales, y `ties=mean` maneja los empates asignándoles el rango promedio. La variable `Resid` se clasifica y el resultado se almacena en la nueva variable `NQuant`, agrupada por `Distribution`.
¡Copiado!
1PROC RANK DATA=Resid_BB_RCB out=new_qqplots normal=blom ties=mean;
2 BY Distribution;
3 var Resid;
4 ranks NQuant;
5 RUN;
8 Bloque de código
PROC SGPANEL
Explicación :
Este bloque utiliza `PROC SGPANEL` para generar gráficos Q-Q (cuantil-cuantil) de los residuos. El gráfico se paneliza por `Distribution`, lo que significa que se creará un gráfico Q-Q distinto para cada valor de `Distribution`. Se definen los títulos, se personalizan las etiquetas de los ejes y se añade una línea de regresión (`reg`) al gráfico para facilitar la comparación de los residuos con una distribución normal teórica.
¡Copiado!
1PROC SGPANEL DATA=new_qqplots noautolegend;
2 panelby Distribution;
3 title1 "DataSet III -- Haseman and Soares (1976)";
4 title2 "QQ-Plots of Residuals based on Observed and Expected Frequencies";
5 label Resid="Residuals" NQuant="Normal Quantiles";
6 reg x=Resid y=NQuant;
7 RUN;
9 Bloque de código
ODS
Explicación :
Estas instrucciones desactivan la generación de gráficos ODS y cierran el destino HTML, finalizando así la salida de los resultados en el archivo HTML.
¡Copiado!
1ods graphics off;
2 ods html close;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Fuente: Haseman and Soares (1976)