El script comienza con un paso DATA para generar un conjunto de datos llamado `test_of_homogeneity`. Simula respuestas categóricas (bajo, medio, alto) para 175 panelistas (`subjid`) y 8 mediciones repetidas por panelista, para dos productos diferentes. La simulación utiliza la distribución multinomial 'random-clumped' para introducir una correlación intra-cluster. Luego, `PROC SURVEYLOGISTIC` se utiliza para modelar la respuesta `y` en función del `product` teniendo en cuenta la estructura de cluster a través de la instrucción `CLUSTER subjid`. Las estimaciones y comparaciones de probabilidades se realizan con `LSMEANS` y `ESTIMATE`. Finalmente, `PROC SURVEYFREQ` calcula una prueba de chi-cuadrado para la asociación entre `product` e `y`, también ajustada para el clustering.
Análisis de datos
Type : CREACION_INTERNA
Los datos se generan completamente dentro del primer DATA STEP. El script simula resultados trinomiales para dos productos utilizando parámetros predefinidos (número de clusters, tamaño de los clusters, probabilidades subyacentes, correlación intra-cluster) y la función `uniform()` para la generación de números aleatorios.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque DATA STEP genera la tabla `test_of_homogeneity`. Simula datos para `n` sujetos (clusters) y `m` observaciones por sujeto, para dos productos. Utiliza un método de simulación 'random-clumped multinomial' para crear respuestas trinomiales correlacionadas, basándose en probabilidades predefinidas (`pi11`, `pi12`, etc.) y una correlación intra-cluster (`rho2`). La semilla (`seed`) se fija para la reproducibilidad.
¡Copiado!
data test_of_homogeneity;
n = 175; *--- Number of Panelists (Clusters) per Test Product;
m = 8; *--- Number of Repeated Measurements per Panelist;
rho2 = 0.15; *--- Intra Cluster Correlation;
pi11 = 0.880; *--- Probability Category 1, Product 1;
pi21 = 0.900; *--- Probability Category 1, Product 2;
pi12 = 0.110; *--- Probability Category 2, Product 1;
pi22 = 0.075; *--- Probability Category 2, Product 2;
seed = 1974; *--- Initial Seed;
rho = sqrt(rho2);
cpi12 = pi11 + pi12;
cpi22 = pi21 + pi22;
do j = 1 to n;
*--- Product 1;
Product = 1;
Subjid = j;
yy = 3;
u = uniform( seed );
if u < cpi12 then yy = 2;
if u < pi11 then yy = 1;
do i=1 to m;
Y = 3;
u = uniform( seed );
if u < rho then y = yy;
else do;
uu = uniform( seed );
if uu < cpi12 then y = 2;
if uu < pi11 then y = 1;
end;
output;
end;
*--- Product 2;
Product = 2;
Subjid = j + n;
yy = 3;
u = uniform( seed );
if u < cpi22 then yy = 2;
if u < pi21 then yy = 1;
do i=1 to m;
Y = 3;
u = uniform( seed );
if u < rho then y = yy;
else do;
uu = uniform( seed );
if uu < cpi22 then y = 2;
if uu < pi21 then y = 1;
end;
output;
end;
end;
keep subjid product y;
run;
1
DATA test_of_homogeneity;
2
n = 175; *--- Number of Panelists (Clusters) per Test Product;
3
m = 8; *--- Number of Repeated Measurements per Panelist;
4
rho2 = 0.15; *--- Intra Cluster Correlation;
5
pi11 = 0.880; *--- Probability Category 1, Product 1;
6
pi21 = 0.900; *--- Probability Category 1, Product 2;
7
pi12 = 0.110; *--- Probability Category 2, Product 1;
8
pi22 = 0.075; *--- Probability Category 2, Product 2;
9
seed = 1974; *--- Initial Seed;
10
rho = sqrt(rho2);
11
cpi12 = pi11 + pi12;
12
cpi22 = pi21 + pi22;
13
DO j = 1 to n;
14
*--- Product 1;
15
Product = 1;
16
Subjid = j;
17
yy = 3;
18
u = uniform( seed );
19
IF u < cpi12 THEN yy = 2;
20
IF u < pi11 THEN yy = 1;
21
DO i=1 to m;
22
Y = 3;
23
u = uniform( seed );
24
IF u < rho THEN y = yy;
25
ELSEDO;
26
uu = uniform( seed );
27
IF uu < cpi12 THEN y = 2;
28
IF uu < pi11 THEN y = 1;
29
END;
30
OUTPUT;
31
END;
32
*--- Product 2;
33
Product = 2;
34
Subjid = j + n;
35
yy = 3;
36
u = uniform( seed );
37
IF u < cpi22 THEN yy = 2;
38
IF u < pi21 THEN yy = 1;
39
DO i=1 to m;
40
Y = 3;
41
u = uniform( seed );
42
IF u < rho THEN y = yy;
43
ELSEDO;
44
uu = uniform( seed );
45
IF uu < cpi22 THEN y = 2;
46
IF uu < pi21 THEN y = 1;
47
END;
48
OUTPUT;
49
END;
50
END;
51
keep subjid product y;
52
RUN;
2 Bloque de código
PROC SURVEYLOGISTIC
Explicación : Este procedimiento ajusta un modelo de regresión logística para datos de encuesta. Modela la variable de respuesta nominal `y` en función del `product` con un enlace logit generalizado (`link=glogit`). La instrucción `CLUSTER subjid` es crucial porque ajusta los errores estándar para la correlación intrasujeto. Las instrucciones `LSMEANS` y `ESTIMATE` se utilizan para obtener las probabilidades ajustadas por categoría y para comparar los productos.
¡Copiado!
ods html;
proc surveylogistic data=test_of_homogeneity;
class product subjid / param=glm;
model y (ref=First) = product / link=glogit varadj=morel;
cluster subjid;
lsmeans product / ilink;
estimate 'P12' int 1 product 1 0 / category='1' ilink;
estimate 'P22' int 1 product 0 1 / category='1' ilink;
estimate 'P13' int 1 product 1 0 / category='2' ilink;
estimate 'P23' int 1 product 0 1 / category='2' ilink;
estimate 'P12 Vs P22' product 1 -1 / category='1' exp;
estimate 'P13 Vs P23' product 1 -1 / category='2' exp;
run;
ods html close;
1
ods html;
2
PROC SURVEYLOGISTICDATA=test_of_homogeneity;
3
class product subjid / param=glm;
4
model y (ref=First) = product / link=glogit varadj=morel;
5
cluster subjid;
6
lsmeans product / ilink;
7
estimate 'P12' int 1 product 1 0 / category='1' ilink;
8
estimate 'P22' int 1 product 0 1 / category='1' ilink;
9
estimate 'P13' int 1 product 1 0 / category='2' ilink;
10
estimate 'P23' int 1 product 0 1 / category='2' ilink;
11
estimate 'P12 Vs P22' product 1 -1 / category='1' exp;
12
estimate 'P13 Vs P23' product 1 -1 / category='2' exp;
13
RUN;
14
ods html close;
3 Bloque de código
PROC SURVEYFREQ
Explicación : Este procedimiento calcula las frecuencias y realiza una prueba de chi-cuadrado (Rao-Scott) para la asociación entre la variable `product` y la respuesta `y`. Al igual que `PROC SURVEYLOGISTIC`, utiliza la instrucción `CLUSTER subjid` para tener en cuenta el diseño de muestreo en conglomerados (clustering) y proporcionar estadísticas de prueba válidas.
¡Copiado!
ods html;
proc surveyfreq data=test_of_homogeneity;
cluster subjid;
tables product * y / chisq;
run;
ods html close;
1
ods html;
2
PROC SURVEYFREQDATA=test_of_homogeneity;
3
cluster subjid;
4
tables product * y / chisq;
5
RUN;
6
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.
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.