SlideShare a Scribd company logo
1 of 81
全部Excelだけで実現しようとして後悔するデータ分析
じょんすみす
2お前誰よ?
じょんすみす
クラスメソッド
データアナリティクス事業本部インテグレーション部
ML推進チーム リーダー
普段のお仕事
• 機械学習, SageMakerおじさん
• Hadoop, EMRおじさん
• Alteryx ACEの人
• クソExcelにモンク言うおじさん
3ある日の出来事...
4お題目
• なぜExcelは万能で人々に愛されるのか?
• データ分析のためのExcel活用
• Alteryx ~Excelのその先へ~
5お題目
• なぜExcelは万能で人々に愛されるのか?
• データ分析のためのExcel活用
• Alteryx ~Excelのその先へ~
6なぜExcelは万能で人々に愛されているのか?
世界で最も多く使われているソフトウェアの1つ、それがExcelと言っても
過言ではないでしょう。
• 誰でも簡単に「とりあえず使ってみる」が可能
• 自由すぎるセルと圧倒的多機能により割と何でも実現
• 自由に使えすぎるので他の人のExcelは何してるかわからん
• 「正しいExcelの使い方」なんて概念すらも...
• 誰でもフリーダムに使えるのでエンジニアにとって忌み嫌われる存在
• 自動化や効率化の妨げ的存在として扱われる
• もっと適切なツールがあるでしょ...と言われる
7実践!嫌われるExcelの使い方
8ちょっと待て
その使い方は本当に悪なのか?
9データ分析の流れで考える必要な要素
データの取得 分析 レポーティング
テーブルデータ
以下の内容を明確化
• 取得元
• フォーマット
• 含まれる情報
定期的な取得・更新の検討
分析内容に合わせた加工
分析処理の実施
専門知識が必要
意思決定で活用可能な形式
帳票やダッシュボード作成
この部分でレイアウトや
印刷形式を整える
10お題目
• なぜExcelは万能で人々に愛されるのか?
• データ分析のためのExcel活用
• Alteryx ~Excelのその先へ~
11データ分析の話
Gartnerによる分類
12データを整備しよう
何処にあるのかわからないデータは存在しないのと同じ
また、データとして利用可能な形式になっていない場合も同様
13今あるデータをカタログ化する
データの情報をリスト化し、HYPERLINK関数を使って紐づける。
14今あるデータをカタログ化する
データの情報をリスト化し、HYPERLINK関数を使って紐づける。
HYPERLINK(“https://dev.classmethod.jp/”, “Developers.IO”)
HYPERLINK(“Z:analysisdata”, “データフォルダ”)
HYPERLINK(“[iris.xlsx]iris!A1”, “irisデータセット”)
15カタログを使ってデータ取得
Power Queryを使ってデータの取得を行う。
ODBCを使ってSQLでDBからのデータ取得 GUI上で各種データ整形・加工処理
16カタログを使ってデータ取得
データモデルを作成してPower Pivotで扱う。
データモデルに対するリレーション リレーションはPivot Tableでそのまま利用可能
17分析をはじめていこう
さあ、準備は整った!いよいよここからデータ分析が始まるゾ!!
18データを用意したらまず最初にやること
それは、基本統計量の確認。
データ > データ分析を選択(ない場合はアドオンで追加)
19データを用意したらまず最初にやること
それは、基本統計量の確認。
データ > データ分析を選択(ない場合はアドオンで追加) > 基本統計量
20データを用意したらまず最初にやること
ヒストグラムは1列1列心を込めて丁寧に作成
対象の列を選択し、グラフの種類にあるヒストグラム(棒グラフではないよ!)で作成
21データを用意したらまず最初にやること
ヒストグラムは1列1列心を込めて丁寧に作成
そんなことはやってられないので、VBAで全列のヒストグラム作成
Sub test()
Dim col As Variant
For Each col In Range("boston").ListObject.HeaderRowRange
Range("boston").ListObject.ListColumns(col.Value).Range.Select
ActiveSheet.Shapes.AddChart2(366, xlHistogram).Select
ActiveChart.ChartTitle.Select
Selection.Caption = col
Next col
End Sub
※ このままだと全部同じ位置に出力されるので適当に調整する
22カーネル密度推定もしてみよう
カーネル関数にぶっこんである値周辺の確率値を求める
𝑓 𝑥 =
1
𝑛ℎ
𝑖=1
𝑛
𝐾
𝑥 − 𝑥𝑖
ℎ
𝐾 𝑥 =
1
2𝜋
𝑒𝑥𝑝 −
𝑥2
2
x についての確率密度 ガウシアンカーネルを使用
n : データ件数
xi : 観測された各データ
h : パラメータ
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
カーネル密度関数
23カーネル密度推定もしてみよう
カーネル関数にぶっこんである値周辺の確率値を求める
取りうるxの範囲をデータから決める
• 最大値 : MAX(boston[medv])
• 最小値 : MIN(boston[medv])
• データ件数 : COUNT(boston[medv])
• ついでにパラメータhもセルに入れておく
編集 > フィル > 連続データの作成 でmin/maxを参照にxの値を生成する
• 今回は0~60までを0.1刻みで生成
24カーネル密度推定もしてみよう
カーネル関数にぶっこんである値周辺の確率値を求める
カーネル関数の中身を計算
1 / SQRT(2 * PI()) * EXP(-POWER((D$2 - Sheet2!$N2) / $B$6, 2) / 2)
1
2𝜋 −
𝑥2
2
xiの数だけこの値を計算する
最初に生成したxの値となる列方向も同様
※ オートフィルするだけ
25カーネル密度推定もしてみよう
カーネル関数にぶっこんである値周辺の確率値を求める
確率密度を計算する
SUM(D3:D508) / ($B$5 * $B$6)
おまけ : 配列数式を使えば一発で計算することも可能
𝑖=1
𝑛
𝐾
𝑥 − 𝑥𝑖
ℎ
1
𝑛ℎ
26カーネル密度推定もしてみよう
カーネル関数にぶっこんである値周辺の確率値を求める
この値で折れ線グラフを作ることでカーネル密度関数の完成!
いい感じになるようにhを調整しよう
h = 1 h = 1.5 h = 2
27異常値を見つけてみる
箱ひげ図で確認する
ヤベェ値
28異常値を見つけてみる
z値を計算する
• 𝑧 = (𝑥 − 𝜇) 𝜎
• 平均を計算
• Q2セル : AVERAGE(boston[medv])
• 標準偏差を計算
• Q3セル : STDEV.S(boston[medv])
• 各値のz値を計算する
• ([@medv] - $Q$2) / $Q$3
• まとめて計算しちゃうことも可能
• ([@medv] - AVERAGE([medv])) / STDEV.S([medv])
テーブルの列名で範囲を指定
この列に追加
29異常値を見つけてみる
異常値となるものに対して条件付き書式を割り当てて確認する
z値の絶対値が2以上のものを異常値として設定。
この結果を元にフィルタの対象にするなど、どのように対処するかを決める。
30相関係数を求めてみる
どのデータとどのデータに関連がありそうなのか俯瞰する
𝑟 =
1
𝑛 𝑖=1
𝑛
(𝑥𝑖 − 𝑥)(𝑦𝑖 − 𝑦)
1
𝑛 𝑖=1
𝑛
(𝑥𝑖 − 𝑥)2 1
𝑛 𝑖=1
𝑛
(𝑦𝑖 − 𝑦)2
• 相関係数は2つの列データにの関連性を数値で表す
• 値が1に近いほど正の相関(片方が高くなればもう片方も高くなる)がある
• 値が-1に近いほど負の相関(片方が高くなればもう片方は低くなる)がある
• 値が0に近ければ相関なし
• 列の組み合わせ分だけ相関係数が計算できるので行列で表せる
相関係数の求め方
31相関係数を求めてみる
どのデータとどのデータに関連がありそうなのか俯瞰する
データ > データ分析 > 相関 で利用可能
32相関係数を求めてみる
別解 : 頑張って計算する
各データのz値を計算 行列積を計算してデータ件数-1で割る
33散布図を見てみる
相関係数と同じように2つのデータの関連を見るためのもの
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 5 10 15 20 25 30
nox
indus
散布図
34回帰分析をしよう
我々は未知の数値を予測する
データ分析ツールにある回帰分析
35回帰分析をしよう
我々は未知の数値を予測する
データ分析ツールにある回帰分析
36回帰分析をしよう
我々は未知の数値を予測する
データ分析ツールにある回帰分析
0
2
4
6
8
10
12
切片 crim zn indus chas nox rm age dis rad tax ptratio black lstat
変数重要度
y = 0.7406x + 5.844
R² = 0.7406
-10
0
10
20
30
40
50
0 10 20 30 40 50 60
予測値
medv
37ロジスティック回帰もしよう
我々は分類もする
Excelの機能にロジスティック回帰は無いので実装する
切片の項を追加
wをランダムな値で初期化
38ロジスティック回帰もしよう
我々は分類もする
Excelの機能にロジスティック回帰は無いので実装する
各wで損失関数を微分した結果を計算
𝜕𝐸
𝜕𝑤 𝑛
= 𝒚 − ∅ 𝒙
𝑇
𝒙𝑖
∅ 𝒙 =
1
1 + exp 𝒘 𝑇 𝒙
𝐸 = −
𝑖=1
𝑛
𝑦𝑖 𝑙𝑛∅ 𝑥𝑖 + 1 − 𝑦 𝑙𝑛 1 − ∅ 𝑥𝑖
39ロジスティック回帰もしよう
我々は分類もする
Excelの機能にロジスティック回帰は無いので実装する
αの値を使って各wの値を更新
𝑤𝑖 = 𝑤𝑖 + 𝛼
𝜕𝐸
𝜕𝑤𝑖
この値で再び先ほどの計算
40ロジスティック回帰もしよう
我々は分類もする
Excelの機能にロジスティック回帰は無いので実装する
ひたすら繰り返す
1行目だけできればあとは
オートフィル
41ロジスティック回帰もしよう
我々は分類もする
実装できたロジスティック回帰で推論する
• {=1 / (1 + EXP(-MMULT(iris[@[Sepal.Length]:[w_0]], TRANSPOSE(Sheet1!$D$300:$H$300))))}
• =IF([@predict] > 0.5, 1, 0)
42ロジスティック回帰もしよう
我々は分類もする
実装できたロジスティック回帰で推論する
そして無事それっぽい結果に
43時系列予測をしよう
Excelなら時系列データだって扱えちゃうんです!
今度はExcelの機能を使えるよ!
時系列の売上データ データタブにある「予測シート」
44時系列予測をしよう
Excelなら時系列データだって扱えちゃうんです!
今度はExcelの機能を使えるよ!
45時系列予測をしよう
Excelなら時系列データだって扱えちゃうんです!
今度はExcelの機能を使えるよ!
46ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
47ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
48ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
49ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
50ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
DAX式を使ったメジャーを作成することで独自の集計値を実装可能
51ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
52Excel編まとめ(?)
Excelを活用したデータ分析においてこの点に注意しておこう。
• データソースと活用・出力は明確に分ける
• データモデルをベースにすることで変更があった時に更新が可能
• Power Queryで行ったデータ編集・加工はプロセスが確認可能
• セルの範囲ではなくテーブルの列名で指定することで更新時にも対応可能
53Excel編まとめ(?)
そんなことはない!!
54お題目
• なぜExcelは万能で人々に愛されるのか?
• データ分析のためのExcel活用
• Alteryx ~Excelのその先へ~
55最近何かと話題のワード「脱Excel」
【レポート】新認定資格登場!Alteryxをもっと学ぶTips満載のキーノート: GET AMPLIFIED – Alteryx Inspire 2019
56なぜ今「脱Excel」なのか?
Excelってなんでもできるじゃん!
• 「なんでもできる」と「なんでもやるべき」は異なる
• できはするけどあまり効率的とは言えないこともある
• より深く、より専門的なことを簡単にとなるとその機能が用意されてるといい
• Excelでの処理内容はあとからプロセスを確認するのが困難
• 何をどういう手順でやってるのかドキュメントが必要?
• ルールで縛ったとして、それを確実に強制することは難しい
• 専用のシステムを「作ってもらう」ではなく「自分たちでやる」もそのままに!
• 「ガッツリこれだけ!」を実現したわけじゃない
• どうしてもサイクルが長くなる
57セルフサービス型データ分析ツール
58セルフサービス型データ分析ツール
59セルフサービス型データ分析ツール
Drag & Dropで一覧から各種機能を持った
ツールを配置してワークフローを作成
60セルフサービス型データ分析ツール
必要な処理を行うためのツールを並べてつなげば
何度でも同じ処理を実行可能
→ 処理の再現性が担保されるともに、フローそのものが処理を説明
61セルフサービス型データ分析ツール
• テキストファイルや各種DBはもちろん、
他にも様々なデータソースに対応
• Excelを入力としてDBに出力するなど
ETL処理にも対応
• In-DBを使うことで重い処理をDB側で
実行させることも可能
62どんなことができるのか見ていこう!
基本統計量やヒストグラムが
一発で確認できる!!
63どんなことができるのか見ていこう!
相関係数のヒートマップや
散布図によるデータ確認
64どんなことができるのか見ていこう!
ツールの組み合わせこそがAlteryxを使ったワークフロー作成の神髄
65どんなことができるのか見ていこう!
ツールの組み合わせこそがAlteryxを使ったワークフロー作成の神髄
平均と標準偏差を求める
66どんなことができるのか見ていこう!
ツールの組み合わせこそがAlteryxを使ったワークフロー作成の神髄
元データの各行にその情報を付与
67どんなことができるのか見ていこう!
ツールの組み合わせこそがAlteryxを使ったワークフロー作成の神髄
𝑧 = (𝑥 − 𝜇) 𝜎 を計算
68どんなことができるのか見ていこう!
工夫次第ではさらにいい感じな処理も可能
1. unpivot(縦持ちに変換)
2. 元の列名の値ごとに平均と標準偏差を計算
3. 列名をキーにして元データと結合(VLOOKUP)
4. 各行のz値を計算
5. pivot(横持ち)してすべての列のz値を得る
69どんなことができるのか見ていこう!
あらゆるソースに散らばったデータを結合するJoinツール
70どんなことができるのか見ていこう!
分析だってもちろんお手の物!!
71どんなことができるのか見ていこう!
分析だってもちろんお手の物!!
回帰分析もツールで一発
72どんなことができるのか見ていこう!
分析だってもちろんお手の物!!
予測値の取得もツールで
73どんなことができるのか見ていこう!
分析だってもちろんお手の物!!
グラフの作成ももちろん可能
74どんなことができるか見ていこう!
これらすべてをワンストップで実現可能!!
• 全てのフローが明確になる
• データソースを変えるだけですべての情報をいつでも更新可能
• データ分析に関するあらゆる操作がツールの配置という共通の操作で実現可能
75どんなことができるか見ていこう!
でも、やればやるほど似たような複雑な処理が増えてくんじゃない?
ワークフローの一部をマクロ化することで
共通処理を1つのツールとして扱うことが可能になる
76どんなことができるか見ていこう!
でも、やればやるほど似たような複雑な処理が増えてくんじゃない?
Alteryx Serverを導入することによって
ワークフローやマクロ、処理結果のダッシュボードなとが共有可能
77どんなことができるか見ていこう!
そうはいってもできないこともあるんじゃない?
ツールの組み合わせだけでできない場合RやPythonのスクリプトを組み込むことも可能
78Alteryxってすげぇ!!
Alteryxってすげぇ!!
79まとめ的な何か
データ分析とExcelとAlteryxの楽しいお話
• データを蓄える基盤と分析環境と見せ方は分けて考えよう
• 適切に分割して疎結合にすることで再利用が容易になる
• データはきちんとカタログで管理すると良さげ
• Excelはやろうと思えば何でもできてしまうがやるべきかはまた別な話
• ボタン1つで簡単に実現できる機能から頑張って実現するものまで様々
• 複雑なことは作ってる最中でも何してるのかわからんくなることもしばし...
• Alteryxってすげぇ!!
• データ分析に関連する様々な処理をワンストップで実現
• 処理内容の明確化や共有も可能
80参考資料
• Excelパワーピボット
• 最速で収益につなげる完全自動のデータ分析
• Excelで学ぶデータ分析本格入門
• プロコンサルタントの最強エクセル術
• 2017 Planning Guide for Data and Analytics
• HYPERLINK関数でハイパーリンクを作成する
• 主成分分析をExcelで理解する
81

More Related Content

What's hot

Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれHiroshi Shimizu
 
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみるHisao Soyama
 
傾向スコアの概念とその実践
傾向スコアの概念とその実践傾向スコアの概念とその実践
傾向スコアの概念とその実践Yasuyuki Okumura
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)Yoshitake Takebayashi
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)Hiroshi Shimizu
 
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜Yasuyuki Sugai
 
反応時間データをどう分析し図示するか
反応時間データをどう分析し図示するか反応時間データをどう分析し図示するか
反応時間データをどう分析し図示するかSAKAUE, Tatsuya
 
第4回DARM勉強会 (多母集団同時分析)
第4回DARM勉強会 (多母集団同時分析)第4回DARM勉強会 (多母集団同時分析)
第4回DARM勉強会 (多母集団同時分析)Masaru Tokuoka
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会takehikoihayashi
 
順序データでもベイズモデリング
順序データでもベイズモデリング順序データでもベイズモデリング
順序データでもベイズモデリング. .
 
ベイズモデリングと仲良くするために
ベイズモデリングと仲良くするためにベイズモデリングと仲良くするために
ベイズモデリングと仲良くするためにShushi Namba
 
相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心takehikoihayashi
 
スパース推定法による統計モデリング(入門)
スパース推定法による統計モデリング(入門)スパース推定法による統計モデリング(入門)
スパース推定法による統計モデリング(入門)Hidetoshi Matsui
 
統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本Akifumi Eguchi
 
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]daiki hojo
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法Hidetoshi Matsui
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデルYohei Sato
 
MCMCで研究報告
MCMCで研究報告MCMCで研究報告
MCMCで研究報告Masaru Tokuoka
 
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」Takashi J OZAKI
 
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)Yoshitake Takebayashi
 

What's hot (20)

Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
 
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
階層ベイズでプロ野球各球団の「本当の強さ」を推定してみる
 
傾向スコアの概念とその実践
傾向スコアの概念とその実践傾向スコアの概念とその実践
傾向スコアの概念とその実践
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
 
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
 
反応時間データをどう分析し図示するか
反応時間データをどう分析し図示するか反応時間データをどう分析し図示するか
反応時間データをどう分析し図示するか
 
第4回DARM勉強会 (多母集団同時分析)
第4回DARM勉強会 (多母集団同時分析)第4回DARM勉強会 (多母集団同時分析)
第4回DARM勉強会 (多母集団同時分析)
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 
順序データでもベイズモデリング
順序データでもベイズモデリング順序データでもベイズモデリング
順序データでもベイズモデリング
 
ベイズモデリングと仲良くするために
ベイズモデリングと仲良くするためにベイズモデリングと仲良くするために
ベイズモデリングと仲良くするために
 
相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心
 
スパース推定法による統計モデリング(入門)
スパース推定法による統計モデリング(入門)スパース推定法による統計モデリング(入門)
スパース推定法による統計モデリング(入門)
 
統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本
 
心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]心理学者のためのJASP入門(操作編)[説明文をよんでください]
心理学者のためのJASP入門(操作編)[説明文をよんでください]
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法
 
Rで階層ベイズモデル
Rで階層ベイズモデルRで階層ベイズモデル
Rで階層ベイズモデル
 
MCMCで研究報告
MCMCで研究報告MCMCで研究報告
MCMCで研究報告
 
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
 
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
 

Similar to 全部Excelでやろうとして後悔するデータ分析

データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度Seiichi Uchida
 
第1回Rを使って統計分析を勉強する会
第1回Rを使って統計分析を勉強する会第1回Rを使って統計分析を勉強する会
第1回Rを使って統計分析を勉強する会Nobuto Inoguchi
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例kunihikokaneko1
 
データサイエンス概論第一=4-2 確率と確率分布
データサイエンス概論第一=4-2 確率と確率分布データサイエンス概論第一=4-2 確率と確率分布
データサイエンス概論第一=4-2 確率と確率分布Seiichi Uchida
 
cs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスcs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスkunihikokaneko1
 
九大_DS実践_距離とクラスタリング
九大_DS実践_距離とクラスタリング九大_DS実践_距離とクラスタリング
九大_DS実践_距離とクラスタリングRyomaBise1
 
K020 appstat201202
K020 appstat201202K020 appstat201202
K020 appstat201202t2tarumi
 
K030 appstat201203 2variable
K030 appstat201203 2variableK030 appstat201203 2variable
K030 appstat201203 2variablet2tarumi
 
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと Haruka Ozaki
 
Code for Japan Summit 2019 --- BAD OpenData Kuyodera
Code for Japan Summit 2019 --- BAD OpenData KuyoderaCode for Japan Summit 2019 --- BAD OpenData Kuyodera
Code for Japan Summit 2019 --- BAD OpenData Kuyoderassuserc75473
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門Shuyo Nakatani
 
データサイエンス概論第一=1-3 平均と分散
データサイエンス概論第一=1-3 平均と分散データサイエンス概論第一=1-3 平均と分散
データサイエンス概論第一=1-3 平均と分散Seiichi Uchida
 

Similar to 全部Excelでやろうとして後悔するデータ分析 (12)

データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度
 
第1回Rを使って統計分析を勉強する会
第1回Rを使って統計分析を勉強する会第1回Rを使って統計分析を勉強する会
第1回Rを使って統計分析を勉強する会
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例
 
データサイエンス概論第一=4-2 確率と確率分布
データサイエンス概論第一=4-2 確率と確率分布データサイエンス概論第一=4-2 確率と確率分布
データサイエンス概論第一=4-2 確率と確率分布
 
cs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスcs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンス
 
九大_DS実践_距離とクラスタリング
九大_DS実践_距離とクラスタリング九大_DS実践_距離とクラスタリング
九大_DS実践_距離とクラスタリング
 
K020 appstat201202
K020 appstat201202K020 appstat201202
K020 appstat201202
 
K030 appstat201203 2variable
K030 appstat201203 2variableK030 appstat201203 2variable
K030 appstat201203 2variable
 
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
 
Code for Japan Summit 2019 --- BAD OpenData Kuyodera
Code for Japan Summit 2019 --- BAD OpenData KuyoderaCode for Japan Summit 2019 --- BAD OpenData Kuyodera
Code for Japan Summit 2019 --- BAD OpenData Kuyodera
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
 
データサイエンス概論第一=1-3 平均と分散
データサイエンス概論第一=1-3 平均と分散データサイエンス概論第一=1-3 平均と分散
データサイエンス概論第一=1-3 平均と分散
 

More from __john_smith__

PoCで終わらせない!データ分析・AI活用
PoCで終わらせない!データ分析・AI活用PoCで終わらせない!データ分析・AI活用
PoCで終わらせない!データ分析・AI活用__john_smith__
 
Amazon SageMakerでゼロからはじめる機械学習入門
Amazon SageMakerでゼロからはじめる機械学習入門Amazon SageMakerでゼロからはじめる機械学習入門
Amazon SageMakerでゼロからはじめる機械学習入門__john_smith__
 
Alteryx UG3 LT #alteryx_ug
Alteryx UG3 LT #alteryx_ugAlteryx UG3 LT #alteryx_ug
Alteryx UG3 LT #alteryx_ug__john_smith__
 
Alteryx Inspire2017 新製品&新機能紹介
Alteryx Inspire2017 新製品&新機能紹介Alteryx Inspire2017 新製品&新機能紹介
Alteryx Inspire2017 新製品&新機能紹介__john_smith__
 
How to create Yarn Application #cmdevio2017
How to create Yarn Application #cmdevio2017How to create Yarn Application #cmdevio2017
How to create Yarn Application #cmdevio2017__john_smith__
 
Alteryxでkaggleに挑戦する #alteryx #alteryx_ug
Alteryxでkaggleに挑戦する #alteryx #alteryx_ugAlteryxでkaggleに挑戦する #alteryx #alteryx_ug
Alteryxでkaggleに挑戦する #alteryx #alteryx_ug__john_smith__
 
初心者向けに機械学習のハンズオンセミナーをしてわかったこと
初心者向けに機械学習のハンズオンセミナーをしてわかったこと初心者向けに機械学習のハンズオンセミナーをしてわかったこと
初心者向けに機械学習のハンズオンセミナーをしてわかったこと__john_smith__
 
この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!__john_smith__
 
5分でわかる 怖くない機械学習
5分でわかる 怖くない機械学習5分でわかる 怖くない機械学習
5分でわかる 怖くない機械学習__john_smith__
 
初心者向け「凛ちゃん」
初心者向け「凛ちゃん」初心者向け「凛ちゃん」
初心者向け「凛ちゃん」__john_smith__
 
SparkRをつかってみた(Japan.R)
SparkRをつかってみた(Japan.R)SparkRをつかってみた(Japan.R)
SparkRをつかってみた(Japan.R)__john_smith__
 

More from __john_smith__ (16)

PoCで終わらせない!データ分析・AI活用
PoCで終わらせない!データ分析・AI活用PoCで終わらせない!データ分析・AI活用
PoCで終わらせない!データ分析・AI活用
 
ML Sagemaker Dev.IO
ML Sagemaker Dev.IOML Sagemaker Dev.IO
ML Sagemaker Dev.IO
 
Amazon SageMakerでゼロからはじめる機械学習入門
Amazon SageMakerでゼロからはじめる機械学習入門Amazon SageMakerでゼロからはじめる機械学習入門
Amazon SageMakerでゼロからはじめる機械学習入門
 
Alteryx UG3 LT #alteryx_ug
Alteryx UG3 LT #alteryx_ugAlteryx UG3 LT #alteryx_ug
Alteryx UG3 LT #alteryx_ug
 
Alteryx Inspire2017 新製品&新機能紹介
Alteryx Inspire2017 新製品&新機能紹介Alteryx Inspire2017 新製品&新機能紹介
Alteryx Inspire2017 新製品&新機能紹介
 
How to create Yarn Application #cmdevio2017
How to create Yarn Application #cmdevio2017How to create Yarn Application #cmdevio2017
How to create Yarn Application #cmdevio2017
 
Alteryxでkaggleに挑戦する #alteryx #alteryx_ug
Alteryxでkaggleに挑戦する #alteryx #alteryx_ugAlteryxでkaggleに挑戦する #alteryx #alteryx_ug
Alteryxでkaggleに挑戦する #alteryx #alteryx_ug
 
初心者向けに機械学習のハンズオンセミナーをしてわかったこと
初心者向けに機械学習のハンズオンセミナーをしてわかったこと初心者向けに機械学習のハンズオンセミナーをしてわかったこと
初心者向けに機械学習のハンズオンセミナーをしてわかったこと
 
この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!この素晴らしいSQLに祝福を!
この素晴らしいSQLに祝福を!
 
Javado2
Javado2Javado2
Javado2
 
Jubatus hack2
Jubatus hack2Jubatus hack2
Jubatus hack2
 
5分でわかる 怖くない機械学習
5分でわかる 怖くない機械学習5分でわかる 怖くない機械学習
5分でわかる 怖くない機械学習
 
LSTMで話題分類
LSTMで話題分類LSTMで話題分類
LSTMで話題分類
 
初心者向け「凛ちゃん」
初心者向け「凛ちゃん」初心者向け「凛ちゃん」
初心者向け「凛ちゃん」
 
SparkRをつかってみた(Japan.R)
SparkRをつかってみた(Japan.R)SparkRをつかってみた(Japan.R)
SparkRをつかってみた(Japan.R)
 
Jubatus Hackathon
Jubatus HackathonJubatus Hackathon
Jubatus Hackathon
 

全部Excelでやろうとして後悔するデータ分析

Editor's Notes

  1. みんな大嫌いなやつ Excel方眼紙・神エクセル 楽しいセルの結合 図をふんだんに使ったお絵描き 嫌われるExcelの使い方は本当に悪なのか? そもそもなぜ彼らが嫌われるのか考えてみよう。 Excelは元々”表計算ソフト”である 「こんな使い方は嫌われる」の主な原因は 効率的な使い方の妨げになっている データとして再利用できない形式になってる 検索性が著しく悪い 嫌われる使い方が蔓延る原因はいったいどこにあるのか 印刷が前提など、どのようにレイアウトするかのみを気にする よくわかってないけどググって出てきたやり方をコピペ
  2. インターネットの歴史に残るブラウザ戦争HTML/CSSの分離 あの頃のホームページ作成で起こっていた出来事 maqueeタグやblinkタグなど見た目装飾用のタグ乱立 tableのネストや結合を利用したレイアウト・1x1pxの透明画像で幅調整 今では主流の考え方 HTMLはデータとして活用を用意するために構造を定義するもの デザインを整えて見た目をいい感じにするのはCSSの役目 MVCモデルの考え方 今でも使われてる概念なのかなぁ 誰もViewに全部書こうとはしないでしょ? バックエンドは無視できません Excelの利用でもきちんとそれぞれが分離し状態であれば データは再利用可能なまま印刷や帳票用のレイアウトが可能になる
  3. 何はともあれまずはデータが無いことには何も始まらない データを適切に集約しよう データフォーマットはちゃんとね とはいえ、やみくもに集めればいいってわけじゃなく、分析するには「どんなデータが必要か」も検討が必要 今ないデータを集めるにはお金も時間もかかるし、ためておくのもタダじゃない だから、今あるデータの範囲から進めていくのがいいんだけど、何があるかわからんと使えないので、データカタログが必要になる。 Descriptive(記述的)では、「今何が起こってるのか」をデータから読み解く 従来のデータ集計・可視化・統計を使う。 Diagnostic(診断的)では、「なぜそれが起こってるのか」を調べる過程 要因分析とか 統計的因果推論とかはわかんない Predictive(予測)では、「これから何が起こるのか」を予測する 統計モデルや機械学習などが登場するよ Prescriptive(処方的)では、「何をすべきか」を決定する 今まで意思決定は人間が行っていた部分まで含めてデータでやってしまおうってんだからすごい。 未来ずらーって言われてる。 この発表では、Excelで Data Descriptive Diagnostic Predictive をやってみよう!
  4. 利用可能な形式になってないデータ = クソExcel 左 : 様々なデータソース(ブラックボックス化されてるものは闇) 中央 : データ分析基盤 右上 : データカタログ 右下 : 分析環境(Excel) 様々なソースにまたがるデータを基盤に集約する この過程でデータの整理や整形(ETL処理)なども必要になる データを蓄える基盤として データレイク DWH データマート などがあげられる。 テーブル構造になってることが保証されていると嬉しいので、それらがあるのが望ましいが かならずしも最初から大掛かりなものを用意する必要はなく、最初は共有フォルダにCSVやExcelファイルを入れとくでもいい 集約したデータをデータカタログ化して どのようなソースから取得したデータか どのような方法で取得したデータか どのような人を対象として取得したデータか どのタイミングで取得したデータか どのような内容(列一覧とその意味や単位など)か 保存されてるデータの期間は などの情報を格納しておく この情報が分析者から参照可能な状態になっている必要がある 分析者はカタログ情報を参照して、必要なデータを見つける 実際のデータを取得して、分析作業に取り掛かる。 データガバナンスの話はしない
  5. データ一覧情報を作成する DBのテーブル情報や列一覧情報はPower QueryでSQL書けば取得可能 ファイルで管理されているものは共有フォルダなどを使って一か所にまとめる それぞれのファイルにリンクを張るとともに列名情報はPower Queryで取得 今回はやってないけど、ファイル一覧を取得する部分や各テーブル情報を取得する部分はVBA使って自動化も可能 hyperlink関数を使うことで 任意のExcelファイルの特定のシートなどに移動 Web上のデータにリンクを張る などする 何が嬉しいか このようにまとめておけば元データはこの情報を参照してPower Queryで取得可能になる (次の分析の話に続く)
  6. 任意の場所にリンク可能な性質を利用して web上のデータから他のExcelファイルまで様々なデータソースへのリンクを貼れる 参照先がExcelであればさらにそこからHYPERLINK関数で階層化することも可能 Power Queryではhttp経由でcsvやjsonを取得できるのはもちろんのこと、 HTMLのテーブルを指定して取得することも可能です。 そういったwebからデータを取得するような際にはそのページへのリンクを貼っておくといいでしょう。
  7. データ取得元がRDBであればテーブル一覧から利用するものを選択できるほか、 SQLを記述してデータ取得することも可能 ODBCを使ったRDBからのデータ取得のほか Excel CSV Web など様々なデータソースから同一の操作感で取得可能 読み込んだデータはテーブルやデータモデルとして保持する。 PowerQueryで読み込んだデータは 元データそのものを編集するわけではないので事故がない 元データに変更があった場合もデータの更新を行うことで対応可能 データモデルであればシートには読み込まないので1,048,576行、16,384列の壁を超えることも可能 という特徴を持つ
  8. データモデルに読み込むことでリレーションの定義も行える。 これはPivot Tableで利用可能。 なお、リレーションを定義するほか、あらかじめJOINしておくことも可能。 人類がVLOOKUPに苦戦したりXLOOKUPに歓喜してる間にExcelはRDBになっていた。
  9. 適切なhを求めるための手法もあるがここで割愛
  10. 四分位数 * 四分位範囲の1.5倍まで
  11. |2|以上を異常値としてるのは正規分布の分散に由来する 分布が異なる場合は別途検討が必要。 任意の分布に対して分散由来の外れ値を設定したい場合は「チェビシェフの不等式」で調べてみよう!
  12. 上側は同じ値になるので下参画だけ出力される 出力は数字だけなので、条件付き書式で色を設定してる
  13. 相関係数は線形の関係しか表せない 散布図を見ることで、非線形の関係が読み取れることもある 散布図も相関係数と同様に行列にできるけど、同じノリでVBAでやってね
  14. P値は条件付き書式で太字にしてる
  15. 予測値、出たよ!!
  16. テーブルやセルの範囲からピボットテーブルやピボットグラフを作成する。 通常、ピボットグラフは単体で作成することはできず、必ずピボットテーブルと連動する。 これだとダッシュボード化するに際していろんな指標を見たいときにいちいち画面上には表示しないピボットテーブルも作らないとなので残念
  17. データモデルからであればそれぞれを独立して作ることが可能
  18. スライサを通じてレポートを接続
  19. テーブルもピボットテーブルもスライサを設定可能だが、それらを連動させることはできない。 散布図やヒストグラムはピボットテーブルからは作成できないのでこれらをダッシュボードに含める場合は注意が必要。 また各種分析機能はモノによってはデータの更新時に再度実行しないとダメなものもあるのでそれらにも注意
  20. こんな感じでダッシュボードが作れる
  21. ドキュメントは2重管理になりがちで、変更があった際に両方ちゃんと修正されることを保証するのは難しい
  22. データサイエンティストやエンジニアが作成したプログラムをマクロ化してツールとして組み込むことで Alteryx上では誰でも簡単にその機能を利用できるようになる