나는 명목상의 변수 (대화의 다른 주제, topic0 = 0 등으로 코딩 됨)와 대화의 길이와 같은 많은 규모 변수 (DV)를 가지고 있습니다.
공칭 변수와 척도 변수 사이의 상관 관계를 어떻게 도출 할 수 있습니까?
나는 명목상의 변수 (대화의 다른 주제, topic0 = 0 등으로 코딩 됨)와 대화의 길이와 같은 많은 규모 변수 (DV)를 가지고 있습니다.
공칭 변수와 척도 변수 사이의 상관 관계를 어떻게 도출 할 수 있습니까?
답변:
이 질문의 제목은 근본적인 오해를 암시합니다. 상관 관계에 대한 가장 기본적인 아이디어는 "양수의 상관 관계가 증가하거나 다른 변수가 증가 (양의 상관 관계)하거나 감소 (음의 상관 관계)하거나 동일한 상관 관계가 없음"이라는 척도를 사용하여 완벽한 양의 상관 관계가 +1이되도록하는 것입니다. 상관은 0이 아니며 완전한 음의 상관은 -1입니다. "완벽한"의 의미는 사용되는 상관 측정에 따라 다릅니다. Pearson 상관의 경우 산점도의 점이 직선 (+1의 경우 위쪽으로 기울어지고 -1의 경우 아래쪽으로 기울어 짐 ), Spearman 상관 관계의 경우 정확히 동의 (또는 정확히 동의하지 않으므로 먼저 -1에 대해 last와 짝을 이루어야 함) 및 Kendall의 tau모든 관측 쌍은 일치하는 순위 (또는 -1과 일치하지 않음)를 갖습니다. 이것이 실제로 어떻게 작동하는지에 대한 직관은 다음 산점도에 대한 피어슨 상관 관계로부터 얻을 수 있습니다 ( image credit ).
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 는 Duration과 Topic의 상관 관계 가 아닙니다 . Topic은 명목상이므로 두 변수를 상관시킬 수 없습니다. 실제로 나타내는 것은 관측 된 지속 시간과 모델에 의해 예측 된 (적합한) 지속 시간 간의 상관 관계 입니다. 이 두 변수는 모두 숫자이므로 서로 연관시킬 수 있습니다. 실제로 적합치 값은 각 그룹의 평균 지속 시간입니다.
> 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이므로 놀랍지 않습니다.
범주 형 독립 변수를 사용 하면 일원 분산 분석 대신 (다중) 회귀 분석을 선택했다는 사실에 놀랄 것입니다 . 그러나 실제로 이것은 동등한 접근법으로 판명되었습니다.
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
에타 제곱. 이 분산 분석은 단방향 (단일 범주 형 예측 변수 만 있음)이므로 부분 에타 제곱은 에타 제곱과 동일하지만 예측 변수가 더 많은 모델에서는 상황이 변합니다.
> etasq(model.aov, partial = TRUE)
Partial eta^2
topic 0.6808511
Residuals NA
그러나 "상관 관계"나 "분산 비율"이 사용하고자하는 효과 크기의 척도가 아닐 수도 있습니다. 예를 들어, 그룹간에 수단이 어떻게 다른지에 더 집중할 수 있습니다. 이 질문과 답변 에는 에타 제곱, 부분 에타 제곱 및 다양한 대안에 대한 자세한 정보가 포함되어 있습니다.