-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_CrossTabulationAnalysis
- 戻る(データ解析)
-
最も基本的なデータ分析方法でビジネス インテリジェンス(BI)でも可能。
-
集まったデータを年齢、性別、地域、職業などのさまざまな属性別に集計
-
更に、パターンから偏りを見分け推測する。
-
以下で利用される。
- アンケートの集計
- 仕入れの計画
- 販売予測
- 世論調査
- 特徴:二変数間の関係
- 意味合い:次の仮説
- 特徴:比較結果(関係)
- 意味合い:次の仮説
ピボット・テーブルを作成する。
-
複数の属性、変数の組み合わせたカテゴリに対して、
- 該当するデータを集計して
- or 該当するデータの個数・比率を
表にしたもの。
- カテゴリの元となる属性、変数
| 分類 | 特徴 | 変数の例 |
|---|---|---|
| デモグラフィック変数 | ・人口統計分布に基づく変数。 ・基礎的情報として見ることが多い。 |
性別、年代、家族構成、職業、年収、学歴など |
| 地理的変数 | ・地理的に分割される変数。 ・消費者向けのマーケティングで利用されることが多い。 |
国、行政区、気候地域、都市と農村など |
| 心理的変数 | ・価値観やライフスタイル、好み等を表す変数。 ・意識調査の結果から変数をつくることが多い。 |
**が好き、**を常用しているなど |
| 行動変数 | ・行動を表す変数。 ・IT化の進展によって集計が容易になった。 |
購買履歴、使用頻度、アクセスログなど |
-
縦カテゴリと横カテゴリを設定し、
このカテゴリ間の関連を調査可能にする。 -
縦横カテゴリ軸
- 縦(集計のグループ)
- 横(集計結果の射影)
-
仮説を立てて、軸を選択する(データ解析の該当節を参照)。
- 横軸:今月は売上が下がったので、先月、今月の月。
- 縦軸
- 夏休みが終わったので、客層が変わった?→客層(単身、ファミリー)
- 雨の日が多かったので、天候のせいではないか?→天候
- トランザクション・テーブル → クロス集計 → クロス・テーブル
- トランザクション・テーブルをクロス集計するとクロス・テーブルになる。
- SQLで言えばJOINに該当する表計算ソフトの機能。
- ≒トランザクション・テーブル(データ分析の元となるテーブル)
表計算ソフトや、分析ライブラリに実装されている機能。
-
トランザクション・テーブルやルックアップ・テーブル
からクロス・テーブル(とグラフ)を生成する。 -
さらに、ココから、以下のような操作が可能。
結果のまとめ
商品の売上高を顧客属性(年齢層や性別)毎に集計
-
パターンの類似性から偏りを見分け推測する。
-
レコメンドシステム(推薦システム)に用いられる。
-
考え方はシンプルで、
-
対象ユーザは買っていないが、
-
似ているユーザは買ってる。
-
ものを推薦する。
- コールド・スタート(機械学習の該当節を参照)による
誤検知などがある。
-
ユーザーではなく商品側に何かしらの特徴量を付与し、特徴が似ている商品を推薦する
-
対象ユーザーのデータがあれば推薦できるので、
- コールド・スタート(機械学習の該当節を参照)による
誤検知などがない。 - ただし、他のユーザー情報を使用しないので
コチラのほうが優れている、と言う訳ではない。
- コールド・スタート(機械学習の該当節を参照)による
アソシエーション分析(データ解析の該当節を参照)
パターンの共起性から偏りを見分け推測する。
移行メモ: 元ページでは「レコメンド応用2」の見出しが 2 つ続いていたため、
後者を「レコメンド応用3」とした。また「だだし」は「ただし」の誤記と判断し修正した。
PMP:品質マネジメントの該当節を参照。
-
管理図のような時系列分析(データ分析の該当節を参照)で
問題を早期に見つけ、 -
クロス集計で、どこで問題が起こっているのかを見つけ、
-
特性要因図(ロジックツリー)
(PMP:計画 - リスクの該当節を参照)で考えて仮説を出し、 -
最後に調査で確認する。
-
SQLを使用したクロス集計分析の例。
-
GROUP BYを使用する場合、SELECTには、
GROUP BYで指定した列と集計関数のみを指定できる。
- 表名:Xテーブル
- 項目名
- 名称
- 属性A
- 属性B
- 属性C
- 分類A
- 分類B
- 分類C
- 数値
クロス集計したビュー
SELECT
名称,
属性A,
属性B,
属性C,
分類A,
分類B,
分類C,
SUM(数値) as 合計
From Xテーブル
GROUP BY
名称,
属性A,
属性B,
属性C,
分類A,
分類B,
分類C縦持ち → 横持ち
SELECT
名称,
max(CASE WHEN 属性A = 'XXXX' THEN 属性B END) AS XXXX,
max(CASE WHEN 属性A = 'YYYY' THEN 属性C END) AS YYYY,
分類A,
分類B,
分類C
FROM クロス・テーブル
GROUP BY
名称,
属性A,
属性B,
属性C,
分類A,
分類B,
分類C※ 1 : 1 の Key-Valueを縦持ちにする場合、
THEN 属性X else null END の様にelse nullを追加する。
※ SQLだと、RDBMSによってはPIVOT句が用意されている。
横持ち → 縦持ち
SELECT 名称, 'XXXX' as 属性A, XXXX as 属性B, 分類A, 分類B, 分類C FROM ピボット・テーブル
UNION ALL
SELECT 名称, 'YYYY' as 属性A, YYYY as 属性C, 分類A, 分類B, 分類C FROM ピボット・テーブル
;※ SQLだと、RDBMSによってはUNPIVOT句が用意されている。
クロス・テーブルを分類A, 属性Aで集計。
SELECT
分類A,
属性A,
SUM(合計)
From クロス・テーブル
GROUP BY
分類A,
属性A※ ピボット / アン・ピボットしたテーブルを対象としても良い。
基礎分析結果の、分類Aを固定し、分類Bで集計
SELECT
分類B,
属性A,
SUM(合計)
From クロス・テーブル
Where 分類A = 'XXXX'
GROUP BY 分類B, 属性A基礎分析結果の、分類ではなく、属性を変える(属性A → 属性B)。
SELECT
分類A,
属性B,
SUM(合計)
From クロス・テーブル
GROUP BY
分類A,
属性B※ 分類A → 分類Bは詳細化。属性A → 属性Bは回転(軸の変更)。
基礎分析結果の、非表示の属性項目を固定する。
SELECT
分類A,
属性A,
SUM(合計)
From クロス・テーブル
Where 属性B = 'XXXX'
GROUP BY 分類A, 属性A※ 次元(軸)を減らし、3次元 → 2次元データへ。
例えば、ピボット・テーブルに対して、元データで内訳をみる。
SELECT *
FROM Xテーブル
WHERE
名称 = '集計条件に指定した列の値'
AND 属性A = 'XXXX or YYYY : 縦持ちにした値の列名'-
SQLと「ドリルダウン(及びドリルアップ)」、
「ダイス」、「スライス」の関係 - ウィリアムのいたずらの開発?日記
https://blog.goo.ne.jp/xmldtp/e/c5be25e2caf4e3cf3fa02dcdeed7c1e5 -
3-5 ドリルダウンやドリルスルーによる分析
https://manual.wingarc-support.com/ja/manual/drsum/dtl51excel/Content/109412452.html- 3-5-1 階層を下げて詳細データを表示する(ドリルダウン)
- 3-5-2 階層を上げて要約データを表示する(ドリルアップ)
- 3-5-3 集計データから内訳を表示する(ドリルスルー)
- 3-5-4 階層を下げた詳細データの表示について(ドリルダウン)
-
SQL で縦横変換まとめ(pivot と unpivot) - Qiita
https://qiita.com/k24d/items/79bc4828c918dfeeac34 -
[SQL]データの縦持ち、横持ちを入れ替える | Developers.IO
https://dev.classmethod.jp/etc/sql-data-horizontal-vertical/
ビジネス インテリジェンス(BI)の該当節を参照。
-
上記のピボットと同じクロス集計を行うことが出来る。
-
ファクト・テーブルからクロス・テーブル(とグラフ)を生成
-
ファクト・テーブルは、スター・スキーマの構成要素。
-
スター・スキーマは、
- 1つ以上のファクト・テーブルと、
- 外部キーを通じて関連付けられた1つ以上のディメンション・テーブル
で構成される。
移行メモ(正誤): 元ページの「スタース・キーマ」は「スター・スキーマ」の
誤記と判断し修正した。
Tags: 移行, データ解析, クロス集計, BI, SQL, 開発基盤
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。