library(faux)
## 
## ************
## Welcome to faux. For support and examples visit:
## https://debruine.github.io/faux/
## - Get and set global package options with: faux_options()
## ************
set.seed(123)
loc1 = rnorm_multi(
  n = 50, vars = 3,
  mu = c(20, 30, 2),
  sd = c(2, 3, 0.2),
  r = 0.7,
  varnames = c('A','Ar','MO'))

loc2 = rnorm_multi(
  n = 50, vars = 3,
  mu = c(23, 33, 2.4),
  sd = c(2, 3, 0.2),
  r = 0.8,
  varnames = c('A','Ar','MO'))

loc3 = rnorm_multi(
  n = 50, vars = 3,
  mu = c(25, 35, 2.7),
  sd = c(2, 3, 0.2),
  r = 0.76,
  varnames = c('A','Ar','MO'))

datos = rbind(loc1, loc2, loc3)
datos$loc = gl(3, 50, 150)

rgl::plot3d(datos$A,
            datos$Ar,
            datos$MO,
            col=datos$loc,
            type= 's')

library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
library(ggplot2)
library(lattice)
metodos = c('lda2', 'stepLDA')
model = lapply(metodos, function(mi){
  train(x = datos[, -4],
        y = datos[, 4],
        method = mi)
})
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.74667;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.74;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.77333;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.78667;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.81333;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.76667;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.24
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.82667;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.76;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.7;  in: "MO";  variables (1): MO 
## correctness rate: 0.78;  in: "Ar";  variables (2): MO, Ar 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.34
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.78667;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.73333;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.27
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.76;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.81333;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.26
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.76667;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.68667;  in: "MO";  variables (1): MO 
## correctness rate: 0.74;  in: "Ar";  variables (2): MO, Ar 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.31
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.76667;  in: "MO";  variables (1): MO 
## correctness rate: 0.82667;  in: "A";  variables (2): MO, A 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.29
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.73333;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.28
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.79333;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.66;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.27
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.8;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.8;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.75333;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.26
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.82667;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.78;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.26
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.8;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
##  `stepwise classification', using 10-fold cross-validated correctness rate of method lda'.
## 150 observations of 3 variables in 3 classes; direction: both
## stop criterion: improvement less than 5%.
## correctness rate: 0.75333;  in: "MO";  variables (1): MO 
## 
##  hr.elapsed min.elapsed sec.elapsed 
##        0.00        0.00        0.25
model[[1]]$method
## [1] "lda2"
model[[2]]$method
## [1] "stepLDA"
# Analisis de Correspondencia

## Tablas de contingencia

set.seed(123)

n_fem = 60
n_mas = 40
genero = rep(c('F','M'), c(n_fem, n_mas))
acuerdo = c(
  sample(c('SI','NO'), n_fem, T, c(0.8, 0.2)),
  sample(c('SI','NO'), n_mas, T, c(0.2, 0.8))
)

table(genero, acuerdo)
##       acuerdo
## genero NO SI
##      F 12 48
##      M 34  6
tbl = table(genero, acuerdo)

barplot(t(tbl), legend.text = T)

tbl_prop = prop.table(tbl, margin = 1)
barplot(t(tbl_prop), legend.text = T)

tbl_prop = prop.table(tbl, margin = 2)
barplot(tbl_prop, legend.text = T)

datos = data.frame(genero, acuerdo)

ct = chisq.test(tbl, correct = F)
ct$p.value
## [1] 1.668088e-10
ifelse(ct$p.value < 0.05,
       'rechaza Ho',
       'No rechaza Ho')
## [1] "rechaza Ho"