Correlações com variáveis ​​categóricas não ordenadas

123

Eu tenho um quadro de dados com muitas observações e muitas variáveis. Alguns deles são categóricos (não ordenados) e outros são numéricos.

Estou procurando associações entre essas variáveis. Consegui calcular a correlação para variáveis ​​numéricas (correlação de Spearman), mas:

  • Não sei como medir a correlação entre variáveis ​​categóricas não ordenadas.
  • Não sei como medir a correlação entre variáveis ​​categóricas não ordenadas e variáveis ​​numéricas.

Alguém sabe como isso pode ser feito? Em caso afirmativo, existem funções R implementando esses métodos?

Clément F
fonte

Respostas:

113

Depende de qual senso de correlação você deseja. Quando você executa a correlação do momento do produto do protótipo da Pearson, obtém uma medida da força da associação e um teste da significância dessa associação. Mais tipicamente, porém, o teste de significância e a medida do tamanho do efeito diferem.

Testes de significância:

Tamanho do efeito (força da associação):

ung
fonte
5
Uma explicação muito completa do caso contínuo vs. nominal pode ser encontrada aqui: Correlação entre uma variável nominal (IV) e uma variável contínua (DV) .
gung
3
No caso binário versus intervalo, existe a correlação ponto-biserial .
Glen_b
Qual seria uma alternativa melhor ao teste do qui-quadrado para amostras grandes?
Waldir Leoncio
2
p<.055%
1
Como @gung apontou, a correlação entre uma variável nominal (IV) e uma variável contínua (DV) é um excelente link para como a correlação para variáveis ​​mistas pode ser feita. Hmisc::rcorrfaz isso lindamente e podemos verificá-lo (para um quadro de dados de variáveis ​​mistas) da seguinte maneira:as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$P) as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$r)
KarthikS
15

Já vi a seguinte folha de dicas vinculada antes:

https://stats.idre.ucla.edu/other/mult-pkg/whatstat/

Pode ser útil para você. Ele ainda possui links para bibliotecas R específicas.

DSea
fonte
3
O problema deste cheatsheet é que ele diz respeito apenas a variáveis ​​categóricas / ordinais / de intervalo. O que estou procurando é um método que me permita usar variáveis ​​independentes numéricas e categóricas.
Clément F
6

Se você deseja uma matriz de correlação de variáveis ​​categóricas, pode usar a seguinte função de wrapper (exigindo o pacote 'vcd'):

catcorrm <- function(vars, dat) sapply(vars, function(y) sapply(vars, function(x) assocstats(table(dat[,x], dat[,y]))$cramer))

Onde:

vars é um vetor de cadeia de variáveis ​​categóricas que você deseja correlacionar

dat é um data.frame que contém as variáveis

O resultado é uma matriz de V's de Cramer.

Dan
fonte
6

XKtEuKEu=1,...,pXtEuR2

Essa análise pode ser vista como uma generalização da análise de correspondência múltipla e é conhecida sob muitos nomes, como análise de correlação canônica, análise de homogeneidade e muitos outros. Uma implementação em R está no homalspacote (no CRAN). pesquisar alguns desses nomes no Google dará uma riqueza de informações; há um livro completo: Albert Gifi, "Análise Multivariada Não Linear". Boa sorte!

kjetil b halvorsen
fonte
1
1
Vou editar para levar em conta esse comentário.
Kjetil b halvorsen 09/09/16
2

Eu tive um problema semelhante e tentei o teste do qui-quadrado, conforme sugerido, mas fiquei muito confuso ao avaliar os valores-P contra a hipótese nula.

Vou explicar como interpretei variáveis ​​categóricas. Não tenho certeza de quão relevante é no seu caso. Eu tinha a variável de resposta Y e duas variáveis ​​preditoras X1 e X2, sendo X2 uma variável categórica com dois níveis, digamos 1 e 2. Eu estava tentando ajustar um modelo linear

ols = lm(Y ~ X1 + X2, data=mydata)

Mas eu queria entender como o nível diferente de X2 se encaixa na equação acima. Me deparei com uma função R por ()

by(mydata,X2,function(x) summary(lm(Y~X1,data=x)))

O que esse código faz é, ele está tentando se encaixar no Modelo Linear para cada nível do X2. Isso me deu todo o valor P e R-quadrado, erro padrão residual que eu entendo e posso interpretar.

Novamente, não tenho certeza se é isso que você deseja. Eu meio que comparei valores diferentes de X2 na previsão de Y.

Sohsum
fonte
1

Para medir a força do link entre duas variáveis ​​categóricas, prefiro sugerir o uso de uma tabulação cruzada com a estatística chisquare

Para medir a força do link entre uma variável numérica e uma categoria, você pode usar uma comparação média para ver se ela muda significativamente de uma categoria para outra

Da Silva Lionel
fonte
2
Bem-vindo ao site, @DaSilvaLionel. Você pode notar que o teste do qui-quadrado com duas variáveis ​​categóricas já foi sugerido acima.
gung