Le script analyse les évaluations de films de Siskel et Ebert. Dans un premier temps, les données sont créées et formatées. Ensuite, une analyse de concordance simple est effectuée avec PROC FREQ pour obtenir le Kappa de Cohen. Dans un second temps, les données sont transformées à l'aide de PROC IML pour être utilisées dans PROC NLMIXED, qui estime le Kappa à travers un modèle de vraisemblance personnalisé. Les résultats des deux approches de NLMIXED (via l'instruction ESTIMATE et par transformation manuelle du paramètre) sont ensuite affichés et comparés.
Analyse des données
Type : CREATION_INTERNE
Le jeu de données principal 'movie_ratings' est créé directement dans le code à l'aide d'une instruction 'datalines'. Les jeux de données suivants sont dérivés de cette table initiale.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc crée le jeu de données 'movie_ratings'. Il lit 3 colonnes (x1-x3) et transforme la structure de la table pour obtenir un format long où chaque ligne représente une combinaison d'évaluation Siskel/Ebert avec un poids 'w'.
Explication : Définit un format personnalisé 'abc' pour transformer les valeurs numériques des évaluations (1, 2, 3) en libellés textuels ('Con', 'Mixed', 'Pro').
Explication : Utilise PROC FREQ pour générer une table de contingence entre les évaluations de Siskel et Ebert. L'option '/agree' demande le calcul des statistiques de concordance, y compris le coefficient Kappa. La variable 'w' est utilisée comme poids.
Copié !
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 Bloc de code
PROC IML Data
Explication : Ce bloc PROC IML lit les données et les transforme en une matrice 't' pour la modélisation avec NLMIXED. Il prépare les données pour modéliser la distribution jointe des évaluations. Le résultat est stocké dans la table 'new'.
Copié !
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 Bloc de code
PROC NLMIXED Data
Explication : Ajuste un modèle non linéaire en utilisant une fonction de log-vraisemblance générale (loglik) pour estimer les paramètres du modèle, y compris 'a0' qui est lié au Kappa. L'instruction 'estimate' calcule directement le Kappa et son intervalle de confiance. Les résultats sont sauvegardés dans les tables 'Parms_Estimates' et 'Estimates'.
Explication : Ces deux étapes data modifient les tables de résultats de PROC NLMIXED. La première renomme simplement une colonne. La seconde applique une transformation inverse sur le paramètre 'a0' et ses bornes de confiance pour calculer manuellement le Kappa.
Explication : Affiche les deux tables finales contenant les estimations du Kappa obtenues par les deux méthodes de calcul issues de PROC NLMIXED.
Copié !
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;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
« L'intérêt majeur de passer par PROC NLMIXED pour un simple coefficient de concordance est la flexibilité. Cette méthode permet, par exemple, d'ajuster le Kappa en fonction de covariables ou de gérer des structures de dépendance que la PROC FREQ classique ne pourrait ignorer sans biaiser les résultats. »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.