Existem dois vetores booleanos, que contêm apenas 0 e 1. Se eu calcular a correlação de Pearson ou Spearman, elas são significativas ou razoáveis?
Existem dois vetores booleanos, que contêm apenas 0 e 1. Se eu calcular a correlação de Pearson ou Spearman, elas são significativas ou razoáveis?
Respostas:
A correlação de Pearson e Spearman é definida desde que você tenha e s para as duas variáveis binárias, digamos e . É fácil obter uma boa idéia qualitativa do que eles significam pensando em um gráfico de dispersão das duas variáveis. Claramente, existem apenas quatro possibilidades (de modo que tremer para separar pontos idênticos para visualização é uma boa idéia). Por exemplo, em qualquer situação em que os dois vetores sejam idênticos, sujeitos a ter 0s e 1s em cada um, então, por definição e a correlação é necessariamente . Da mesma forma, é possível quee então a correlação é .
Para esta configuração, não há espaço para relações monotônicas que não são lineares. Quando tendo fileiras de s e s sob a convenção habitual midrank as fileiras são apenas uma transformação linear das originais s e s e a correlação de Spearman é necessariamente idêntico para a correlação de Pearson. Portanto, não há razão para considerar a correlação de Spearman separadamente aqui, ou mesmo de modo algum.
Correlações surgem naturalmente para alguns problemas que envolvem s e s, por exemplo, no estudo dos processos binários no tempo ou no espaço. No geral, no entanto, haverá melhores maneiras de pensar sobre esses dados, dependendo em grande parte do principal motivo de tal estudo. Por exemplo, o fato de as correlações fazerem muito sentido não significa que a regressão linear é uma boa maneira de modelar uma resposta binária. Se uma das variáveis binárias for uma resposta, a maioria das pessoas estatísticas começará considerando um modelo de logit.
Existem métricas de similaridade especializadas para vetores binários, como:
etc.
Para detalhes, veja aqui .
Eu não recomendaria usar o coeficiente de correlação de Pearson para dados binários, veja o seguinte contra-exemplo:
set.seed(10)
a = rbinom(n=100, size=1, prob=0.9)
b = rbinom(n=100, size=1, prob=0.9)
na maioria dos casos, ambos dão 1
table(a,b)
> table(a,b)
b
a 0 1
0 0 3
1 9 88
mas a correlação não mostra isso
cor(a, b, method="pearson")
> cor(a, b, method="pearson")
[1] -0.05530639
Uma medida de similaridade binária como o índice de Jaccard mostra, no entanto, uma associação muito maior:
install.packages("clusteval")
library('clusteval')
cluster_similarity(a,b, similarity="jaccard", method="independence")
> cluster_similarity(a,b, similarity="jaccard", method="independence")
[1] 0.7854966
Por que é isso? Veja aqui a regressão bivariada simples
plot(jitter(a, factor = .25), jitter(b, factor = .25), xlab="a", ylab="b", pch=15, col="blue", ylim=c(-0.05,1.05), xlim=c(-0.05,1.05))
abline(lm(a~b), lwd=2, col="blue")
text(.5,.9,expression(paste(rho, " = -0.055")))
plot abaixo (pequeno ruído adicionado para tornar o número de pontos mais claro)