裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

二軸グラフはいつでもダメなのか?

2014年08月15日 | 統計学

以下のグラフの上は,時系列データの2変数を表示したものである。縦軸は両者同じにしている。ずいぶん見にくいし,2変数の関係はよく分からないだろう。

真ん中のグラフは,2番目のデータを調整して表示したものである。実は,上の図と2番目の図の2番目のデータ「何々」は実際のデータを0.8倍したものである。両者がよく一致している(同じ動きをしている)ことが分かるだろう。

実は,2つのデータは2014/08/15~2014/07/18の日経平均株価の始値と終値で,「何々」というのは0.8×終値である。終値が0.8掛けされているのだから,素直に描くと上のような図になる。実体は1/0.8倍して描いた真ん中の図になるのだから,どちらが実体を表しているか分かるだろう。

なお,散布図は通常は原点を描かずに描かれる。ただし,単なる散布図だと,時間の順序が不明になるので,線で結んだり,データ識別子を付けたりして下の図のように描けば,時間変動と二変数の関係を同時に表示することもできる。

結論としては,「折れ線グラフに原点は不要」とか「二軸グラフは不適切」ということではなく,「図表示の目的に合わせて,適切な図を描く」と言うことに尽きるのではないか??

目的によっては(場合によっては)「折れ線グラフにも原点は必要」だし「2軸の目盛りを適切に設定して図を描くことも必要」なのではないか??

上のグラフを描いたプログラム

d = structure(list(始値 = c(15317.15, 15284.38, 15111.76, 15164.73,
15022.64, 15063.73, 15138.72, 15260, 15506.87, 15474.65, 15511.54,
15732.78, 15616.89, 15564.79, 15426.98, 15342.46, 15350.28, 15367.16,
15296.42, 15174.08), 終値 = c(15318.34, 15314.57, 15213.63,
15161.31, 15130.52, 14778.37, 15232.37, 15159.79, 15320.31, 15474.5,
15523.11, 15620.77, 15646.23, 15618.07, 15529.4, 15457.87, 15284.42,
15328.56, 15343.28, 15215.71)), .Names = c("終値", "何々"
), class = "data.frame", row.names = c("1", "2", "3", "4", "5",
"6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16",
"17", "18", "19", "20"))

d$何々 = 0.8*d$終値

layout(matrix(1:3, 3))
old = par(mgp=c(1.8, 0.8, 0), mar=c(3, 3, 1, 4))
plot(d$始値, ylim=c(11000, 15700), type="o", ylab="円")
points(d$何々, pch=19, type="o")
legend("right", legend=c("始値", "何々"), pch=c(1, 19))

plot(d$始値, ylim=c(14500, 15700), type="o", ylab="円")
par(new=TRUE)
plot(d$何々, pch=19, type="o", ylab="", yaxt="n")
axis(4)
legend("bottomright", legend=c("始値", "何々"), pch=c(1, 19))

plot(何々~始値, d, xlab="円1", ylab="円2")
lines(何々~始値, d)
text(d$始値, d$何々, 1:20, pos=4, xpd=TRUE)
par(old)
layout(1)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「折れ線グラフに原点不要」って,いつから一般常識になったの?

2014年08月15日 | 統計学

以下の図は,1983年から1989年までの日経平均株価のグラフである。

「折れ線グラフは,変化を表すものだから,縦軸の原点は不要」というのは,いささか乱暴(目的によるのだろうが)ではないか。ちなみに,日経平均株価は間隔尺度では無く比尺度(ただし,0ということはあり得るので,純粋の比尺度では無いだろうが,株価0というのはあり得ない(あったらこわい)値なので)。

縦軸の目盛りがちゃんと描かれていれば,初期から終期までどれくらいの変化があったのかは,暗算すれば分かる(まあ,4倍くらいになったと言うことだが)。

だからといって,以下に示す2つのグラフが同じといえる訳ではないのは明らか。下の図は,「暗算しなくても目分量で4倍くらいかな」とわかる。逆に言えば,上の図は,うっかり見ていると(そんな奴はいないだろ!という突っ込みはなしで)とても4倍の上昇とは見えないかも知れない(4倍以上の上昇と見せるための悪意があるだろう)ということ。

原点がもっと下にあるようなデータなら,両者の違いが甚だしくなるのは,火を見るより明らか。

原点よりはるか上で,ほんの少しの振れ幅の傾向を見たいということ自体,意味がないことのように思える(±数パーセントの変化が±数兆円の変化になるのなら別だが)。

本質は,「変化を見る」ということは,「時間との相関を見る」ということ,単純な関数関係になることは少ないだろうが,もっとも単純な場合は,「時間に比例するか」ということ。そういうことならば,どこにあろうが,相関係数は同じなので何の問題もない。

しかし,多くの場合は相関関係(相関係数)ではなく線形関係(切片と傾きを伴う予測式)ではないか?この場合には,切片をどうするかは本質的なもの。つまり,上の図のように切片を(ほぼ)0としてしまうか,下の図のように0ではないとするか。

データが直線関係にない場合には更に複雑になるだろう。

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村