Cette page propose une mise en application des méthodes de régression présentées lors des quatre premières séances du séminaire “Méthodes quantitatives pour la sociologie 2”.

Cette page a été réalisée avec Rstudio sous Rmarkdown et compilée le 08/03/2018.

Retour à la page d’accueil

Présentation de l’enquête Pisa 2012

L’enquête Pisa () est une enquête réalisée tous les trois ans par l’Organisation de coopération et de développement économique (OCDE) dans une soixantaine de pays auprès des élèves de 15 ans (quelle que soit leur classe au moment de l’enquête).

Elle vise à mesurer les acquis des élèves de 15 ans dans trois disciplines : mathématiques, compréhension de l’écrit (ou littéracie) et sciences. En plus des scores aux tests standardisés de mathématiques, compréhension de l’écrit et sciences, cette enquête comporte de très nombreuses informations sur l’origine sociale des élèves, leurs conditions d’enseignement ainsi que leur rapport aux enseignants et à l’école.

Il s’agit d’une enquête par sondage: à ce titre, chaque fichier dispose d’un poids à utiliser pour généraliser les résultats de l’échantillon d’élèves interrogés à l’ensemble de la population qu’ils représentent.

Organisation des fichiers Les fichiers de l’enquête Pisa 2012 et leur documentation sont librement téléchargeables sur le site de l’OCDE. Seuls deux des nombreux fichiers de données qui constituent l’enquête seront utilisés et ont été restreints à la France uniquement:

  • le fichier élève int_stu12 comporte la plupart des variables d’intérêt de l’enquête;
  • le fichier établissement int_scq12 comporte quelques données de contexte intéressantes.

Le fichier établissement est présent en plusieurs formats informatiques (.txt, .csv et .sas7bdat) pour illustrer les différentes méthodes d’importation des données. Les tableaux suivants recensent les principales variables d’intérêt de ces deux fichiers.

Fichier élèves (int_stu12)

Variable Description
cnt Pays
stidstd Identifiant de l’élève
schoolid Identifiant de l’établissement
w_fstuwt Poids de sondage final de l’élève
st01q01 Classe en nombre d’années depuis l’entrée en primaire: la 10\(^{ème}\) classe correspond à la seconde en France.
st04q01 Sexe : (1) Femme (2) Homme
st05q01 A suivi une scolarité pré-primaire (1) Non (2) Oui, un an ou moins (3) Oui, plus d’un an
st07q01 st07q02 st07q03 A redoublé à un moment de sa scolarité : (1) Non (2-3) Oui, une ou plusieurs fois
st08q01 Est arrivé en retard au cours des deux semaines précédant l’enquête
st09q01 A séché les cours au cours des deux semaines précédant l’enquête
anxmat Score synthétique d’anxiété en mathématiques
disclima Score synthétique de climat de discipline dans la classe
escs Indicateur synthétique de statut économique, social et culturel
immig Immigration : (1) Né en France (2) Immigré de deuxième génération (3) Immigré de première génération
hisced Niveau d’étude le plus élevé des parents (nomenclature CITE)
pv1math Score synthétique à l’évaluation de mathématiques
pv1read Score synthétique à l’évaluation de compréhension de l’écrit
pv1scie Score synthétique à l’évaluation de sciences

Fichier établissements (int_scq12)

Variable Description
cnt Pays
schoolid Identifiant de l’établissement
senwgt_scq Poids de sondage (la somme vaut 1 000 dans chaque pays)
sc01q01 Statut public ou privé (1) public (2) privé
sc03q01 Taille de la commune de l’établissement : (1) Village (2) Small town (3) Town (4) City (5) Large city
sc05q01 Taille de la classe en cours de français : (01) 15 ou moins (02) 16-20 (03) 21-25 … (08) 46-50 (09) Plus de 50 élèves

Documentaton Plusieurs éléments de documentation sont fournis:

  • le questionnaire rempli par les élèves (PISA12_ScQ_ENG.pdf) et la description du fichier élèves (M_stu_codebook.pdf) (en anglais);
  • le questionnaire rempli par les établissements (PISA12_ScQ_ENG.pdf) et la description du fichier établissements (M_sch_codebook.pdf) (en anglais);
  • les principaux résultats de l’enquête en France (PISA-2012-results-france.pdf) (en français) et le rapport technique international (PISA-2012-technical-report-final.pdf) (en anglais).

 

Question 1 Découverte de l’enquête et de sa documentation

  1. Vérifiez la présence et identifiez l’ensemble des fichiers mentionnés ci-dessus. Ouvrez en particulier le questionnaire élève et observez les premières questions posées (Section A : About you). Retrouvez les variables correspondantes dans le tableau ci-dessus ainsi que dans le fichier .pdf de description du fichier élève.

  2. Ouvrez la note rédigée sur la France (PISA-2012-results-france.pdf) et prenez connaissance de ses principaux résultats. Quand il est fait référence à un résultat statistique précis (moyenne, pourcentage, etc.), recherchez dans les tableaux ci-dessus les variables susceptibles d’avoir été utilisées pour y aboutir.

Import et préparation des données

 

Question 2 Import des données

Plusieurs formats de fichiers sont fournis afin de présenter différentes méthodes d’importation courantes. Les fichiers de référence à importer et à utiliser dans le reste de la partie pratique sont les fichiers SAS au format .sas7bdat (importation présentée à la sous-question d.).

Le fichier INT_SCQ12_DEC03.txt correspond au format original des données (sur le site de l’OCDE). Il s’agit d’un fichier de données à largeur fixe (fixed-width format): contrairement aux fichiers dont les colonnes sont séparées par un délimiteur (virgules, tabulations, etc.), ici à chaque colonne correspond un nombre de caractères fixe qui est utilisé pour reconstituer les variables du fichier dans le logiciel statistique.

  1. Recherchez le programme Notepad++ sur l’ordinateur et utilisez-le (ou à défaut le bloc-note Windows) pour visualiser le contenu de INT_SCQ12_DEC03.txt (celui-ci étant un peu gros l’ouverture peut prendre un peu de temps). Vérifiez visuellement que les colonnes sont bien de largeur fixe.

  2. Définissez comme répertoire de travail le dossier dans lequel se situent les données de l’enquête. La fonction read.fwf() permet de lire un fichier de données à largeur fixe pour autant qu’on lui fournisse la largeur correspondant à chaque variable. Comment comprenez-vous alors le code suivant (établi à partir des fichiers .sas mis en ligne par l’OCDE) ? Soumettez le code suivant et vérifiez que l’importation se déroule correctement.

    sch_fwf <- read.fwf("INT_SCQ12_DEC03.txt", width = c(
      3, 7, 7, 1, 6, 7, 1, 9, 9, 9, 9, 1, 1, 2, 9, 9, 4, 4, 4, 4, 4, 4, 4
      , 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
      , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
      , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
      , 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
      , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
      , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
      , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
      , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
      , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9
      , 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
      , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, 1, 1, 2, 9, 1, 9, 9, 9, 9, 1
      , 1, 9, 9, 9, 9, 9, 9, 8, 8, 9, 1, 1, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9
      , 9, 9, 9, 7
    ), stringsAsFactors = FALSE)

     

  3. Bien souvent les fichiers à importer ne sont pas des fichiers à largeur fixe mais des fichiers séparés par un délimiteur (virgule, tabulation, etc.). Rercherchez de l’aide sur la fonction read.csv() et utilisez-la pour importer le fichier INT_SCQ12_DEC03.csv.

    Le package de manipulation de données data.table comporte une fonction d’import optimisé pour les données plates séparées par des délimiteurs fread() dont la syntaxe est proche de celle de read.csv(): installez ce package, recherchez de l’aide sur fread() et comparez (soit “à vue d’oeil”, soit en mesurant le temps d’exécution) la vitesse de fread() par rapport à read.csv().

     

  4. Sur le site de l’OCDE pour l’heure tout est fait pour privilégier un import avec les logiciels SAS ou SPSS. Les fichiers int_stu12.sas7bdat et int_scq12.sas7bdat correspondent aux fichiers importés par SAS au format natif SAS .sas7bdat et restreints à la France. Utilisez la fonction read_sas() pour lire ces fichiers (c’est sur ceux-ci que l’on travaillera désormais).

     

 

Question 3 Exploration et mise en forme des données

  1. Utilisez la fonction names() pour afficher les noms de variables des deux tables. Afin de faciliter les exploitations futures, passez tous ces noms en minuscules.

     

  2. Affichez les principales caractéristiques des deux objets importés (structure, dimension, nom des variables, etc.). Vérifiez qu’ils ne comportent que des informations relatives à la France.

     

  3. Afin d’alléger les traitements à venir (pas impératif ici mais toujours utile en pratique), on décide de restreindre les variables d’intérêt à celles identifiées dans les tableaux ci-dessus. Supprimez toutes les autres variables des fichiers.

     

 

Question 4 Fusion de tables

On souhaite utiliser les informations au niveau de l’établissement dans des exploitations au niveau des élèves. Pour ce faire, il convient de fusionner les tables stu et sch sur la base de la variable schoolid présente dans les deux tables :

  • dans la table élèves, il s’agit de l’identifiant de l’établissement auquel appartient l’élève (les élèves provenant du même établissement ont le même schoolid);
  • dans la table établissement, il s’agit de l’identifiant unique de l’établissement.
  1. Utilisez les fonctions unique(), intersect() et setdiff() pour vérifier que l’identifiant schoolid prend bien les mêmes valeurs dans les deux tables.

     

  2. Vérifiez que la variable schoolid est un identifiant pour la table sch, à savoir : (1) qu’elle est renseignée pour chaque ligne (2) qu’elle prend une valeur distincte pour chaque ligne.

     

  3. Utilisez la fonction merge() pour fusionner stu et sch par schoolid dans l’objet stusch. Vérifiez que ses propriétés sont cohérentes avec le résultat des questions précédentes : même nombre de lignes que stu, nombre de colonnes égal à celui de stu et de sch moins 1.

     

Statistiques uni- et bivariée

Inspirez-vous de la note rédigée sur la France pour choisir un sujet d’étude. Par exemple:

  • relation entre caractéristiques socio-démographiques et score synthétique en mathématiques, compréhension de l’écrit ou sciences ou probabilité d’être redoublant;
  • relation entre scolarité pré-primaire et score synthétique en mathématiques, compréhension de l’écrit ou sciences ou probabilité d’être redoublant;
  • relation entre rapport à l’institution scolaire (angoisse, fait de sécher les cours, etc.) et score synthétique en mathématiques ou probabilité d’être redoublant;
  • relation entre le contexte d’enseignement de l’élève (statut de l’établissement, climat de discipline, etc.) et score synthétique en mathématiques, compréhension de l’écrit ou sciences ou probabilité d’être redoublant.

Vous pouvez en particulier chercher à recalculer certaines statistiques de la note rédigée sur la France.

 

 

Question 5 Statistique descriptive

Utilisez les fonctions vues lors de la première session du certificat pour mener l’analyse uni- et bi-variée des variables pertinentes pour le sujet d’étude que vous avez choisi. En particulier:

  • construisez au moins un tri croisé entre deux variables qualitatives et interprétez les sur- ou sous-représentations dans la distribution de la première variable ventilée selon les modalités de la seconde;

     

  • calculez le coefficient de corrélation entre deux variables quantitatives et menez le test de nullité de ce coefficient (avec la fonction cor.test());

     

  • calculez la moyenne d’une variable quantitative ventilée selon les modaliités d’une variable qualitative et effectuez l’analyse de la variance à un seul facteur correspondante pour déterminer si la relation entre ces variables est significative (avec la fonction anova()).

     

 

Question 6 Réalisation de graphiques avec base R

Proposez des représentations graphiques pertinentes pour synthétiser les relations mises en évidence à la question précédente. Vous pouvez consulter à ce sujet la première partie du support complémentaire pour la partie pratique. En particulier:

  • construisez au moins un diagramme en bâton ou circulaire à l’aide des fonctions barplot() ou pie() et utilisez les options de mise en forme pour améliorer sa présentation (ajouter un titre avec main(), modifiez les titres des axes avec xlab() et ylab(), etc.);