Analyse des Correspondances Multiples : le cas de l’ergatif en warlipiri 🇫🇷

Xiaoou WANG

Dans ce tutoriel nous explorons le jeu de données lwarlipiri.rds à l’aide d’une méthode exploratoire multivariée adaptée afin d’investiguer dans quelle mesure l’utilisation du marqueur de cas ergatif CaseMarking est liée aux variables suivantes :

  • l’animéité du sujet AnimacyOfSubject

  • l’ordre des mots WordOrder

  • l’âge du locuteur AgeGroup

Nous allons utiliser FactoMineR et factoextra, ce dernier offrant des graphes plus intuitifs

[1]:
options(tidyverse.quiet = TRUE) # omettre les warnings pour ne pas encombrer le document
library("factoextra")
library("FactoMineR")
library("tidyverse")
df <- readRDS(url("https://bit.ly/3qR6KkX"))
df <- df %>% select(AgeGroup:AnimacyOfSubject) # garder les varialbes pertinentes
str(df)
Loading required package: ggplot2

Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa

'data.frame':   347 obs. of  4 variables:
 $ AgeGroup        : Factor w/ 2 levels "adult","child": 2 2 2 2 2 2 2 2 2 2 ...
 $ CaseMarking     : Factor w/ 2 levels "ergative","other": 1 1 1 1 1 1 1 1 1 1 ...
 $ WordOrder       : Factor w/ 2 levels "subInitial","subNotInitial": 2 1 1 2 1 1 1 2 1 2 ...
 $ AnimacyOfSubject: Factor w/ 2 levels "animate","inanimate": 1 1 1 1 1 2 2 1 1 2 ...

Pourquoi MCA

Nous choisissons l’analyse des correspondances multiples (MCA) comme méthode car dans leur forme la plus classique PCA s’applique surtout aux variables continues, CA à une table de contingence et MCA à une table de variables catégorielles comme c’est le cas ici, d’autant plus que le nombre de facteurs par variable n’est pas élevé.

Table de co-occurrence

Après maintes explorations, nous avons trouvé une cooccurrence de comptage très pratique. Nous procédons donc à la construction d’un tel tableau.

On produit aussi le tableau en utilisant des proportions.

[2]:
t1 = table(df$CaseMarking,df$AgeGroup)
t2 = table(df$CaseMarking,df$WordOrder)
t3 = table(df$CaseMarking,df$AnimacyOfSubject)
t.total = cbind(t1,t2,t3)
t.total
# get total number of ergative and other
nb.ergative = nrow(df[df$CaseMarking=="ergative",])
nb.other = nrow(df[df$CaseMarking=="other",])
# divide each number by the total
data.col.totals <- cbind(t.total, c(nb.ergative,nb.other))
colnames(data.col.totals)[7] <- "row total"
data.col.totals[1,] = data.col.totals[1,]/nb.ergative
data.col.totals[2,] = data.col.totals[2,]/nb.other
cat("Tableau 1\n\n")
data.col.totals
# get the proportional table respect to columns
col.profiles <-prop.table(as.matrix(t.total), margin=2)
col.profiles <- rbind(col.profiles, colSums(col.profiles))
rownames(col.profiles)[3] <- "column total"
cat("\n\nTableau 2\n\n")
col.profiles
A matrix: 2 × 6 of type int
adultchildsubInitialsubNotInitialanimateinanimate
ergative1651271959724448
other 22 33 4114 3916
Tableau 1

A matrix: 2 × 7 of type dbl
adultchildsubInitialsubNotInitialanimateinanimaterow total
ergative0.56506850.43493150.66780820.33219180.83561640.16438361
other0.40000000.60000000.74545450.25454550.70909090.29090911


Tableau 2

A matrix: 3 × 6 of type dbl
adultchildsubInitialsubNotInitialanimateinanimate
ergative0.88235290.793750.82627120.87387390.86219080.75
other0.11764710.206250.17372880.12612610.13780920.25
column total1.00000001.000001.00000001.00000001.00000001.00

Quelques remarques issues des tableaux de proportion

Il est à noter que les remarques suivantes ne s’appliquent qu’aux données de ce tutoriel.

  1. L’usage de l’ergatif est plus fréquent chez l’adulte que chez l’enfant, ce qui n’est pas le cas d’other. Si l’on regarde le tableau 2, les adultes utilisent plus l’ergatif qu’other, les enfants aussi. Cependant cette préférence est plus marquée chez l’adulte.

  2. L’ergatif et l’other (les autres cas) s’utilisent plus fréquemment en subInitial que subNotInitial. Si l’on regarde le tableau 2, la préférence d’ergative en subNotInitial est plus marquée qu’en subInitial.

  3. L’ergatif et l’other s’utilisent plus fréquemment en animate qu’en inanimate. L’ergative est plus lié à animate qu’other si l’on regarde le tableau 2.

Que nous dit MCA

Choix des dimensions

Si l’on regarde les valeurs propres et les pourcentage de variance, il semble que toutes les quatres dimensions sont importantes. La discontinuité est à peine observable. La difficulté de focaliser sur uniquement 2 dimensions survient assez fréquemment en MCA.

[3]:
mca.object <- MCA(df, graph=FALSE)
eig.val <- get_eigenvalue(mca.object)
eig.val
fviz_screeplot(mca.object, addlabels = TRUE, ylim = c(0, 45))
A matrix: 4 × 3 of type dbl
eigenvaluevariance.percentcumulative.variance.percent
Dim.10.295206029.52060 29.52060
Dim.20.264539526.45395 55.97456
Dim.30.247020824.70208 80.67664
Dim.40.193233619.32336100.00000
../images/linguistique_informatique_02_mca_ergatif_fr_7_1.png

Pour mieux trancher sur le choix des dimensions, nous visualisons aussi les contributions et qualités de chaque catégorie.

[4]:
var <- get_mca_var(mca.object)
# Cos2: quality on the factor map
var$cos2
# Contributions to the principal components
var$contrib
A matrix: 8 × 4 of type dbl
Dim 1Dim 2Dim 3Dim 4
adult0.312350740.008248430.537088100.1423127
child0.312350740.008248430.537088100.1423127
ergative0.462729780.233736040.019393760.2841404
other0.462729780.233736040.019393760.2841404
subInitial0.058888530.730687700.044864260.1655595
subNotInitial0.058888530.730687700.044864260.1655595
animate0.346855110.085486000.386737270.1809216
inanimate0.346855110.085486000.386737270.1809216
A matrix: 8 × 4 of type dbl
Dim 1Dim 2Dim 3Dim 4
adult12.196854 0.359427425.0635418 8.489687
child14.255073 0.420080829.2930145 9.922322
ergative 6.211199 3.5011305 0.3111011 5.826714
other32.97582018.5878203 1.651664030.934552
subInitial 1.59528822.0889316 1.4524475 6.851806
subNotInitial 3.39178346.9638545 3.088086514.567804
animate 5.417680 1.4900297 7.2189316 4.317163
inanimate23.956304 6.588725131.921213119.089953

Nous voyons bien qu’ergative et other contribuent peu à la dimension 3 (avec une mauvaise qualité en plus) et que les contributions globales des catégories sur la dimension 4 sont finalement assez faibles. Nous décidons donc de nous focaliser quand même sur les deux premières dimensions.

Corrélation entre variables et dimensions

[5]:
fviz_mca_var(mca.object,
               repel = TRUE, # Avoid text overlapping (slow if many point)
               ggtheme = theme_minimal())
../images/linguistique_informatique_02_mca_ergatif_fr_12_0.png

Vous voyez bien que sur la dimension 1 ergative est lié à adult, animate et subInitial, se différenciant nettement d’other. Sur la dimension 2 ergative est toujours plus proche de adult, mais se regroupe avec subNotInitial et inanimate cette fois-ci. Pour savoir quelle dimension regarder nous avons besoin de savoir les contributions et qualités de chaque catégorie à ces deux dimensions. Nous avons déjà abordé ce point plus haut, ici nous utilisons des graphes pour mieux comprendre cette question.

Le graphe suivant permet de savoir les corrélations des variables avec chaque dimension. Vous voyez que la dimension 1 est surtout corrélée avec Animacy, Age et CaseMarking et la dimension 2 avec WordOrder.

[6]:
fviz_mca_var(mca.object, choice = "mca.cor",
            repel = TRUE, # Avoid text overlapping (slow)
            ggtheme = theme_minimal())
../images/linguistique_informatique_02_mca_ergatif_fr_14_0.png

Combinant les informations des tableaux et de MCA, nous arrivons aux conclusions suivantes :

  1. Au niveau de l’âge du locuteur c’est surtout la dimension 1 qu’il faut regarder, l’utilisation de l’ergatif est surtout liée à l’adulte, contrairement aux autres cas qui sont plutôt liés à l’enfant.

  2. Au niveau de l’ordre des mots c’est plutôt la dimension 2 qu’il faut regarder. L’ergatif est plus fortement lié à subNotInitial qu’à subInitial par rapport à other. Cependant l’ergatif et les autres cas sont tous utilisés plus souvent en subInitial, ce qui est très visible sur les tableaux mais moins sur le graphe de MCA.

  3. Au niveau de l’animéité du sujet, l’ergatif et les autres cas sont tous utilisés plus fréquemment quand le sujet est animé, ce qui, encore une fois, n’est pas facile à visualiser en MCA. Cependant sur MCA il est plus facile de voir que l’ergatif est plus fortement lié au sujet animé que les autres cas.

Vu que les contributions de animate et d’inanimate sont grandes sur la dimension 3, nous décidons de regarder aussi cette dimension.

[7]:
plot(mca.object, axes=3:4, invisible="ind", title="")
../images/linguistique_informatique_02_mca_ergatif_fr_16_0.png

Effectivement ergative et other sont tous relativement proches d’animate, cependant comme on a évoqué plus haut, les contributions d’ergative et d’other sont petites au niveau de la dimension 3, rendant l’interprétation difficile.

  1. En guise de remarque finale, nous trouvons que quand les variables ne sont pas très nombreuses (comme c’est le cas ici), les tableaux de proportions sont plus faciles à interpréter que MCA. Nous pensons que le nombre limité de variables de cet exercice a quelque peu réduit l’intérêt de l’usage de MCA mais il est toujours d’intéressant d’avoir des graphes de MCA à ses côtés même lorque les tableaux montrent des tendances relativement nettes.

Enfin, nous voudrions aussi montrer l’utilité la fonction unique de MCA qui consiste à comparer les catégories au sein de chaque variable. Cela confirme que l’usage d’ergative et celui des autres cas sont bien distincts.

[8]:
plotellipses(mca.object, keepvar=c(1:3), magnify = 1)
../images/linguistique_informatique_02_mca_ergatif_fr_18_0.png

Référence

Cours de Guillaume Desagulier intitulé linguistique outillée et traitements statistiques

https://corpling.modyco.fr/workshops/M2TAL/4.multivariate.html