Como obter correlação entre duas variáveis ​​categóricas e uma variável categórica e variável contínua?


63

Estou construindo um modelo de regressão e preciso calcular o abaixo para verificar se há correlações

  1. Correlação entre 2 variáveis ​​categóricas multiníveis
  2. Correlação entre uma variável categórica multinível e uma variável contínua
  3. VIF (fator de inflação de variância) para variáveis ​​categóricas multiníveis

Eu acredito que é errado usar o coeficiente de correlação de Pearson para os cenários acima, porque Pearson funciona apenas para 2 variáveis ​​contínuas.

Responda às perguntas abaixo

  1. Qual coeficiente de correlação funciona melhor nos casos acima?
  2. O cálculo do VIF funciona apenas para dados contínuos. Qual é a alternativa?
  3. Quais são as premissas que preciso verificar antes de usar o coeficiente de correlação que você sugere?
  4. Como implementá-los no SAS & R?

4
Eu diria que o CV.SE é um lugar melhor para perguntas sobre estatísticas mais teóricas como essa. Caso contrário, eu diria que a resposta para suas perguntas depende do contexto. Às vezes faz sentido para achatar vários níveis em variáveis binárias, outras vezes vale a pena para modelar seus dados de acordo com a distribuição multinomial, etc.
ffriend

Suas variáveis ​​categóricas estão ordenadas? Se sim, isso pode influenciar o tipo de correlação que você deseja procurar.
Nassimhddd

Eu tenho que enfrentar o mesmo problema em minha pesquisa. mas não consegui encontrar o método correto para resolver esse problema. por isso, se você puder, por favor, me dê as referências que encontrou.
user89797

quer dizer que o valor p é o mesmo que o coeficiente de correlação r?
Ayo Emma

A solução acima com ANOVA para categórica vs. contínua é boa. Soluço pequeno. Quanto menor o valor p, melhor o "ajuste" entre as duas variáveis. Não o contrário.
myudelson

Respostas:


73

Duas variáveis ​​categóricas

Verificar se duas variáveis ​​categóricas são independentes pode ser feito com o teste de independência do qui-quadrado.

Este é um teste típico do qui-quadrado : se assumirmos que duas variáveis ​​são independentes, os valores da tabela de contingência para essas variáveis ​​devem ser distribuídos uniformemente. E então verificamos a que distância os valores reais estão uniformes.

Também existe um V de Crammer que é uma medida de correlação que se segue deste teste

Exemplo

Suponha que temos duas variáveis

  • sexo: masculino e feminino
  • cidade: Blois and Tours

Observamos os seguintes dados:

valores observados

O gênero e a cidade são independentes? Vamos realizar um teste de Chi-Squred. Hipótese nula: eles são independentes; hipótese alternativa é que eles estão correlacionados de alguma maneira.

Sob a hipótese nula, assumimos distribuição uniforme. Portanto, nossos valores esperados são os seguintes

valor esperado

Portanto, executamos o teste do qui-quadrado e o valor p resultante aqui pode ser visto como uma medida de correlação entre essas duas variáveis.

Para calcular o V de Crammer, primeiro encontramos o fator de normalização chi-quadrado-max, que normalmente é o tamanho da amostra, divide o qui-quadrado por ele e cria uma raiz quadrada

grampos v

R

tbl = matrix(data=c(55, 45, 20, 30), nrow=2, ncol=2, byrow=T)
dimnames(tbl) = list(City=c('B', 'T'), Gender=c('M', 'F'))

chi2 = chisq.test(tbl, correct=F)
c(chi2$statistic, chi2$p.value)

Aqui, o valor de p é 0,08 - bastante pequeno, mas ainda não suficiente para rejeitar a hipótese de independência. Então, podemos dizer que a "correlação" aqui é 0,08

Também calculamos V:

sqrt(chi2$statistic / sum(tbl))

E obtenha 0,14 (quanto menor v, menor a correlação)

Considere outro conjunto de dados

    Gender
City  M  F
   B 51 49
   T 24 26

Para isso, daria o seguinte

tbl = matrix(data=c(51, 49, 24, 26), nrow=2, ncol=2, byrow=T)
dimnames(tbl) = list(City=c('B', 'T'), Gender=c('M', 'F'))

chi2 = chisq.test(tbl, correct=F)
c(chi2$statistic, chi2$p.value)

sqrt(chi2$statistic / sum(tbl))

O valor de p é 0,72, que está muito mais próximo de 1, v é 0,03 - muito próximo de 0

Variáveis ​​categóricas vs numéricas

Para esse tipo, normalmente realizamos o teste ANOVA de uma via : calculamos a variação no grupo e a variação intra-grupo e depois as comparamos.

Exemplo

Queremos estudar a relação entre gordura absorvida de rosquinhas e o tipo de gordura usada para produzir rosquinhas (exemplo é retirado daqui )

rosquinhas

Existe alguma dependência entre as variáveis? Para isso, realizamos o teste ANOVA e vemos que o valor-p é apenas 0,007 - não há correlação entre essas variáveis.

R

t1 = c(164, 172, 168, 177, 156, 195)
t2 = c(178, 191, 197, 182, 185, 177)
t3 = c(175, 193, 178, 171, 163, 176)
t4 = c(155, 166, 149, 164, 170, 168)

val = c(t1, t2, t3, t4)
fac = gl(n=4, k=6, labels=c('type1', 'type2', 'type3', 'type4'))

aov1 = aov(val ~ fac)
summary(aov1)

Saída é

            Df Sum Sq Mean Sq F value  Pr(>F)   
fac          3   1636   545.5   5.406 0.00688 **
Residuals   20   2018   100.9                   
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Portanto, podemos tomar o valor-p como medida de correlação aqui também.

Referências


11
Obrigado Alexey pelos detalhes. Com base em mais pesquisas, descobri a correlação polisserial e policlórica. Como sua abordagem é melhor do que essas? Por favor, explique
GeorgeOfTheRF

11
Não estou ciente dessas coisas, desculpe.
Alexey Grigorev

Resposta fantástica por @Alexey. Li as correlações policóricas / polisseries online depois de ler seu comentário. São técnicas para estimar a correlação entre duas variáveis ​​latentes, a partir de duas variáveis ​​observadas. Não acho que foi o que você pediu e não é comparável à resposta de Alexey.
KarthikS 03/10/19

11
Seu primeiro exemplo NÃO é sobre categórico x categórico, mas sim categórico versus numérico; na verdade, você está olhando a cidade em relação ao número de homens (mulheres, respectivamente), que é numérico. Categórico versus categórico seria, digamos, cidade x cor dos olhos ou formas ou qualquer outra coisa, mas de maneira alguma seria o número de representantes do gênero.
Gented # 13/17

11
@AlexeyGrigorev Se nossos dados não forem normalmente distribuídos, devem kruskal-wallicser usados ​​no lugar de one-way anova? Desde já, obrigado.
ebrahimi
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.