Eu tenho uma variável nominal (tópicos diferentes de conversa, codificados como topic0 = 0, etc.) e várias variáveis de escala (DV), como a duração de uma conversa.
Como posso derivar correlações entre as variáveis nominais e de escala?
Eu tenho uma variável nominal (tópicos diferentes de conversa, codificados como topic0 = 0, etc.) e várias variáveis de escala (DV), como a duração de uma conversa.
Como posso derivar correlações entre as variáveis nominais e de escala?
Respostas:
O título desta pergunta sugere um mal-entendido fundamental. A idéia mais básica de correlação é "à medida que uma variável aumenta, a outra variável aumenta (correlação positiva), diminui (correlação negativa) ou permanece a mesma (sem correlação)" com uma escala em que a correlação positiva perfeita seja +1, nenhuma correlação é 0 e a correlação negativa perfeita é -1. O significado de "perfeito" depende de qual medida de correlação é usada: para correlação de Pearson , os pontos em um gráfico de dispersão estão diretamente em uma linha reta (inclinada para cima para +1 e para baixo para -1), para a correlação de Spearman que o As fileiras concordam exatamente (ou discordam exatamente, então o primeiro é emparelhado com o último, para -1) e para o tau de Kendallque todos os pares de observações têm classificações concordantes (ou discordantes para -1). Uma intuição de como isso funciona na prática pode ser obtida das correlações de Pearson para os seguintes gráficos de dispersão ( crédito de imagem ):
Uma visão mais aprofundada vem da consideração do Quarteto de Anscombe, onde todos os quatro conjuntos de dados têm correlação de Pearson +0,816, embora sigam o padrão "à medida que aumenta, tende a aumentar" de maneiras muito diferentes ( crédito de imagem ):
Se sua variável independente é nominal, não faz sentido falar sobre o que acontece "à medida que aumenta". No seu caso, "Tópico da conversa" não tem um valor numérico que pode subir e descer. Portanto, você não pode correlacionar "Tópico da conversa" com "Duração da conversa". Mas como o @ttnphns escreveu nos comentários, existem medidas de força de associação que você pode usar que são algo análogas. Aqui estão alguns dados falsos e o código R que acompanha:
data.df <- data.frame(
topic = c(rep(c("Gossip", "Sports", "Weather"), each = 4)),
duration = c(6:9, 2:5, 4:7)
)
print(data.df)
boxplot(duration ~ topic, data = data.df, ylab = "Duration of conversation")
Que dá:
> print(data.df)
topic duration
1 Gossip 6
2 Gossip 7
3 Gossip 8
4 Gossip 9
5 Sports 2
6 Sports 3
7 Sports 4
8 Sports 5
9 Weather 4
10 Weather 5
11 Weather 6
12 Weather 7
Usando "Fofoca" como o nível de referência para "Tópico" e definindo variáveis fictícias binárias para "Esportes" e "Clima", podemos realizar uma regressão múltipla.
> model.lm <- lm(duration ~ topic, data = data.df)
> summary(model.lm)
Call:
lm(formula = duration ~ topic, data = data.df)
Residuals:
Min 1Q Median 3Q Max
-1.50 -0.75 0.00 0.75 1.50
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.5000 0.6455 11.619 1.01e-06 ***
topicSports -4.0000 0.9129 -4.382 0.00177 **
topicWeather -2.0000 0.9129 -2.191 0.05617 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.291 on 9 degrees of freedom
Multiple R-squared: 0.6809, Adjusted R-squared: 0.6099
F-statistic: 9.6 on 2 and 9 DF, p-value: 0.005861
Podemos interpretar a interceptação estimada como dando a duração média das conversas de fofoca como 7,5 minutos, e os coeficientes estimados para as variáveis fictícias como mostrando que as conversas esportivas eram em média 4 minutos mais curtas que as de fofocas, enquanto as conversas sobre o clima eram 2 minutos mais curtas que as fofocas. Parte da saída é o coeficiente de determinação . Uma interpretação disso é que nosso modelo explica 68% da variação na duração da conversa. Outra interpretação de é que, ao quadrado-enraizamento, podemos encontrar o múltiplo de correlação coefficent .
> rsq <- summary(model.lm)$r.squared
> rsq
[1] 0.6808511
> sqrt(rsq)
[1] 0.825137
Observe que 0,825 não é a correlação entre Duração e Tópico - não podemos correlacionar essas duas variáveis porque Tópico é nominal. O que realmente representa é a correlação entre as durações observadas e as previstas (ajustadas) pelo nosso modelo. Como essas variáveis são numéricas, podemos correlacioná-las. De fato, os valores ajustados são apenas as durações médias para cada grupo:
> print(model.lm$fitted)
1 2 3 4 5 6 7 8 9 10 11 12
7.5 7.5 7.5 7.5 3.5 3.5 3.5 3.5 5.5 5.5 5.5 5.5
Apenas para verificar, a correlação de Pearson entre os valores observados e ajustados é:
> cor(data.df$duration, model.lm$fitted)
[1] 0.825137
Podemos visualizar isso em um gráfico de dispersão:
plot(x = model.lm$fitted, y = data.df$duration,
xlab = "Fitted duration", ylab = "Observed duration")
abline(lm(data.df$duration ~ model.lm$fitted), col="red")
A força desse relacionamento é visualmente muito semelhante à das parcelas do Quarteto de Anscombe, o que não surpreende, pois todos tinham correlações de Pearson de 0,82.
Você pode se surpreender que, com uma variável independente categórica, eu escolhi fazer uma regressão (múltipla) em vez de uma ANOVA unidirecional . Mas, na verdade, isso acaba sendo uma abordagem equivalente.
library(heplots) # for eta
model.aov <- aov(duration ~ topic, data = data.df)
summary(model.aov)
Isso fornece um resumo com estatística F idêntica e valor p :
Df Sum Sq Mean Sq F value Pr(>F)
topic 2 32 16.000 9.6 0.00586 **
Residuals 9 15 1.667
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Novamente, o modelo ANOVA se ajusta às médias do grupo, assim como a regressão:
> print(model.aov$fitted)
1 2 3 4 5 6 7 8 9 10 11 12
7.5 7.5 7.5 7.5 3.5 3.5 3.5 3.5 5.5 5.5 5.5 5.5
Isso significa que a correlação entre os valores ajustados e observados da variável dependente é a mesma do modelo de regressão múltipla. A medida "proporção de variância explicada" para regressão múltipla tem um equivalente ANOVA, (eta ao quadrado). Podemos ver que eles combinam.
> etasq(model.aov, partial = FALSE)
eta^2
topic 0.6808511
Residuals NA
Nesse sentido, o análogo mais próximo de uma "correlação" entre uma variável explicativa nominal e a resposta contínua seria , a raiz quadrada de , que é equivalente ao coeficiente de correlação múltipla para regressão. Isso explica o comentário de que "a medida mais natural de associação / correlação entre variáveis nominais (tomadas como IV) e uma escala (consideradas como DV) é eta". Se você estiver mais interessado na proporção de variância explicada, poderá usar eta ao quadrado (ou seu equivalente de regressão ). Para ANOVA, tem-se frequentemente a parcialeta ao quadrado. Como essa ANOVA era unidirecional (havia apenas um preditor categórico), o eta ao quadrado parcial é o mesmo que ao quadrado, mas as coisas mudam nos modelos com mais preditores.
> etasq(model.aov, partial = TRUE)
Partial eta^2
topic 0.6808511
Residuals NA
No entanto, é bem possível que nem a "correlação" nem a "proporção de variação explicada" sejam a medida do tamanho do efeito que você deseja usar. Por exemplo, seu foco pode estar mais em como os meios diferem entre os grupos. Esta pergunta e resposta contêm mais informações sobre eta ao quadrado, eta ao quadrado parcial e várias alternativas.