-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathExercício sobre análise de correlação.R
101 lines (92 loc) · 3.79 KB
/
Exercício sobre análise de correlação.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
## Curso Modelos de regressão no software R - Módulo 1 ##
## Análise de correlação ##
## Exercício
## Faça todos os gráficos e cálculo dos teste de correlação para todas as combinações de variáveis
## Ler o arquivo de dados
dados<-read.table("caminhododiretorio/dados.csv",h=T,sep=",")
## Vizualizar os dados
library("ggpubr")
graficos_vizualizaçao_de_dados<-list()
for (i in 3:ncol(dados))
{
for (j in 3:ncol(dados))
{
if(i!=j)
{
if(colnames(dados[i])=="PROD")
{
xlab<-"sacos por hectare"
} else if (colnames(dados[i])=="ALP")
{
xlab<-"centímetros"
} else if (colnames(dados[i])=="MAT")
{
xlab<-"dias"
} else if (colnames(dados[i])=="ACM"|colnames(dados[i])=="FER")
{
xlab<-"Porcentagem"
} else {
xlab<-"Contagem"
}
if(colnames(dados[j])=="PROD")
{
ylab<-"sacos por hectare"
} else if (colnames(dados[j])=="ALP")
{
ylab<-"centímetros"
} else if (colnames(dados[j])=="MAT")
{
ylab<-"dias"
} else if (colnames(dados[j])=="ACM"|colnames(dados[j])=="FER")
{
ylab<-"Porcentagem"
} else {
ylab<-"Contagem"
}
temp<-data.frame(cbind(dados[,i],dados[,j]))
graficos_vizualizaçao_de_dados[[paste(i,j)]]<-ggscatter(data = temp,x = "X1", y = "X2",
add = "reg.line", conf.int = TRUE,
cor.coef = TRUE, cor.method = "pearson",
xlab = xlab, ylab = ylab)
}
}
}
## Teste de shapiro-Wilk e gráfico de normalidade
norm.test<-list()
graficos_normalidade<-list()
for (i in 3:ncol(dados))
{
names<-colnames(dados[i])
norm.test[[names]]<-shapiro.test(dados[,i])
graficos_normalidade[[names]]<-ggqqplot(dados[,i], ylab = names)
}
norm.testfinal<-data.frame(do.call(rbind,norm.test))
norm.testfinal1<-data.frame(Variável=row.names(norm.testfinal),Valor=as.numeric(norm.testfinal$statistic), p.Value=as.numeric(norm.testfinal$p.value))
## Rodando as correlações
correlacoes<-list()
for (i in 3:ncol(dados))
{
for(j in 3:ncol(dados))
{
temppearson<-cor.test(dados[,i],dados[,j],method = "pearson")
tempspearman<-cor.test(dados[,i],dados[,j],method = "spearman")
dados1<-data.frame(aggregate(x = dados[3:ncol(dados)], by = list(Trat=dados$Trat), FUN = mean))
temppearsonmedia<-cor.test(dados1[,i-1],dados1[,j-1],method = "pearson")
tempspearmanmedia<-cor.test(dados1[,i-1],dados1[,j-1],method = "spearman")
correlacoes[[paste(i,j)]]<-data.frame(Comparaçao=paste(colnames(dados[i]),colnames(dados[j]),sep="-"),
rPearson=temppearson$estimate,pvaluerPearson=temppearson$p.value,
rSpearman=tempspearman$estimate,pvaluerSpearman=tempspearman$p.value,
rPearsonmedia=temppearsonmedia$estimate,pvaluerPearsonmedia=temppearsonmedia$p.value,
rSpearmanmedia=tempspearmanmedia$estimate,pvaluerSpearmanmedia=tempspearmanmedia$p.value)
}
}
correlacoesfinal<-data.frame(do.call(rbind,correlacoes))
## Salve os resultados em uma pasta
write.table(norm.testfinal1,"caminhododiretorio/resultado_teste_normalidade.csv", quote=F, row.names=F,sep=",")
write.table(correlacoesfinal,"caminhododiretorio/Modelos de regressão no software R - Módulo 1/resultado_correlacoes.csv", quote=F, row.names=F,sep=",")
pdf("caminhododiretorio/Modelos de regressão no software R - Módulo 1/gráficos_preliminares.pdf",width=6,height=4,paper='special')
graficos_vizualizaçao_de_dados
dev.off()
pdf("caminhododiretorio/gráficos_normalidade.pdf",width=6,height=4,paper='special')
graficos_normalidade
dev.off()