-
Notifications
You must be signed in to change notification settings - Fork 0
/
MANOVA_LDA.R
68 lines (43 loc) · 1.49 KB
/
MANOVA_LDA.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#1.1
library(car)
library(stats)
especies <- dados$species
pca_modelo <- prcomp(resposta, center = TRUE, scale. = TRUE)
summary(pca_modelo)
pca_resposta <- pca_modelo$x[, 1:10]
manova_modelo <- manova(pca_resposta ~ especies)
summary(manova_modelo)
summary(manova_modelo, test = "Wilks")
summary(manova_modelo, test = "Pillai")
summary(manova_modelo, test = "Hotelling-Lawley")
summary(manova_modelo, test = "Roy")
#1.2
library(MVN)
library(biotools)
resposta <- dados[, grep("coords_", colnames(dados))]
especies <- dados$species
dados_completos <- cbind(especies, resposta)
resultado_mvn <- mvn(data = dados_completos[, -1], mvnTest = "mardia", multivariatePlot = "qq")
resultado_mvn
resultado_box_m <- boxM(resposta, especies)
resultado_box_m
#1.3
library(MASS)
library(caret)
library(boot)
resposta <- dados[, grep("coords_", colnames(dados))]
especies <- dados$species
bootstrap_lda <- function(data, indices) {
bootstrap_data <- data[indices,]
resposta_boot <- bootstrap_data[, -1]
especies_boot <- bootstrap_data[, 1]
lda_model <- lda(especies_boot ~ ., data = data.frame(especies_boot, resposta_boot))
pred <- predict(lda_model, data.frame(resposta))
mean(pred$class == especies)
}
dados_completos <- cbind(especies, resposta)
bootstrap_results <- boot(data = dados_completos, statistic = bootstrap_lda, R = 100)
mean_accuracy <- mean(bootstrap_results$t)
conf_interval <- boot.ci(bootstrap_results, type = "perc")
round(mean_accuracy, 3)
round(conf_interval$percent[4:5], 3)