El script analiza las evaluaciones de películas de Siskel y Ebert. En un primer momento, los datos se crean y se formatean. A continuación, se realiza un análisis de concordancia simple con PROC FREQ para obtener el Kappa de Cohen. En un segundo momento, los datos se transforman utilizando PROC IML para ser utilizados en PROC NLMIXED, que estima el Kappa a través de un modelo de verosimilitud personalizado. Los resultados de ambos enfoques de NLMIXED (mediante la instrucción ESTIMATE y por transformación manual del parámetro) se muestran y se comparan.
Análisis de datos
Type : CREATION_INTERNE
El conjunto de datos principal 'movie_ratings' se crea directamente en el código utilizando una instrucción 'datalines'. Los conjuntos de datos siguientes se derivan de esta tabla inicial.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque crea el conjunto de datos 'movie_ratings'. Lee 3 columnas (x1-x3) y transforma la estructura de la tabla para obtener un formato largo donde cada fila representa una combinación de evaluación Siskel/Ebert con un peso 'w'.
Explicación : Define un formato personalizado 'abc' para transformar los valores numéricos de las evaluaciones (1, 2, 3) en etiquetas textuales ('Con', 'Mixed', 'Pro').
Explicación : Utiliza PROC FREQ para generar una tabla de contingencia entre las evaluaciones de Siskel y Ebert. La opción '/agree' solicita el cálculo de las estadísticas de concordancia, incluido el coeficiente Kappa. La variable 'w' se utiliza como peso.
¡Copiado!
ods html;
title1 "Siskel's and Ebert's Movie Ratings -- Agresti and Winner (1997)";
title2 "Kappa Results using PROC FREQ";
proc freq data=movie_ratings;
tables Siskel * Ebert / agree;
weight w;
format Siskel Ebert abc.;
run;
ods graphics off;
ods html close;
1
ods html;
2
title1 "Siskel's and Ebert's Movie Ratings -- Agresti and Winner (1997)";
3
title2 "Kappa Results using PROC FREQ";
4
PROC FREQDATA=movie_ratings;
5
tables Siskel * Ebert / agree;
6
weight w;
7
FORMAT Siskel Ebert abc.;
8
RUN;
9
ods graphics off;
10
ods html close;
4 Bloque de código
PROC IML Data
Explicación : Este bloque PROC IML lee los datos y los transforma en una matriz 't' para el modelado con NLMIXED. Prepara los datos para modelar la distribución conjunta de las evaluaciones. El resultado se almacena en la tabla 'new'.
¡Copiado!
ods html;
ods graphics on;
proc iml;
use movie_ratings;
read all into x;
n0 = nrow(x);
n1 = sum(x[,3]);
t1 = j(n1,3,0);
t2 = j(n1,3,0);
row = 0;
do j=1 to n0;
do t=1 to x[j,3];
row = row + 1;
t1[row,x[j,1]] = 1;
t2[row,x[j,2]] = 1;
end;
end;
t = t1 + t2;
create new var{t1 t2 t3};
append from t;
quit;
1
ods html;
2
ods graphics on;
3
PROC IML;
4
use movie_ratings;
5
read all into x;
6
7
n0 = nrow(x);
8
n1 = sum(x[,3]);
9
t1 = j(n1,3,0);
10
t2 = j(n1,3,0);
11
12
row = 0;
13
DO j=1 to n0;
14
DO t=1 to x[j,3];
15
row = row + 1;
16
t1[row,x[j,1]] = 1;
17
t2[row,x[j,2]] = 1;
18
END;
19
END;
20
21
t = t1 + t2;
22
create new var{t1 t2 t3};
23
append from t;
24
QUIT;
5 Bloque de código
PROC NLMIXED Data
Explicación : Ajusta un modelo no lineal utilizando una función de log-verosimilitud general (loglik) para estimar los parámetros del modelo, incluyendo 'a0' que está relacionado con Kappa. La instrucción 'estimate' calcula directamente Kappa y su intervalo de confianza. Los resultados se guardan en las tablas 'Parms_Estimates' y 'Estimates'.
Explicación : Estos dos pasos de datos modifican las tablas de resultados de PROC NLMIXED. El primero simplemente renombra una columna. El segundo aplica una transformación inversa sobre el parámetro 'a0' y sus límites de confianza para calcular manualmente Kappa.
Explicación : Muestra las dos tablas finales que contienen las estimaciones de Kappa obtenidas por los dos métodos de cálculo derivados de PROC NLMIXED.
¡Copiado!
title2 "Kappa Results using the Estimate Statement in NLMIXED";
proc print data=Estimates noobs;
run;
title2 "Kappa Results using the Inverse Method in NLMIXED";
proc print data=Parms_Estimates noobs;
run;
ods html close;
1
title2 "Kappa Results using the Estimate Statement in NLMIXED";
2
PROC PRINTDATA=Estimates noobs;
3
RUN;
4
5
title2 "Kappa Results using the Inverse Method in NLMIXED";
6
PROC PRINTDATA=Parms_Estimates noobs;
7
RUN;
8
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.