統計的観点から、通常はカイ二乗検定で分析されている分割表を表示するのに最適なプロットはどれですか?覆い隠された棒グラフ、積み上げ棒グラフ、ヒートマップ、等高線プロット、ジッター散布図、複数線プロットなどですか?絶対値またはパーセンテージを表示する必要がありますか?
編集:または@forecasterがコメントで示唆しているように、数値の表自体は単純なプロットであり、十分なはずです。
統計的観点から、通常はカイ二乗検定で分析されている分割表を表示するのに最適なプロットはどれですか?覆い隠された棒グラフ、積み上げ棒グラフ、ヒートマップ、等高線プロット、ジッター散布図、複数線プロットなどですか?絶対値またはパーセンテージを表示する必要がありますか?
編集:または@forecasterがコメントで示唆しているように、数値の表自体は単純なプロットであり、十分なはずです。
回答:
ここに万能ソリューションはありません。非常に単純なテーブル(たとえば、)がある場合は、おそらくテーブルを提示するのが最善です。実際の図が必要な場合は、モザイクプロット(@xanが示唆している)を開始するのにおそらく良い場所です。シーブプロット、関連プロット、動的圧力プロットなど、モザイクプロットに類似した他のオプションがいくつかあります(ここでの私の質問を参照してください:分割表のシーブ/モザイクプロットの代替)。Michael Friendlyの本、Visualizing Categorical Dataは、このトピックの優れた(SASベースの)リソースであり、vcdパッケージは、Rでこれらのアイデアを実装するための優れたリソースです。
ただし、テーブルの行と列の数が多くなると、これらを使用するのが難しくなります。別の種類の視覚化オプションは、コレスポンデンス分析の実行/プロットです。コレスポンデンス分析は、分割表の行と列の両方で主成分分析を実行することに似ています。次に、両方がバイプロットで一緒にプロットされます。@xanの回答からのデータを使用したRベースの例を次に示します。
library(ca)
tab = as.table(rbind(c(28, 4, 0, 56),
c(38, 5, 9, 10),
c( 6, 6, 14, 13) ))
names(dimnames(tab)) = c("activity", "period")
rownames(tab) = c("feed", "social", "travel")
colnames(tab) = c("morning", "noon", "afternoon", "evening")
tab
# period
# activity morning noon afternoon evening
# feed 28 4 0 56
# social 38 5 9 10
# travel 6 6 14 13
plot(ca(tab))
このプロットを解釈するには、同じタイプの2つのポイントが近いほど、それらの2つの行/列プロファイルはより類似しています。また、異なるタイプの2つのポイントが近いほど、それらの交点を表すセル内の確率質量が大きくなります。
factor(vs)
)に2つのレベルしかないためです。少なくとも3つ必要です。試してくださいttt = with(mtcars, table(factor(gear), factor(cyl))); plot(ca(ttt))
。
ca
オブジェクトからそれを取得する方法がわからないので、最初からコーディングしました。間違えない限り、行と列を並べ替えc(1,3,2)
ますc(4,1,3,2)
。それを行った後、私はここで何を見るべきかわかりません。何を考えていますか?
異なる機能は、異なる機能を強調表示するのに優れていますが、モザイクプロットは一般的なビュー(何かが目立つかどうかを確認する)に適しています。たぶんそれは回避された棒グラフの意味です。ほとんどのオプションと同様に、一方の次元で他方よりも相対周波数をより適切に表すという点で、対称ではありません。優れた機能は、周辺周波数も表されることです。
データセット、読者、目的に関係なく、「最良の」プロットが存在しないことに同意します。測定された2つの変数について、散布図は、特定の目的を除いて、おそらく他のすべてを後回しにする設計ですが、カテゴリデータではそのようなマーケットリーダーは明らかではありません。
ここでの私の目的は、しばしば再発見または再発明された単純な方法に言及することですが、それにもかかわらず、統計グラフを扱うモノグラフや教科書でも見落とされがちです。
最初に、xanが投稿したものと同じデータをカバーする例:
多くの場合、名前が必要な場合、これは双方向の棒グラフです(この場合)。ここでは、複数の棒グラフが同様のフレーバーを持つ一般的な選択肢の1つであることを除いて、他の用語をカタログ化しません。(「複数の棒グラフ」に対する私の小さな反対は、「複数の」は非常に一般的な積み上げまたは横並びの棒グラフを除外しないのに対し、「双方向」は行と列のレイアウトをより明確に暗示していますが、それを明確にするために例を挙げるかもしれません。)
この種のプロットのプラスとマイナスも簡単ですが、いくつか説明します。私はこのデザインが好きなので(少なくとも1930年代に遡ります)、もっと鋭い批判を加えたいと思う人もいるかもしれません。
+1。このアイデアは、技術系でないグループでも簡単に理解できます。この例では、バーの高さまたはバーの長さが周波数をエンコードします。他の例では、任意の方法で計算されたパーセント、残差などをエンコードできます。
+2。行と列の構造は、表の構造と一致します。数値も追加できます。非常に少量であり、暗黙のゼロでさえ明らかであり、これは他のデザイン(積み上げ棒グラフ、モザイクプロットなど)の場合に常にそうとは限りません。通常、行と列のラベル付けは、キーまたは凡例を追加するよりも効率的で、必要なメンタルな「前後」を実現します。このように、この設計はグラフと表のアイデアを組み合わせたものであり、一部の読者を悩ませているようです。逆に、図と表の間の強い区別は単なる歴史的な二日酔いであり、研究者が独自のドキュメントを作成でき、デザイナー、コンポジター、プリンターに依存する必要がないため、時代遅れになっていると主張します。
+3。3ウェイ以上の設計への拡張は、原則として簡単です。片方または両方の軸に2つ以上の変数を複合変数として配置するか、そのようなプロットの配列を指定します。当然、設計が複雑になるほど、解釈も複雑になります。
+4。この設計では、どちらの軸でも順序変数を明確に許可しています。順序は、適切なシェーディングとその軸のカテゴリの順序で表現できます(例)。軸のカテゴリ順序は、その意味によって決定されるか、頻度によって適切に決定されます。テキストラベルに基づくアルファベット順がデフォルトの場合がありますが、考慮される唯一の選択肢であってはなりません。
-1。設計を一般的にすることで、プロットは特定の種類の関係を表示する際の効率が低下します。特に、モザイクプロットは、独立性からの逸脱を非常に明確にすることができます。逆に、カテゴリ変数間の関係が複雑または不明確な場合、通常、その弱い事実以上のものを表示するのに適したグラフはありません。
-2。いくつかの点で、デザインは、それが発生するかどうかや頻度に関係なく、クロスコンビネーションごとにスペースを空けるため、スペースの使用が効率的ではありません。これは、美徳と見なされる同じ原則の悪です。上記の特定のデザインは、頻度に関係なくカテゴリを均等に配置します。それを犠牲にすることは、しばしば私が非常に高く評価する、読み取り可能な周辺ラベルを犠牲にします。この例では、テキストラベルはすべて非常に短いことがありますが、それは通常のものとはほど遠いものです。
注:xanのデータは発明されたように見えるため、他の回答で試みられている以上の解釈は試みません。しかし、いくつかの自作の知恵はここで最後の言葉に値します。あなたにとって最適なデザインは、あなたとあなたの読者にあなたが気にする実際のデータの構造を最も伝えるものです。
その他の例
tabplot
SSCからです。バーの高さは、最も高いバーまたは最も長いバーの高さの一部である必要があります。そのために使用可能なスペースは、表示されている行数によって決まります。ユーザーはデフォルトのギャップサイズをオーバーライドできますが、バーが互いに接触したり、お互いに隠れたりするリスクがあります。バーがプラスでもマイナスでもよい場合、物事は簡単ではありません。同じ制約が他のプログラムに噛み付くことを想像します。要するに、触れていないバーは空白を意味します!
@gungと@xanの回答を補足するためにvcd
、Rで使用するモザイクと関連プロットの例を示します。
> tab
period
activity morning noon afternoon evening
feed 28 4 0 56
social 38 5 9 10
travel 6 6 14 13
プロットを取得するには:
require(vcd)
mosaic(tab, shade=T, legend=T)
assoc(tab, shade=T, legend=T)
両方とも、予想される周波数からの直観を提示します...デフォルトは相互独立性のモデルですが、引数を介して変更できます(たとえば、明確な応答変数がある場合は、共同独立性に)expected
。
こちらもご覧ください: