R

Représenter des effectifs dans le plan factoriel

Divers

La fonction s.freq est maintenant disponible dans la package JLutils.

Lorsque l’on réalise une analyse des correspondances multiples (ACM), il n’est pas rare que plusieurs observations soient identiques, c’est-à-dire correspondent à la même combinaison de modalités. Dès lors, ces observations seront projetées sur le même point dans le plan factoriel. Une représentation classique des observations ne permettra pas de rendre des effectifs de chaque point.

Prenons un exemple :

library(questionr)
data(hdv2003)
library(ade4)
acm <- dudi.acm(hdv2003[,c("sexe","sport","bricol","cuisine","cinema")], scannf=FALSE)
s.label(acm$li, clabel=0, cpoint=2)
Graphique obtenu avec s.label

C’est pourquoi nous avons concocté une petite fonction s.freq
reprenant le principe de s.value mais représentant chaque point par
un carré proportionnel au nombre d’individus identiques.

s.freq <-
	function(dfxy, xax=1, yax=2, ...)
	{
		require(ade4)
		d <- as.data.frame(table(dfxy[c(xax,yax)]))
		d <- d[d$Freq>0,]
		d[1] <- as.numeric(as.character(d[[1]]))
		d[2] <- as.numeric(as.character(d[[2]]))
		s.value(d,d$Freq, ...)
	}

Et voici le résultat :

s.freq(acm$li, csize=0.75)
Graphique obtenu avec s.freq