mirror of
https://github.com/ArthurDanjou/ArtStudies.git
synced 2026-01-25 15:52:36 +01:00
250 lines
5.9 KiB
Plaintext
250 lines
5.9 KiB
Plaintext
---
|
||
title: "TP5_Enonce"
|
||
author: ''
|
||
date: ''
|
||
output:
|
||
pdf_document: default
|
||
html_document: default
|
||
---
|
||
|
||
```{r setup, include=FALSE}
|
||
knitr::opts_chunk$set(echo = TRUE)
|
||
```
|
||
|
||
```{r}
|
||
rm(list=ls())
|
||
library(FactoMineR)
|
||
```
|
||
|
||
----------------------------------------------------------------------------------------
|
||
|
||
Exercice 1
|
||
|
||
AFC sur le lien entre couleur des cheveux et ceux des yeux
|
||
|
||
```{r}
|
||
data("HairEyeColor")
|
||
```
|
||
|
||
```{r}
|
||
HairEyeColor
|
||
```
|
||
```{r}
|
||
data <- apply(HairEyeColor, c(1, 2), sum)
|
||
n <- sum(data)
|
||
data
|
||
```
|
||
```{r}
|
||
barplot(data,beside=TRUE,legend.text =rownames(data),main="Effectifs observés",col=c("black","brown","red","yellow"))
|
||
```
|
||
|
||
1) Commentez le barplot ci-dessus ? S'attend on à une situation d'indépendance ?
|
||
|
||
On voit que la couleur des yeux a une incidence sur la couleur des cheveux car il n'y a pas la même proportion de blond pour les yeux bleus que pour les autres couleurs de yeux. On peut donc s'attendre à une situation de dépendance entre ces deux variables.
|
||
|
||
2) Etudiez cette situation par un test du chi-deux d'indépendance
|
||
|
||
```{r}
|
||
test <- chisq.test(data)
|
||
test
|
||
```
|
||
3) Affichez le tableau des effectifs théoriques et la contribution moyenne
|
||
```{r}
|
||
test$expected
|
||
|
||
n_cases <- ncol(data) * nrow(data)
|
||
contrib_moy <- 100/n_cases
|
||
contrib_moy
|
||
```
|
||
4) Calculer le tableau des contributions au khi-deux
|
||
|
||
```{r}
|
||
contribs <- (test$observed - test$expected)**2 / test$expected * 100/test$statistic
|
||
contribs
|
||
```
|
||
5) Calculer le tableau des probabilités associé au tableau de contingence.
|
||
|
||
```{r}
|
||
prob <- data/sum(data)
|
||
prob
|
||
```
|
||
6) Calculer le tableau des profils lignes et le profil moyen associé.
|
||
|
||
-> Le profil ligne est une probabilité conditionnelle.
|
||
|
||
```{r}
|
||
marginale_ligne <- apply(prob, 1, sum)
|
||
profil_ligne <- prob / marginale_ligne
|
||
profil_ligne_moyen <- apply(prob, 2, sum)
|
||
|
||
marginale_ligne
|
||
profil_ligne
|
||
profil_ligne_moyen
|
||
```
|
||
|
||
7) Calculer le tableau des profils colonnes et le profil moyen associé.
|
||
```{r}
|
||
marginale_colonne <- apply(prob, 2, sum)
|
||
profil_colonne <- t(t(prob) / marginale_colonne)
|
||
profil_colonne_moyen <- apply(prob, 1, sum)
|
||
|
||
marginale_colonne
|
||
profil_colonne
|
||
profil_colonne_moyen
|
||
```
|
||
|
||
8) Que vaut l’inertie du nuage des profils lignes ? Celle du nuage des profils colonnes ?
|
||
|
||
-> inertie : la variance des profils par rapport au profil moyen. l'inertie des lignes et la même que celle des colonnes. I = chi2/Nombre d'individus
|
||
|
||
```{r}
|
||
inertie <- test$statistic/sum(data)
|
||
inertie
|
||
```
|
||
|
||
9) Lancer une AFC avec FactoMineR
|
||
|
||
```{r}
|
||
library(FactoMineR)
|
||
res.afc<-CA(data)
|
||
|
||
summary(res.afc)
|
||
|
||
plot(res.afc, invisible = "row")
|
||
plot(res.afc, invisible = "col")
|
||
|
||
```
|
||
```{r}
|
||
|
||
```
|
||
|
||
|
||
10) Faire la construcution des éboulis des valeurs propres
|
||
|
||
```{r}
|
||
eigen_values <- res.afc$eig
|
||
|
||
bplot <- barplot(
|
||
eigen_values[, 1],
|
||
names.arg = 1:nrow(eigen_values),
|
||
main = "Eboulis des valeurs propres",
|
||
xlab = "Principal Components",
|
||
ylab = "Eigenvalues",
|
||
col = "lightblue"
|
||
)
|
||
lines(x = bplot, eigen_values[, 1], type = "b", col = "red")
|
||
abline(h=1, col = "darkgray", lty = 5)
|
||
```
|
||
11) Effectuer l'analyse des correspondances
|
||
|
||
----------------------------------------------------------------------------------------
|
||
|
||
Exercice 2
|
||
|
||
AFC sur la répartition des tâches ménagères dans un foyer
|
||
|
||
```{r}
|
||
data<-read.table("housetasks.csv",sep=";",header = TRUE)
|
||
data
|
||
```
|
||
|
||
```{r}
|
||
|
||
barplot(as.matrix(data),beside=TRUE,legend.text=rownames(data),main="Effectifs observés",col=rainbow(length(rownames(data))))
|
||
```
|
||
|
||
1) Commentez le barplot ci-dessus ? S'attend on à une situation d'indépendance ?
|
||
|
||
On voit que la place dans la famille a une incidence sur les taches de la famille car il n'y a pas la même proportion de Laundry chez la femme que pour les autres membres de la famille. On peut donc s'attendre à une situation de dépendance entre ces deux variables.
|
||
|
||
|
||
2) Etudiez cette situation par un test du chi-deux d'indépendance
|
||
|
||
```{r}
|
||
data_house <- apply(data, c(1, 2), sum)
|
||
test_house <- chisq.test(data_house)
|
||
test_house
|
||
```
|
||
3) Affichez le tableau des effectifs théoriques et la contribution moyenne
|
||
```{r}
|
||
test_house$expected
|
||
|
||
n_cases <- ncol(data_house) * nrow(data_house)
|
||
contrib_moy_house <- 100/n_cases
|
||
contrib_moy_house
|
||
```
|
||
4) Calculer le tableau des contributions au khi-deux
|
||
|
||
```{r}
|
||
contrib_house <- (test_house$observed - test_house$expected)**2 / test_house$expected * 100/test_house$statistic
|
||
contrib_house
|
||
```
|
||
5) Calculer le tableau des probabilités associé au tableau de contingence.
|
||
|
||
```{r}
|
||
proba_house <- data_house / sum(data_house)
|
||
proba_house
|
||
```
|
||
6) Calculer le tableau des profils lignes et le profil moyen associé.
|
||
|
||
```{r}
|
||
marginale_ligne <- apply(proba_house, 1, sum)
|
||
profil_ligne <- proba_house / marginale_ligne
|
||
profil_ligne_moyen <- apply(proba_house, 2, sum)
|
||
|
||
marginale_ligne
|
||
profil_ligne
|
||
profil_ligne_moyen
|
||
```
|
||
7) Calculer le tableau des profils colonnes et le profil moyen associé.
|
||
```{r}
|
||
marginale_colonne <- apply(proba_house, 2, sum)
|
||
profil_colonne <- t(t(proba_house) / marginale_colonne)
|
||
profil_colonne_moyen <- apply(proba_house, 1, sum)
|
||
|
||
marginale_colonne
|
||
profil_colonne
|
||
profil_colonne_moyen
|
||
```
|
||
8) Que vaut l’inertie du nuage des profils lignes ? Celle du nuage des profils colonnes ?
|
||
|
||
|
||
```{r}
|
||
inertie <- test_house$statistic / sum(data_house)
|
||
inertie
|
||
```
|
||
|
||
9) Lancer une AFC avec FactoMineR
|
||
|
||
```{r}
|
||
res.afc<-CA(data)
|
||
|
||
summary(res.afc,nbelements = Inf)
|
||
|
||
plot(res.afc, invisible = "row")
|
||
plot(res.afc, invisible = "col")
|
||
|
||
```
|
||
|
||
|
||
10) Faire la construcution des éboulis des valeurs propres
|
||
|
||
```{r}
|
||
eigen_values <- res.afc$eig
|
||
|
||
bplot <- barplot(
|
||
eigen_values[, 1],
|
||
names.arg = 1:nrow(eigen_values),
|
||
main = "Eboulis des valeurs propres",
|
||
xlab = "Principal Components",
|
||
ylab = "Eigenvalues",
|
||
col = "lightblue"
|
||
)
|
||
lines(x = bplot, eigen_values[, 1], type = "b", col = "red")
|
||
abline(h=1, col = "darkgray", lty = 5)
|
||
```
|
||
|
||
11) Effectuer l'analyse des correspondances
|
||
Axe 1 : taches pour les femmes a gauche et les maris a droite
|
||
Axe 2 : taches individuelles en haut, taches collectives au milieu et en bas
|