Texto guía: Multivariate Analysis of Ecological Data with ade4. Año 2018
Autores: Jean Thioluse, Stéphane Dray, Anne-Béatrice Dufour Aurélie Siberchicot, Thibaut Jombart, Sandrine Pavoine
País: Francia, Ciudad: Lyon, Universidad: Universidad de Lyon
https://doi.org/10.1007/978-1-4939-8850-1
library(ade4)
library(adegraphics)
## Warning: package 'adegraphics' was built under R version 4.2.1
## Registered S3 methods overwritten by 'adegraphics':
## method from
## biplot.dudi ade4
## kplot.foucart ade4
## kplot.mcoa ade4
## kplot.mfa ade4
## kplot.pta ade4
## kplot.sepan ade4
## kplot.statis ade4
## scatter.coa ade4
## scatter.dudi ade4
## scatter.nipals ade4
## scatter.pco ade4
## score.acm ade4
## score.mix ade4
## score.pca ade4
## screeplot.dudi ade4
##
## Attaching package: 'adegraphics'
## The following objects are masked from 'package:ade4':
##
## kplotsepan.coa, s.arrow, s.class, s.corcircle, s.distri, s.image,
## s.label, s.logo, s.match, s.traject, s.value, table.value,
## triangle.class
adegpar Se utiliza para obtener y establecer el valor de todos los parámetros de adegraphics
names(adegpar())
## [1] "p1d" "parrows" "paxes" "pbackground" "pellipses"
## [6] "pgrid" "plabels" "plegend" "plines" "pnb"
## [11] "porigin" "ppalette" "ppoints" "ppolygons" "pSp"
## [16] "psub" "ptable"
La función adegpar (análoga a la función base par) se utiliza para obtener y establecer el valor de todos los parámetros de adegraphics, los cuales consisten en sublistas que tratan con elementos específicos de un gráfico y tienen nombres fáciles de recordar: ppoints para parámetros de puntos, plabels para parámetros de etiquetas, psub para parámetros de subtítulos, etc. ejemplo: objeto adegpar
adegpar(plabels.col = "blue", plabels.cex = 1.5)
adegpar(plabels = list(col = "blue", cex = 1.5))
Otra estrategia es establecer los parámetros solo para un objeto gráfico en particular durante su creación:
xy <- cbind.data.frame(rnorm(10), rnorm(10))
s.label(xy, plabels = list(col = "blue", cex = 1.5))
Creando matriz con puntos de datos en una matriz xy
set.seed(15)
xy <- matrix(rnorm(100), ncol = 2)
xy2 <- matrix(rnorm(100, mean = 2), ncol = 2)
xy <- rbind(xy, xy2)
Representación de los puntos de datos de la matriz xy con la funcións.label
sl1 <- s.label(xy, plot = FALSE)
sl2 <- s.label(xy, storeData = FALSE, plot = FALSE)
print(object.size(sl1), units = "auto")
## 95 Kb
print(object.size(sl2), units = "auto")
## 93.5 Kb
sl3 <- s.label (xy, storeData = FALSE, plot = FALSE, ppoints.alpha = 0.01)
Uso de la función s.density para gráficar la densidad
sd1 <- s.density(xy, nr = 0, threshold = 0.001, contour = TRUE, region = TRUE, ppalette.quanti = colorRampPalette(c(rgb(0, 0, 1, 0.05), rgb(0.5, 0, 0.5, 0.9)), alpha = TRUE), plot = FALSE)
#ADEgS(list(sl2,sl3,sd1))
#ADEgS(sl3)
Ejemplos simples
#install.packages("Guerry")
library(Guerry)
## Warning: package 'Guerry' was built under R version 4.2.1
library(sp)
data(gfrance85)
xy <- coordinates(gfrance85)
dep.names <- data.frame(gfrance85)[, 6]
region.names <- data.frame(gfrance85)[, 5]
df <- data.frame(gfrance85)[, 7:12]
names(df)
## [1] "Crime_pers" "Crime_prop" "Literacy" "Donations" "Infants"
## [6] "Suicides"
Crime_pers: Population per Crime against persons
Crime_prop: Population per Crime against property
Literacy: Percent Read and Write, percent of literate military conscripts
Donations: Donations to the poor
Infants: Population per illegitimate birth
Suicides: Population per suicide
Exportando los datos a CSV (recordar estar conectado a un directorio)
#write.csv(gfrance85, file="gfrance85_data.csv")
Ejemplo de PCA con las variables de la data de Guerry Generando el PCA con color
pca.guerry <- dudi.pca(df, scannf = FALSE, nf = 3)
g.lab.pca <- s.label(pca.guerry$li, labels =
dep.names, plot = FALSE)
g.lab.pca.u <- s.label(pca.guerry$li, labels = dep.names,
plot = FALSE)
ADEgS(list(g.lab.pca, g.lab.pca.u))
Generando el PCA con color con ayuda de la función update.
El color está de acuerdo con el departamento al que pertence
library(RColorBrewer)
col.region <- brewer.pal(5, "Set1")
col.dep <- col.region[region.names]
g.lab.pca.u <- update(g.lab.pca.u, paxes.draw = TRUE,
pgrid.draw = FALSE, plabels.col = col.dep, plot = FALSE)
ADEgS(list(g.lab.pca, g.lab.pca.u))
Análisis BCA (Between Classes Analysis) para el pca del dataframe df de la base de datos gfrance85 el cual contiene las variables morales: (Crime_pers, Crime_prop, Literacy, Donations,Infants y Suicides). Un valor-p pequeño, indica que hay alta relación entre las variables
bca.guerry <- bca(pca.guerry, fac = region.names, scannf = FALSE)
randtest(bca.guerry)$pvalue
## [1] 0.001
Gráfico de los puntajes del BCA Factor Map
g.lab.bca <- s.label(bca.guerry$ls, labels = dep.names,
plabels.cex = 0.7, plot = FALSE)
g.lab.bca.o <- s.label(bca.guerry$ls, labels = dep.names,
plabels = list(cex = 0.7, optim = TRUE), ppoints.col =
col.dep, plot = FALSE)
ADEgS(list(g.lab.bca, g.lab.bca.o))
oldpar <- adegpar()
mappar <- adegpar(porigin.include = FALSE, pgrid.draw = FALSE,
pbackground.box = TRUE)
g1.map.bca <- s.value(xy, bca.guerry$ls[, 1], Sp = gfrance85, symbol = "circle", pSp.col = col.dep, psub.text = "BCA axis 1",psub.cex = 1.2)
adegpar(oldpar)
s.label(bca.guerry$ls, labels = dep.names, plabels.optim = TRUE, facets = region.names)