我有一个名义变量(不同的会话主题,编码为topic0 = 0等)和一些比例变量(DV),例如会话的长度。
如何得出标称变量和比例变量之间的相关性?
我有一个名义变量(不同的会话主题,编码为topic0 = 0等)和一些比例变量(DV),例如会话的长度。
如何得出标称变量和比例变量之间的相关性?
Answers:
这个问题的标题表明存在根本的误解。相关性的最基本概念是“随着一个变量的增加,另一个变量是否增加(正相关),减少(负相关)或保持不变(无相关)”,其标度应使完全正相关为+1,无相关为0,完全负相关为-1。“完美”的含义取决于使用哪种相关度量:对于Pearson相关,这意味着散点图上的点正好位于一条直线上(+1向上倾斜,-1向下倾斜),对于Spearman相关而言,排名完全同意(或完全不同意,因此第一个与最后一个配对,为-1),以及肯德尔的tau所有的观测值对都具有一致的等级(或-1不一致)。可以从以下散点图的Pearson相关性中获得有关其实际工作原理的直觉(图片来源):
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")
这使:
> 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
通过使用“闲话”作为“主题”的参考级别,并为“运动”和“天气” 定义二进制虚拟变量,我们可以执行多元回归。
> 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
> rsq <- summary(model.lm)$r.squared
> rsq
[1] 0.6808511
> sqrt(rsq)
[1] 0.825137
请注意,0.825 并不是持续时间与主题之间的相关性-我们不能将这两个变量相关联,因为主题是名义上的。它实际代表的是观察到的持续时间与我们的模型预测(拟合)的持续时间之间的相关性。这两个变量都是数值变量,因此我们可以将它们关联起来。实际上,拟合值只是每组的平均持续时间:
> 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
仅检查一下,观察值与拟合值之间的皮尔森相关性是:
> cor(data.df$duration, model.lm$fitted)
[1] 0.825137
我们可以在散点图上将其可视化:
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")
这种关系的强度在视觉上与Anscombe的Quartet图非常相似,这并不奇怪,因为它们都具有约0.82的Pearson相关性。
您可能会惊讶于使用分类自变量,我选择进行(多次)回归而不是单向方差分析。但实际上,这实际上是一种等效的方法。
library(heplots) # for eta
model.aov <- aov(duration ~ topic, data = data.df)
summary(model.aov)
这给出了具有相同F统计量和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
再次,ANOVA模型符合组均值,就像回归一样:
> 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
> etasq(model.aov, partial = FALSE)
eta^2
topic 0.6808511
Residuals NA
eta平方。由于此方差分析是单向的(只有一个分类预测变量),因此部分eta平方与eta平方相同,但是在具有更多预测变量的模型中情况会发生变化。
> etasq(model.aov, partial = TRUE)
Partial eta^2
topic 0.6808511
Residuals NA
但是,很有可能“相关性”或“解释的方差比例”都不是您要使用的效应大小的度量。例如,您的重点可能更多地放在群体之间的均值差异上。该问题和答案包含有关eta平方,部分eta平方和各种替代方法的更多信息。