ここには多くの問題があります(そして、ggplot2
ストライキを使用するかどうかにかかわらず、それらと完全に直行します)。最初に、相関関係は必ずしも直感的で「線形」な方法で拡大縮小されるわけではないことを認識してください(主に、可能な範囲が制限されているため)。値をどのように表現するかについて考えることは価値があります。たとえば、次のように使用できます。
- 元の相関( -scores)r
- 決定係数()r2
- zフィッシャーの ' to '変換のrz結果に基づくスコア:
zr= .5 ln(1 + r1 − r)
私はあなたの状況について本当に何も知らないので、言うのは難しいですが、私のデフォルトは変換されたスコア()を使用することです。 zr
次に、含めたいデータについて(全体的に、または多かれ少なかれ目立つように)決定する必要があります。たとえば、値の絶対マグニチュードを含めますか、それともその変化のみを含めますか(レベルと経済学の変化を比較)。変化の大きさ(つまり、絶対値)、増加または減少(絶対的な意味での、または相関がない、または離れているという兆候)、またはその両方に主に関心がありますか?
相関行列(つまり、一連の相関)を視覚化したい場合、それらは独立していないことを覚えておいてください。1つの変数のみの変更は、他の変数が経時的に一定であっても、複数の相関に影響を与えることを考慮してください。繰り返しになりますが、それがあなたにとって重要かどうかによって異なります。
言い換えれば、あなたが本当に気にかけていることを正確に理解することが不可欠です。これらのすべてのファセットをキャプチャする視覚化はありません。
あなたのコメントから、私はあなたが前と後の2つの相関行列を持っていることを集めます。それは物事を簡素化します。繰り返しますが、状況、データ、または目標に関する情報がなければ、おそらくX軸に前と後、Y軸にし、2つの点が線で結ばれた同じ相関を表す散布図を作成しますセグメント。Rでコーディングされた次の例を考えてみます。 zr
library(MASS) # we'll use these packages
library(psych)
set.seed(541) # this makes the example exactly reproducible
bef = mvrnorm(100, mu=rep(0, 5), Sigma=rbind(c(1.0, 0.0, 0.0, 0.0, 0.0),
c(0.0, 1.0, 0.4, 0.0, 0.5),
c(0.0, 0.4, 1.0, 0.1, 0.0),
c(0.0, 0.0, 0.1, 1.0, 0.8),
c(0.0, 0.5, 0.0, 0.8, 1.0) ))
aft = mvrnorm(100, mu=rep(0, 5), Sigma=rbind(c(1.0, 0.0, 0.0, 0.0, 0.0),
c(0.0, 1.0, 0.4, 0.0, 0.5),
c(0.0, 0.4, 1.0, 0.1, 0.0),
c(0.0, 0.0, 0.1, 1.0, 0.8),
c(0.0, 0.5, 0.0, 0.8, 1.0) ))
aft[,5] = rnorm(100) # above I generate data 2x from the same population,
b.c = cor(bef) # here I change just 1 variable
a.c = cor(aft) # then I make cor matrices, & extract the rs into a vector
b.v = b.c[upper.tri(b.c)]
a.v = a.c[upper.tri(a.c)]
d = stack(list(bef=b.v, aft=a.v))
d$ind = relevel(d$ind, ref="bef")
windows(width=7, height=4)
layout(matrix(1:2, nrow=1))
plot(as.numeric(d$ind), fisherz(d$values), main="Fisher's z",
axes=F, xlab="time", ylab=expression(z [r]), xlim=c(.5,2.5))
box()
axis(side=1, at=1:2, labels=c("before","after"))
axis(side=2, at=seq(-.2,1.5, by=.2), cex.axis=.8, las=1)
for(i in 1:10){ lines(1:2, matrix(fisherz(d$values), nrow=10, ncol=2)[i,]) }
plot(as.numeric(d$ind), d$values, main="Raw rs",
axes=F, xlab="time", ylab="r", xlim=c(.5,2.5))
box()
axis(side=1, at=1:2, labels=c("before","after"))
axis(side=2, at=seq(-.2,1.0, by=.2), cex.axis=.8, las=1)
for(i in 1:10){ lines(1:2, matrix(d$values, nrow=10, ncol=2)[i,]) }; rm(i)
fdif = abs(fisherz(a.c)-fisherz(b.c))
diag(fdif) = 0
windows()
image(1:5, 1:5, z=fdif,
xlab="", ylab="", col=gray.colors(8)[8:3])
for(i in 1:5){ for(j in 1:5){ text(i,j,round(fdif,2)[i,j]) }}
上の図は、相関のレベルと変化量の両方を示しています。への収束など、さまざまな機能を確認できます。と使用の違いは、 -scoresが事前により均一に分散されることです。たとえば、と間の距離は、と間の距離と同じです。一方、場合、近い相関r = 0zrrr0.4.4.8zr0がまとまっており、強い相関関係は他の要素からはるかに離れています。それらの数字が捉えていないのは、それらの線の非独立性です。以下のヒートマップで(の差の絶対値を使用して)、大きな変更が変数5に関連付けられていることがます。 zr