Accéder au contenu principal
Documents
Partager
LinkedIn
Facebook
Twitter
Copy
R DocumentationEntrée de données en RGestion des données en RGraphiques en RR InterfaceStatistiques en R

Analyse des fonctions discriminantes en R

Le progiciel MASS contient des fonctions permettant d'effectuer des analyses de fonctions discriminantes linéaires et quadratiques. À moins que des probabilités préalables ne soient spécifiées, chacun suppose des probabilités préalables proportionnelles (c'est-à-dire que les probabilités préalables sont basées sur la taille des échantillons). Dans les exemples ci-dessous, les lettres minuscules sont des variables numériques et les lettres majuscules sont des facteurs catégoriels.

Fonction discriminante linéaire

# Linear Discriminant Analysis with Jacknifed Prediction

library(MASS)
fit <- lda(G ~ x1 + x2 + x3, data=mydata,
   na.action="na.omit", CV=TRUE)
fit # show results

Le code ci-dessus effectue une analyse linéaire des données, en supprimant les données manquantes dans le sens de la liste. CV=TRUE génère des prédictions jacknifiées (c.-à-d. sans tenir compte d'un seul élément). Le code ci-dessous évalue la précision de la prédiction.

# Assess the accuracy of the prediction
# percent correct for each category of G
ct <- table(mydata$G, fit$class)
diag(prop.table(ct, 1))
# total percent correct
sum(diag(prop.table(ct)))

lda() imprime les fonctions discriminantes basées sur des variables centrées (non standardisées). La "proportion de trace" qui est imprimée est la proportion de variance entre les classes qui est expliquée par les fonctions discriminantes successives. Aucun test de signification n'est produit. Reportez-vous à la section sur la MANOVA pour de tels tests.

Fonction discriminante quadratique

Pour obtenir une fonction discriminante quadratique, utilisez qda( ) au lieu de lda( ). La fonction discriminante quadratique ne suppose pas l'homogénéité des matrices de variance-covariance.

# Quadratic Discriminant Analysis with 3 groups applying
#
resubstitution prediction and equal prior probabilities.
library(MASS)
fit <- qda(G ~ x1 + x2 + x3 + x4, data=na.omit(mydata),
  prior=c(1,1,1)/3))

Notez l'autre façon de spécifier la suppression par liste des données manquantes. La resubstitution (utilisation des mêmes données pour dériver les fonctions et évaluer la précision de leur prédiction) est la méthode par défaut, sauf si CV=TRUE est spécifié. La resubstitution sera trop optimiste.

Visualisation des résultats

Vous pouvez représenter chaque observation dans l'espace des deux premières fonctions discriminantes linéaires à l'aide du code suivant. Les points sont identifiés par l'ID du groupe.

# Scatter plot using the 1st two discriminant dimensions
plot(fit) # fit from lda

tracé linéaire discriminant des points

Le code suivant affiche des histogrammes et des diagrammes de densité pour les observations de chaque groupe sur la première dimension du discriminant linéaire. Il y a un panneau pour chaque groupe et ils apparaissent tous alignés sur le même graphique.

# Panels of histograms and overlayed density plots
# for 1st discriminant function
plot(fit, dimen=1, type="both") # fit from lda

histogramme/graphique de densité lda

La fonction partimat( ) du package klaR permet d'afficher les résultats d'une classification linéaire ou quadratique 2 variables à la fois.

# Exploratory Graph for LDA or QDA
library(klaR)
partimat(G~x1+x2+x3,data=mydata,method="lda")

parcelle partimat

Vous pouvez également produire une matrice de nuage de points avec un code couleur par groupe.

# Scatterplot for 3 Group Problem
pairs(mydata[c("x1","x2","x3")], main="My Title ", pch=22,
   bg=c("red", "yellow", "blue")[unclass(mydata$G)])

matrice de nuage de points

Hypothèses de test

Voir (M)ANOVA Assumptionspour lesméthodes d'évaluation de la normalité multivariée et de l'homogénéité des matrices de covariance.

Pratiquer

Pour vous entraîner à améliorer les prédictions, essayez le cours Apprentissage supervisé en R</a >