名目上の変数(topic0 = 0などとしてコーディングされた会話のさまざまなトピック)と、会話の長さなどのスケール変数(DV)がいくつかあります。
ノミナル変数とスケール変数の相関関係を導き出すにはどうすればよいですか?
名目上の変数(topic0 = 0などとしてコーディングされた会話のさまざまなトピック)と、会話の長さなどのスケール変数(DV)がいくつかあります。
ノミナル変数とスケール変数の相関関係を導き出すにはどうすればよいですか?
回答:
この質問のタイトルは、根本的な誤解を示唆しています。相関の最も基本的な考え方は、「1つの変数が増加するにつれて、他の変数が増加する(正の相関)、減少する(負の相関)、または同じままである(相関なし)」という完全な正の相関が+1相関は0でなく、完全な負の相関は-1です。「完璧な」の意味は、どの相関の尺度が使用されているによって異なりますため、ピアソン相関のために、それは右(+1ためと下向きに-1上向きに傾斜した)直線上に散布図の嘘上の点を意味スピアマン相関その正確に同意する(または正確に一致しないので、最初はのために-1、最後にペアリングされている)、およびのためのランクケンドールのタウ観測値のすべてのペアに一致するランク(または-1の不一致)があること。これが実際にどのように機能するかについての直観は、次の散布図のピアソン相関から収集できます(画像クレジット)。
さらに洞察は、4つのデータセットすべてがピアソン相関+0.816であるAnscombeのカルテットを検討することから得られますが、「が増加するにつれて、は増加する傾向があります」というパターンに従います(イメージクレジット)。
独立変数がノミナルである場合、「が増加するにつれて」何が起こるかについて話すことは意味がありません。あなたの場合、「会話のトピック」には上下に移動できる数値はありません。したがって、「会話のトピック」と「会話の継続時間」を関連付けることはできません。しかし、@ ttnphnsがコメントで書いたように、使用できる関連性の強さの尺度があり、それは多少類似しています。いくつかの偽データと付随するRコードは次のとおりです。
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
推定インターセプトは、ゴシップ会話の平均継続時間を7.5分と解釈し、スポーツ会話を示すダミー変数の推定係数は、ゴシップ会話よりも平均4分短く、天気会話はゴシップより2分短いと解釈できます。出力の一部は、決定係数 です。これの1つの解釈は、モデルが会話の継続時間の分散の68%を説明しているということです。別の解釈は、平方根化により、多重相関係数見つけることができるということです。
> rsq <- summary(model.lm)$r.squared
> rsq
[1] 0.6808511
> sqrt(rsq)
[1] 0.825137
0.825 は DurationとTopicの間の相関ではないことに注意してください-Topic は名義なので、これら2つの変数を相関させることはできません。実際に表示されるのは、観測された期間と、モデルによって予測された(適合した)期間との相関関係です。これらの変数は両方とも数値であるため、それらを相関させることができます。実際、近似値は各グループの平均期間です。
> 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のカルテットプロットの強さと視覚的に非常によく似ています。これらはすべて、約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
これは、従属変数の適合値と観測値の間の相関が、重回帰モデルの場合と同じであることを意味します。重回帰の「分散の割合の説明」測度には、ANOVAに相当する(ηの2乗)があります。それらが一致することがわかります。
> etasq(model.aov, partial = FALSE)
eta^2
topic 0.6808511
Residuals NA
この意味で、公称説明変数と連続応答との間の「相関」に最も近い類似体であろう、の平方根重相関係数と同等であり、回帰のために。これは、「名目(IVとして取得)変数とスケール(DVとして取得)変数との間の関連性/相関の最も自然な尺度はetaです」というコメントを説明しています。説明された分散の割合に興味がある場合は、ηの2乗(またはその回帰等価)に固執することができます。ANOVAの場合、部分的なイータの二乗。このANOVAは一方向であったため(カテゴリカル予測子は1つしかなかったため)、部分イータ2乗はイータ2乗と同じですが、予測子が多いモデルでは状況が変わります。
> etasq(model.aov, partial = TRUE)
Partial eta^2
topic 0.6808511
Residuals NA
ただし、「相関」も「説明された分散の割合」も、使用したいエフェクトサイズの尺度ではない可能性があります。たとえば、グループ間で平均がどのように異なるかに焦点を当てる場合があります。この質問と回答には、ηの2乗、部分的なetaの2乗、およびさまざまな代替手段に関する詳細情報が含まれています。