Este programa primero genera un pequeño conjunto de datos 'cash'. Realiza una prueba t de Student estándar para obtener la diferencia observada. Luego, utiliza PROC IML para generar 1000 permutaciones aleatorias de la variable de respuesta ('Money'), simulando la hipótesis nula. Ejecuta pruebas t en estas 1000 iteraciones y compara la distribución de las diferencias simuladas con la diferencia observada para derivar un valor p empírico.
Análisis de datos
Type : CREATION_INTERNE
Los datos se crean manualmente mediante la instrucción DATALINES en el primer paso DATA.
1 Bloque de código
DATA STEP Data
Explicación : Creación del conjunto de datos 'cash' que contiene dos variables: School (grupo) y Money (valor numérico).
Explicación : Ejecución de la prueba t de Student inicial en los datos observados para calcular la diferencia de media real entre los grupos.
¡Copiado!
proc ttest data=cash;
class School;
*may need to convert School to numeric;
var Money;
run;
1
PROC TTESTDATA=cash;
2
class School;
3
*may need to convert School to numeric;
4
var Money;
5
RUN;
3 Bloque de código
PROC IML Data
Explicación : Uso del lenguaje matricial IML para leer los datos, generar 1000 permutaciones aleatorias de la columna 'Money' (remuestreo sin reemplazo) y crear una tabla grande 'newds' que contiene los grupos originales y los 1000 vectores permutados.
¡Copiado!
ods output off;
ods exclude all;
proc iml ;
use cash;
read all var{School Money} into x;
p=t(ranperm(x[, 2], 1000));
paf=x[, 1]||p;
create newds from paf;
append from paf;
quit;
1
ods OUTPUT off;
2
ods exclude all;
3
4
PROC IML ;
5
use cash;
6
read all var{School Money} into x;
7
p=t(ranperm(x[, 2], 1000));
8
paf=x[, 1]||p;
9
create newds from paf;
10
append from paf;
11
QUIT;
4 Bloque de código
PROC TTEST Data
Explicación : Ejecución masiva de pruebas t en las 1000 columnas permutadas (col2 a col1001) en relación con el grupo (col1). Los resultados (límites de confianza/diferencias) se capturan en la tabla 'diff' a través de ODS OUTPUT.
¡Copiado!
ods output conflimits=diff;
proc ttest data=newds plots=none;
class col1;
var col2 - col1001;
run;
ods output on;
ods exclude none;
1
ods OUTPUT conflimits=diff;
2
3
PROC TTESTDATA=newds plots=none;
4
class col1;
5
var col2 - col1001;
6
RUN;
7
8
ods OUTPUT on;
9
ods exclude none;
5 Bloque de código
PROC UNIVARIATE
¡Copiado!
proc univariate data=diff;
where method="Pooled";
var mean;
histogram mean;
run;
1
PROC UNIVARIATEDATA=diff;
2
where method="Pooled";
3
var mean;
4
histogram mean;
5
RUN;
6 Bloque de código
DATA STEP Data
¡Copiado!
data numdiffs;
set diff;
where method="Pooled";
if abs(mean) >=114.6;
run;
proc print data=numdiffs;
where method="Pooled";
run;
1
DATA numdiffs;
2
SET diff;
3
where method="Pooled";
4
5
IF abs(mean) >=114.6;
6
RUN;
7
8
PROC PRINTDATA=numdiffs;
9
where method="Pooled";
10
RUN;
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.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.