Prueba de permutación para la comparación de medias

Este código también está disponible en: Deutsch English Français
Nivel de dificultad
Principiante
Publicado el :
El script comienza definiendo un conjunto de datos `trauma` con datos en línea. Luego ejecuta una prueba t observada. Después, utiliza PROC IML para generar miles de permutaciones de los datos y aplica una prueba t a cada permutación. Los resultados de estas pruebas t permutadas (las diferencias de medias) se almacenan en un conjunto de datos `diff` a través de ODS. Finalmente, visualiza la distribución de las diferencias permutadas con PROC UNIVARIATE y calcula el número de diferencias permutadas tan extremas o más extremas que la diferencia observada para determinar un valor p empírico.
Análisis de datos

Type : CREACION_INTERNE


El conjunto de datos 'trauma' se crea directamente en el script a través de 'datalines'. Los conjuntos de datos 'newds', 'diff' y 'numdiffs' se generan internamente mediante procedimientos SAS ('PROC IML', 'PROC TTEST', 'DATA STEP').

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP crea el conjunto de datos 'trauma' utilizando datos en línea (`datalines`). Contiene dos variables: `state` (categórica, que indica si el sujeto es 'No Traumatizado' o 'Traumatizado') y `kcal` (numérica, que representa una medida).
¡Copiado!
1DATA trauma;
2 INPUT state $ kcal;
3 DATALINES;
40 19
50 20
60 20
70 21
80 21
90 21
101 22
110 23
120 23
131 23
141 25
151 26
161 30
171 38
181 39
19;
20 
21/* 0 = Non-Trauma, 1 = Trauma */
2 Bloque de código
PROC TTEST
¡Copiado!
1PROC TTEST DATA=trauma;
2 class state;
3 *may need to convert School to numeric;
4 var kcal;
5RUN;
3 Bloque de código
ODS
¡Copiado!
1ods OUTPUT off;
2ods exclude all;
4 Bloque de código
PROC IML Data
¡Copiado!
1PROC IML ;
2 use trauma;
3 read all var{state kcal} into x;
4 *change varibale names here ... make sure it is class then var ... in that order.;
5 p=t(ranperm(x[, 2], 5000));
6 *Note that the "1000" here is the number of permutations. ;
7 paf=x[, 1]||p;
8 create newds from paf;
9 append from paf;
10 QUIT;
5 Bloque de código
ODS
¡Copiado!
1ods OUTPUT conflimits=diff;
6 Bloque de código
PROC TTEST
¡Copiado!
1PROC TTEST DATA=newds plots=none;
2 class col1;
3 var col2 - col1001;
4RUN;
7 Bloque de código
ODS
¡Copiado!
1ods OUTPUT on;
2ods exclude none;
8 Bloque de código
PROC UNIVARIATE
¡Copiado!
1PROC UNIVARIATE DATA=diff;
2 where method="Pooled";
3 var mean;
4 histogram mean;
5RUN;
9 Bloque de código
DATA STEP Data
¡Copiado!
1DATA numdiffs;
2 SET diff;
3 where method="Pooled";
4 
5 IF abs(mean) >=7.8089;
6 *you will need to put the observed difference you got from t test above here. note if you have a one or two tailed test.;
7RUN;
10 Bloque de código
PROC PRINT
¡Copiado!
1 
2PROC PRINT
3DATA=numdiffs;
4where method="Pooled";
5RUN;
6 
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.

Documentación relacionada

Aucune documentation spécifique pour cette catégorie.