「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>データ解析]]

*目次 [#i8777de4]
#contents

*概要 [#za015e13]
-最も基本的なデータ分析方法で[[ビジネス インテリジェンス(BI)]]でも可能。

-集まったデータを年齢、性別、地域、職業などのさまざまな属性別に集計
--[[クラスタ分析>統計解析#df844c06]]などで使用する属性の組からカテゴリを抽出(F1層みたいな)。
--[[相関関係を分析>統計解析#bad01586]]し、属性毎に大まかなトレンドを把握する。

-更に、パターンから偏りを見分け推測する。
--[[協調フィルタリング>#t889221f]]
--[[コンテンツベース・フィルタリング>#i50d6fb6]]
--[[アソシエーション分析>#r05b1aed]]

-以下で利用される。
--アンケートの集計
--仕入れの計画
--販売予測
--世論調査

*詳細 [#k3b5d8fa]

**分析プロジェクト的に [#fb984d58]

***どう計画するか? [#v0344ad2]
-特徴:二変数間の関係
-意味合い:次の仮説

***どう読めばいいか? [#z2e215d6]
-特徴:比較結果(関係)
-意味合い:次の仮説

***EXCELでどう作るか? [#fbbc4e89]
[[ピボット・テーブル>#fa88f62f]]を作成する。

**分析に関する用語 [#s7ade4be]

***属性、変数、カテゴリ [#o5aaabf6]
-複数の属性、変数の組み合わせたカテゴリに対して、

--該当するデータを集計して
--or 該当するデータの個数・比率を

>表にしたもの。

-カテゴリの元となる属性、変数
|分類|特徴|変数の例|h
|デモグラフィック変数|・人口統計分布に基づく変数。&br;・基礎的情報として見ることが多い。|性別、年代、家族構成、職業、年収、学歴など|
|地理的変数|・地理的に分割される変数。&br;・消費者向けのマーケティングで利用されることが多い。|国、行政区、気候地域、都市と農村など|
|心理的変数|・価値観やライフスタイル、好み等を表す変数。&br;・意識調査の結果から変数をつくることが多い。|**が好き、**を常用しているなど|
|行動変数|・行動を表す変数。&br;・IT化の進展によって集計が容易になった。|購買履歴、使用頻度、アクセスログなど|

***縦横カテゴリ軸と設定 [#m78ea52c]
-縦カテゴリと横カテゴリを設定し、~
このカテゴリ間の関連を調査可能する。

-縦横カテゴリ軸
--縦(集計のグループ)
--横(集計結果の射影)

-[[仮説を立てて、軸を選択する。>データ解析#mdebc5a6]]
--横軸:今月は売上が下がったので、先月、今月の月。
--縦軸
---夏休みが終わったので、客層が変わった?→客層(単身、ファミリー
---雨の日が多かったので、天候のせいではないか?→天候

***クロス・テーブル [#n75d384e]
-トランザクション・テーブル → クロス集計 → クロス・テーブル
-トランザクション・テーブルをクロス集計するとクロス・テーブルになる。

***ルックアップ・テーブル [#d72c84dd]
-SQLで言えばJOINに該当する表計算ソフトの機能。
-≒トランザクション・テーブル(データ分析の元となるテーブル)

***ピボット・テーブル、ピボット・グラフ [#fa88f62f]
表計算ソフトや、分析ライブラリに実装されている機能。

-トランザクション・テーブルや[[ルックアップ・テーブル>#d72c84dd]]~
から[[クロス・テーブル(とグラフ)>#n75d384e]]を生成する。

-さらに、ココから、以下のような操作が可能。

--縦持ち・横持ちの相互変換
---[[ピボット>#a1552e80]]
---[[アン・ピボット>#r7f3968b]]

--データの分析

---[[ドリルダウン>#bfae8037]] / [[ドリルアップ>#e096d32b]] / [[ドリルスルー>#q88f8aa8]]~
集計結果の概略化 ⇔ 詳細化

---[[ダイス>#q24f114d]] / [[スライス>#ud773163]]~
集計軸の変更 / 集計対象への条件追加

**可視化の方法 [#lcdbdf15]

***100%積上棒グラフ [#m64211a1]

***複数系列の棒グラフ [#i06482a6]

**ビジネス上での事例 [#mfbeff94]

***アンケート [#jf026de3]
結果のまとめ

***マーケティング [#t4d01e29]
商品の売上高を顧客属性(年齢層や性別)毎に集計

***レコメンド応用(協調フィルタリング [#t889221f]
-パターンの類似性から偏りを見分け推測する。
-レコメンドシステム(推薦システム)に用いられる。

-考え方はシンプルで、

--対象ユーザは買っていないが、
--似ているユーザは買ってる

--似ているユーザは買ってる。

>ものを推薦する。

-[[コールド・スタート>機械学習(machine learning)#d9c39387]]による誤検知などがある。

***レコメンド応用2(コンテンツベース・フィルタリング [#i50d6fb6]
-ユーザーではなく商品側に何かしらの特徴量を付与し、特徴が似ている商品を推薦する

-対象ユーザーのデータがあれば推薦できるので、
--[[コールド・スタート>機械学習(machine learning)#d9c39387]]による誤検知などがない。
--だだし、他のユーザー情報を使用しないので~
コチラのほうが優れている、と言う訳ではない。

***レコメンド応用2([[アソシエーション分析>データ解析#wec1e143]] [#r05b1aed]
パターンの共起性から偏りを見分け推測する。

***[[QC(クオリティコントロール>PMP:品質マネジメント#jb49ef4a]] [#z64443dd]

-[[管理図のような時系列分析>データ分析#j2bf684e]]で問題を早期に見つけ、
-[[クロス集計>クロス集計分析#k3b5d8fa]]で、どこで問題が起こっているのかを見つけ、
-[[特性要因図(ロジックツリー)>PMP:計画 - リスク#yb4e76d5]]で考えて仮説を出し、

-最後に調査で確認する。

*SQLの例 [#ta6e0082]
-SQLを使用したクロス集計分析の例。

-GROUP BYを使用する場合、SELECTには、~
GROUP BYで指定した列と集計関数のみを指定できる。

**元データ [#pa81e392]

***トランザクション・テーブル [#u13606c9]
-表名:Xテーブル
-項目名
--名称
--属性A
--属性B
--属性C
--分類A
--分類B
--分類C
--数値

***クロス・テーブル [#v2d3a894]
クロス集計したビュー

 SELECT
   名称,
   属性A,
   属性B,
   属性C,
   分類A,
   分類B,
   分類C,
   SUM(数値) as 合計
 From Xテーブル
 GROUP BY
   名称,
   属性A,
   属性B,
   属性C,
   分類A,
   分類B,
   分類C,

**ピボット / アン・ピボット [#m6add619]

***ピボット [#a1552e80]
縦持ち → 横持ち

 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句が用意されている。

***アン・ピボット [#r7f3968b]
横持ち → 縦持ち

 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句が用意されている。

**分析例 [#oe66323b]

***基礎となる分析結果 [#bd957e2b]
[[クロス・テーブル>#v2d3a894]]を分類A, 属性Aで集計。

 SELECT
   分類A,
   属性A,
   SUM(合計)
 From クロス・テーブル
 GROUP BY
   分類A,
   属性A

※ [[ピボット / アン・ピボット>#m6add619]]したテーブルを対象としても良い。

***ドリルダウン [#bfae8037]
[[基礎分析結果>#bd957e2b]]の、分類Aを固定し、分類Bで集計

 SELECT
   分類B,
   属性A,
   SUM(合計)
 From クロス・テーブル
 Where 分類A = 'XXXX'
 GROUP BY 分類B, 属性A

***ドリルアップ [#e096d32b]
[[ドリルダウン>#bfae8037]]したものを元の[[基礎分析結果>#bd957e2b]]に戻す。

***ダイス [#q24f114d]
[[基礎分析結果>#bd957e2b]]の、分類ではなく、属性を変える(属性A → 属性B)。

 SELECT
   分類A,
   属性B,
   SUM(合計)
 From クロス・テーブル
 GROUP BY
   分類A,
   属性B

※ 分類A → 分類Bは詳細化。属性A → 属性Bは回転(軸の変更)。

***スライス [#ud773163]
[[基礎分析結果>#bd957e2b]]の、非表示の属性項目を固定する。

 SELECT
   分類A,
   属性A,
   SUM(合計)
 From クロス・テーブル
 Where 属性B = 'XXXX'
 GROUP BY 分類A, 属性A

※ 次元(軸)を減らし、3次元 → 2次元データへ。

***ドリルスルー [#q88f8aa8]
例えば、[[ピボット・テーブル>#a1552e80]]に対して、元データで内訳をみる。

 SELECT *
 FROM Xテーブル
 WHERE
   名称 = '集計条件に指定した列の値'
   AND 属性A = 'XXXX or YYYY : 縦持ちにした値の列名'

*参考 [#q600451f]
-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 階層を下げた詳細データの表示について(ドリルダウン)

**縦横変換 [#ece3ccdc]
-SQL で縦横変換まとめ(pivot と unpivot) - Qiita~
https://qiita.com/k24d/items/79bc4828c918dfeeac34

-[SQL]データの縦持ち、横持ちを入れ替える | Developers.IO~
https://dev.classmethod.jp/etc/sql-data-horizontal-vertical/

**[[多次元データベースのオンライン分析処理(OLAP)>ビジネス インテリジェンス(BI)#hd76f1af]] [#ma4c553c]
-上記のピボットと同じクロス集計を行うことが出来る。

-ファクト・テーブルからクロス・テーブル(とグラフ)を生成

-ファクト・テーブルは、スタース・キーマの構成要素。

-スター・スキーマは、
--1つ以上のファクト・テーブルと、
--外部キーを通じて関連付けられた1つ以上のディメンション・テーブル

>で構成される。

**[[Excel ピボット・テーブル、ピボット・グラフ>https://techinfoofmicrosofttech.osscons.jp/index.php?Excel%20%E3%83%94%E3%83%9C%E3%83%83%E3%83%88%E3%83%BB%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%80%81%E3%83%94%E3%83%9C%E3%83%83%E3%83%88%E3%83%BB%E3%82%B0%E3%83%A9%E3%83%95]] [#ye0154b0]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS