Existem diversos tipos de variáveis, veja:
Quantitativas
Qualitativas
Coefecientes de correlação informam:
NÃO INDICA RELAÇÃO DE CAUSALIDADE
Além dos coeficientes de correlação, existem outras medidas de associação, veja:
Sejam duas variáveis X e Y, ambas quantitativas, preferencialmente contínuas. A existência de relação linear entre essas variáveis pode ser detectada com auxílio do Diagrama de Dispersão, mas, também, com auxílio do Coeficiente de Correlação Linear de Pearson.
Utilizado quando não existe normalidade e/ou nao existe relação linear, deve ser usado quando não se deseja utilizar nenhuma suposição de normalidade ou da presença de qualquer outra distribuição para a variável ou para a estatística de teste.
Este coeficiente se baseia nos postos das observações dentro de cada variável e se baseia sobre as diferenças entre os postos observados, nas variáveis X e Y, para um mesmo objeto de estudo.
Ideal quando temos variáveis medidas apenas em uma escala ordinal.
O coeficiente de correlação Tau de Kendall serve para verificar se existe correlação entre duas variáveis ordinais. É um método adequado quando amostras têm tamanhos reduzidos, pois o método é mais preciso. E pode ser estendido a correlações parciais, quando o efeito de uma terceira variável, que age sobre X e Y, é retirado antes de determinar se X e Y estão relacionadas.
Coeficiente de Kendall é, muitas vezes, interpretado como uma medida de concordância entre dois conjuntos de classificações relativas a um conjunto de objetos de estudo.
Utiliza-se esta prova quando os dados da pesquisa se apresentam sob forma de freqüências em categorias discretas. Pode aplicar a prova \(\chi^2\) para determinar a significância de diferenças entre dois grupos independentes e conseqüentemente, com respeito a freqüências relativas com que os componentes do grupo se enquadram nas diversas categorias.
Suas hipóteses:
\[ H_0: \text{São independentes (Não associadas)} \\ H_1: \text{Não são independentes (São associadas) } \]
O teste qui-quadrado quando aplicado a amostras pequenas, como por exemplo com tamanho inferior a 20, veja:
os testes fornecem apenas a resposta se as variáveis estão ou não correlacionadas. Para saber a internsidade desta relação, utilizam-se medidas de associação.
Considere as seguintes medidas:
O coeficiente phi é uma medida de associação entre duas variáveis binárias. A interpretação é similar a de um coeficiente de correlação. Duas variáveis binárias são consideradas positivamente associadas se a maior parte dos dados (frequências) cai ao longo das células da diagonal (a e d maiores que b e c). E serão consideradas negativamente associadas se a maior parte dos dados cai fora da diagonal.
O coeficiente V de Cramer serve para medir associação em tabelas não quadradas.
O Coeficiente de Contingência C é uma medida de associação, relacionada à estatística de teste do teste qui-quadrado, e ajustada para diferentes tamanhos de amostra. Ele também está diretamente relacionado à estatística de teste do teste qui-quadrado e ao Coeficiente Phi (possui as mesmas vantagens e desvantagens de Phi).
Ambos variam de 0 (ausência de associação) a 1 (associação muito forte).
O coeficiente Kappa é uma medida de concordância interobservador e mede o grau de concordância além do que seria esperado só por conta do acaso. Muitas vezes é usado no lugar do teste de McNemar.
Obs: Também pode ser utilizado o coeficiente de Kappa ponderado
Para verificar se existe relação linear entre as variáveis, além de identificar se esta relação é positiva, negativa ou inexistente.
A suposição de normalidade é amplamente utilizada na estatística.
### Verificando a Normalidade Através do Histograma
# Criando um painel com o espaço de 4 gráficos
par(mfrow=c(2,2))
#preenchendo os quatro espaços com 4 histogramas (um para cada variável)
histogram=function(x){
hist(x,prob=T)
lines(density(x),col="red")
curve(dnorm(x,mean(x), sd(x)),add=T,col="blue")
}
histogram(dados$GASTEDU)
histogram(dados$GASAUDE)
histogram(dados$GASLAZER)
histogram(dados$IDADE)
Compara os quantis dos dados com os quantis de uma normal padrão
par(mfrow=c(2,2))
### Verificando a Normalidade Através do QQplot
qq = function(x){
qqnorm(x,main = "", xlab = "Quantis teóricos N(0,1)", pch = 20)
qqline(x, lty = 1, col = "red")
}
qq(dados$IDADE)
qq(dados$GASAUDE)
qq(dados$GASLAZER)
qq(dados$GASTEDU)
Incluindo uma região de aceitação, para cada ponto constroe o intervalo de confiança
#Envelope
envelope<-function(x){
n <- length(x)
nsim <- 100 # Número de simulações
conf <- 0.95 # Coef. de confiança
# Dados simulados ~ normal
dadossim <- matrix(rnorm(n*nsim, mean = mean(x), sd = sd(x)), nrow = n)
dadossim <- apply(dadossim,2,sort)
# Limites da banda e média
infsup<-apply(dadossim,1,quantile, probs = c((1 - conf) / 2,(1 + conf) / 2))
xbsim <- rowMeans(dadossim)
faixay <- range(x, dadossim)
qq0 <- qqnorm(x, main = "", xlab = "Quantis teóricos N(0,1)", pch = 20, ylim = faixay)
eixox <- sort(qq0$x)
lines(eixox, xbsim)
lines(eixox, infsup[1,], col = "red")
lines(eixox, infsup[2,], col = "red")
}
par(mfrow=c(2,2))
envelope(dados$GASTEDU)
envelope(dados$GASAUDE)
envelope(dados$GASLAZER)
envelope(dados$IDADE)
A seguir, diversos testes de hipoteses para avaliar:
\[ H_0: \text{Dados Normais} \\ H_1: \text{Dados Não Normais} \]
normalidade<-function(x){
t1 <- ks.test(x, "pnorm",mean(x), sd(x)) # KS
t2 <- lillie.test(x) # Lilliefors
t3 <- cvm.test(x) # Cramér-von Mises
t4 <- shapiro.test(x) # Shapiro-Wilk
t5 <- sf.test(x) # Shapiro-Francia
t6 <- ad.test(x) # Anderson-Darling
t7<-pearson.test(x) # Pearson Test of Normality
testes <- c(t1$method, t2$method, t3$method, t4$method, t5$method,t6$method,t7$method)
valorp <- c(t1$p.value, t2$p.value, t3$p.value, t4$p.value, t5$p.value,t6$p.value,t7$p.value)
resultados <- cbind(valorp)
rownames(resultados) <- testes
print(resultados, digits = 4)
}
normalidade(dados$GASAUDE)
## valorp
## One-sample Kolmogorov-Smirnov test 0.9238
## Lilliefors (Kolmogorov-Smirnov) normality test 0.6494
## Cramer-von Mises normality test 0.6605
## Shapiro-Wilk normality test 0.6297
## Shapiro-Francia normality test 0.6286
## Anderson-Darling normality test 0.6346
## Pearson chi-square normality test 0.3249
#Matriz de correlações:
cor(dados$GASTEDU,dados$GASAUDE)
## [1] 0.77825
Como saber se a correlação é significativa?
\[ H_0: \text{Não existe correlação} \\ H_1: \text{Existe correlação} \]
Aplicando o teste:
#Teste de correlação:
cor.test(dados$GASTEDU,dados$GASAUDE,method = "pearson")
Ideal quando temos variáveis medidas apenas em uma escala ordinal.
Executando:
#Teste de correlação:
cor.test(dados$GASTEDU,dados$GASAUDE,method = "spearman")
Coeficiente de Kendall é, muitas vezes, interpretado como uma medida de concordância entre dois conjuntos de classificações relativas a um conjunto de objetos de estudo.
Aplicação no R:
#Teste de correlação:
cor.test(dados2$IDADE,dados2$GASAUDE,method = "kendall")
Exemplo de uso de spearman:
cor(dados$ESCOLAR, dados$RENDA, method = "spearman")
cor.test(dados$ESCOLAR, dados$RENDA, method = "spearman")
Exemplo de uso de kendall com uma amostra menor:
cor(dados2$ESCOLAR, dados2$RENDA, method = "kendall")
cor.test(dados2$ESCOLAR, dados2$RENDA, method = "kendall")
Independente de ser normal ou nao
Exemplo de uso de spearman:
cor(dados$IDADE, dados$RENDA, method = "spearman")
cor.test(dados$IDADE, dados$RENDA, method = "spearman")
Exemplo de uso de kendall com uma amostra menor:
cor(dados2$IDADE, dados2$RENDA, method = "kendall")
cor.test(dados2$IDADE, dados2$RENDA, method = "kendall")
Os termos nível nominal de medida ou escala nominal são utilizadas para se referir a àqueles dados que só podem ser categorizados. No sentido estrito, não existe uma medida ou escala envolvida, o que existe é apenas uma contagem.
Vamos avaliar a profissão e o estado civil primeiramente, precisamos da tabela de contingência.
Tabelas de Contingência (ou tabelas de freqüência de dupla entrada) são tabelas em que as freqüências correspondem a duas classificações, uma classificação está nas linhas da tabela e a outra está nas colunas. Veja:
tab=ftable(as.factor(dados$PROFI),
as.factor(dados$ESTCIVIL),
dnn=c("Profissão", "EStado Civil"))
tab
## EStado Civil 1 2 3 4
## Profissão
## 1 26 13 29 1
## 2 24 6 21 0
\[ H_0: \text{São independentes (Não associadas)} \\ H_1: \text{Não são independentes (São associadas) } \]
Executando o teste:
chisq.test(dados$PROFI, dados$ESTCIVIL)
##
## Pearson's Chi-squared test
##
## data: dados$PROFI and dados$ESTCIVIL
## X-squared = 2.2905, df = 3, p-value = 0.5143
OBS: Correção de YAKES quando existe alguma frequência esperada menor do que 5, veja:
O teste qui-quadrado quando aplicado a amostras pequenas, como por exemplo com tamanho inferior a 20, veja:
fisher.test(dados2$PROFI, dados2$ESTCIVIL)
##
## Fisher's Exact Test for Count Data
##
## data: dados2$PROFI and dados2$ESTCIVIL
## p-value = 0.5226
## alternative hypothesis: two.sided
os testes fornecem apenas a resposta se as variáveis estão ou não correlacionadas. Para saber a internsidade desta relação, utilizam-se medidas de associação.
Considere as seguintes medidas:
Ambos variam de 0 (ausência de associação) a 1 (associação muito forte).
#Comando para tabela cruzada:
tab <- xtabs(~ PROFI + ESTCIVIL, data = dados)
#Calcular as medidas de associação da tabela:
summary(assocstats(tab))
##
## Call: xtabs(formula = ~PROFI + ESTCIVIL, data = dados)
## Number of cases in table: 120
## Number of factors: 2
## Test for independence of all factors:
## Chisq = 2.2905, df = 3, p-value = 0.5143
## Chi-squared approximation may be incorrect
## X^2 df P(> X^2)
## Likelihood Ratio 2.6823 3 0.44324
## Pearson 2.2905 3 0.51435
##
## Phi-Coefficient : NA
## Contingency Coeff.: 0.137
## Cramer's V : 0.138
#phi (r aplicado na Tabela de 2x2 --> Phi)
cor(dados$PROFI,dados$ESTCIVIL)
## [1] -0.06972599
Medida de concordância
Obs: Também pode ser utilizado o coeficiente de Kappa ponderado (pesquisar)
#Kappa
medico1<-sample(0:1,10, replace=T)
medico2<-sample(0:1,10, replace=T)
#Kappa.test(x, y=NULL, conf.level=0.95)
fmsb::Kappa.test(medico1,medico2)
## $Result
##
## Estimate Cohen's kappa statistics and test the null hypothesis
## that the extent of agreement is same as random (kappa=0)
##
## data: medico1 and medico2
## Z = -0.25482, p-value = 0.6006
## 95 percent confidence interval:
## -0.6136363 0.4707791
## sample estimates:
## [1] -0.07142857
##
##
## $Judgement
## [1] "No agreement"
Vamos avaliar a profissão e o estado civil primeiramente, precisamos da tabela de contingência:
tab=ftable(as.factor(dados$PROFI),
as.factor(dados$RENDA),
dnn=c("Profissão", "Renda"))
tab
## Renda 1 2 3 4
## Profissão
## 1 4 52 9 4
## 2 0 30 17 4
\[ H_0: \text{São independentes (Não associadas)} \\ H_1: \text{Não são independentes (São associadas) } \]
Executando o teste:
chisq.test(dados$PROFI, dados$RENDA)
##
## Pearson's Chi-squared test
##
## data: dados$PROFI and dados$RENDA
## X-squared = 9.8864, df = 3, p-value = 0.01956
OBS: Correção de YAKES quando existe alguma frequência esperada menor do que 5, veja:
O teste qui-quadrado quando aplicado a amostras pequenas, como por exemplo com tamanho inferior a 20, veja:
fisher.test(dados2$PROFI, dados2$RENDA)
##
## Fisher's Exact Test for Count Data
##
## data: dados2$PROFI and dados2$RENDA
## p-value = 1
## alternative hypothesis: two.sided
os testes fornecem apenas a resposta se as variáveis estão ou não correlacionadas. Para saber a internsidade desta relação, utilizam-se medidas de associação.
Considere as seguintes medidas:
Ambos variam de 0 (ausência de associação) a 1 (associação muito forte).
#Comando para tabela cruzada:
tab <- xtabs(~ PROFI + RENDA, data = dados)
#Calcular as medidas de associação da tabela:
summary(assocstats(tab))
##
## Call: xtabs(formula = ~PROFI + RENDA, data = dados)
## Number of cases in table: 120
## Number of factors: 2
## Test for independence of all factors:
## Chisq = 9.886, df = 3, p-value = 0.01956
## Chi-squared approximation may be incorrect
## X^2 df P(> X^2)
## Likelihood Ratio 11.3123 3 0.010152
## Pearson 9.8864 3 0.019557
##
## Phi-Coefficient : NA
## Contingency Coeff.: 0.276
## Cramer's V : 0.287
#phi (r aplicado na Tabela de 2x2 --> Phi)
cor(dados$PROFI,dados$RENDA)
## [1] 0.231198
Testa a concordância entre duas pessoas (a hipótese nula é de que a concordância é zero)
#Kappa
medico1<-sample(0:1,10, replace=T)
medico2<-sample(0:1,10, replace=T)
#Kappa.test(x, y=NULL, conf.level=0.95)
fmsb::Kappa.test(medico1,medico2)
## $Result
##
## Estimate Cohen's kappa statistics and test the null hypothesis
## that the extent of agreement is same as random (kappa=0)
##
## data: medico1 and medico2
## Z = 0, p-value = 0.5
## 95 percent confidence interval:
## -0.619795 0.619795
## sample estimates:
## [1] 0
##
##
## $Judgement
## [1] "Slight agreement"
Uma variável dicotômica é uma variável qualitativa que só possue duas categorias.
Portanto a mesma abordagem utilizada em:
Dicotômica x Ordinal = Nominal x Ordinal = Nominal x Nominal
Pode-se ajustar um modelo de regressão linear simples e avaliar seu coeficiente de determinação, veja:
#R2:
summary(lm(dados$GASAUDE~dados$ESTCIVIL))$r.squared
## [1] 0.0001015817
O pearson aplicada em uma relação de variavel dicotômica com uma variavel ordinal
Quando por exemplo, trabalha-se com “renda por grupo”, existem muitas abordagens como o teste t ou anova como opções de testes paramétricos e muito mais
Pode ser que queremos estudar a correlação entre x e y, porém existem uma variável z que tbm está correlacionada com alguma das duas variáveis, veja:
## [1] 0.7821115
## [1] 0.7476177
## [1] 0.7821115
## [1] 0.77825
Isto implica que a variável educação é uma variável de confusão, veja as correlações:
O que acontece com a associação entre lazer e saúde quando controlamos a variável de confusão educação?
#pcor(c("var1", "var2", "control1", "control2" etc.), var(dataframe))
# correlação LAZER vc SAÚDE controlando o EDUCAÇÃO (correlação parcial de primeira ordem = um variável para controlar)
rp<-ggm::pcor(c("GASLAZER", "GASAUDE", "GASTEDU"),var(dados)) #controlando A EDUCAÇÃO
#Significância da Correlação Parcial
#Coeficiente de Determinação com base no Coef. de Pearson
r<-cor(dados$GASLAZER,dados$GASAUDE) #sem controlar o lazer
#Coeficiente de Determinação com base na correlação parcial
pcor.test(rp,1,length(dados$GASAUDE)) #"1" porque só usamos uma variável de controle
## $tval
## [1] 5.922106
##
## $df
## [1] 117
##
## $pvalue
## [1] 3.259388e-08
data.frame("Sem correção"=r^2, "Com correção"=rp^2)
## Sem.correção Com.correção
## 1 0.6116985 0.2306242
A variável de controle (ou qualquer uma delas) pode ser dicotomica (categorica)
#Visualmente:
ggplot(data = dados, aes(x = GASLAZER, y = GASAUDE,colour = as.factor(PROFI))) + geom_point()
#Sem controlar:
r=cor(dados$GASLAZER, dados$GASAUDE)
rp<-pcor(c("GASLAZER", "GASAUDE", "PROFI"),var(dados))
data.frame("Sem correção"=r^2, "Com correção"=rp^2)
## Sem.correção Com.correção
## 1 0.6116985 0.6162497