時間の経過に伴う相関行列のプロット


7

あなたの経験から、時間的に変化する相関行列を表すための提案はありますか?私が見/quant/1565/how-do-i-graphically-represent-the-evolution-of-a-covariance-matrix-over-timeが、私はいずれかを見つけることができませんでした良い記事。私がこの質問をしているのは、データ分析の分野にかなり慣れていないためggplot2です。また、今まで読んだ唯一の本は、ウィッカムの本です。そこで、専門家に聞いてみようと思いました。

何卒よろしくお願いいたします。


2
グラフィカルなソリューションの選択は、比較の優先順位に大きく依存します。一目ですぐに比較するために最も重要なこと-マトリックス内の要素またはポイントt1の要素とポイントt2の要素自体を比較する。
ttnphns 2016年

回答:


3

ここには多くの問題があります(そして、ggplot2ストライキを使用するかどうかにかかわらず、それらと完全に直行します)。最初に、相関関係は必ずしも直感的で「線形」な方法で拡大縮小されるわけではないことを認識してください(主に、可能な範囲が制限されているため)。値をどのように表現するかについて考えることは価値があります。たとえば、次のように使用できます。

  1. 元の相関( -scores)r
  2. 決定係数()r2
  3. zフィッシャーの ' to '変換のrz結果に基づくスコア:
    zr=.5ln(1+r1r)

私はあなたの状況について本当に何も知らないので、言うのは難しいですが、私のデフォルトは変換されたスコア()を使用することです。 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

ここに画像の説明を入力してください


手伝ってくれてどうもありがとう。2日前のプレゼンテーションでは、以下のIrishstatの回答を使用しました。うまくいきました。ただし、将来的にはフィッシャーの変換を使用します。私はそれが好きです。
ものみの塔

1

私の意見では、視覚的な比較の試みは非常に主観的である可能性があるため、視覚的なものを試みるよりも、パラメータの変化の影響を定量化する方がよい(ローカル相関のプロキシ)。あなたの質問は、「経時変化するモデル」。私が行ったことは、どの時点でパラメーターが最大の相違を持っているかを判別するために、Chowテストをプログラムすることです。これを見つけると、有意性を直接テストすることにつながり、「以前のデータ」を脇に置いておくべきであるという結論が得られる可能性があります。


時間の経過に伴う変化を視覚化するためのグラフィカルな方法について尋ねるように見える質問に対するあなたの答えは何ですか?
whuber

私は、私の意見では統計分析の実用的な定義であるグラフィックの代替案について彼に伝えようとしていたと思います
IrishStat

@IrishStat-視覚的な比較と定量化の両方を慎重に行った結果、定量化の方がはるかに優れていることに気付きました。基本的に、「前」と「後」の2つの行列を作成してから、何が起こっているかを示します。ご協力ありがとうございます。
ものみの塔

あなたが持っているかもしれない問題は、sapecoifyする方法を決定することです[position
IrishStat

1
発生する可能性のある問題は、ブレークポイントの指定方法を決定することです。私が提案したアプローチは、実際に最も重要なブレークポイントを決定することができます。さらに、相関関係は、異常によってひどく弱まり、関係がないと結論づけることができます。ブレークポイントを正しく評価するために、識別可能な異常を収容/修正/調整/浄化する必要があるのはそのためですが、それは私の2セントの意見にすぎません。
IrishStat 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.