SlideShare a Scribd company logo
1 of 113
全部Excelだけで実現しようとして後悔するデータ分析
2nd Edition
じょんすみす
2お前誰よ?
じょんすみす
クラスメソッド
データアナリティクス事業本部インテグレーション部
ML推進チーム リーダー
札幌の人
普段のお仕事
• 機械学習, SageMakerおじさん
• Hadoop, EMRおじさん
• Alteryx ACEの人
• クソExcelにモンク言うおじさん
3ある日の出来事...
4お題目
• なぜExcelは万能で人々に愛されるのか?
• データ分析のためのExcel準備
• データ分析のためのExcel活用
5お題目
• なぜExcelは万能で人々に愛されるのか?
• データ分析のためのExcel準備
• データ分析のためのExcel活用
6なぜExcelは万能で人々に愛されているのか?
世界で最も多く使われているソフトウェアの1つ、それがExcelと言っても
過言ではないでしょう。
• 誰でも簡単に「とりあえず使ってみる」が可能
• 自由すぎるセルと圧倒的多機能により割と何でも実現
• 自由に使えすぎるので他の人のExcelは何してるかわからん
• 「正しいExcelの使い方」なんて概念すらも...
• 誰でもフリーダムに使えるのでエンジニアにとって忌み嫌われる存在
• 自動化や効率化の妨げ的存在として扱われる
• もっと適切なツールがあるでしょ...と言われる
7実践!嫌われるExcelの使い方
8ちょっと待て
その使い方は本当に悪なのか?
9データ分析の流れで考える必要な要素
データの取得 分析 レポーティング
テーブルデータ
以下の内容を明確化
• 取得元
• フォーマット
• 含まれる情報
定期的な取得・更新の検討
分析内容に合わせた加工
分析処理の実施
専門知識が必要
意思決定で活用可能な形式
帳票やダッシュボード作成
この部分でレイアウトや
印刷形式を整える
10お題目
• なぜExcelは万能で人々に愛されるのか?
• データ分析のためのExcel準備
• データ分析のためのExcel活用
11データを整備しよう
何処にあるのかわからないデータは存在しないのと同じ
また、データとして利用可能な形式になっていない場合も同様
12データを整備しよう
理想的なデータの集め方と現実
理想
現実
13データを整備しよう
まずはスモールスタートで始めていく
今あるデータや今回使いたいデータをまずは準備
より詳細な分析を行ったり精度を高めたりするには様々なデータが
必要となるがいきなり全部は扱いきれない
まずは共有フォルダなど低コストで実現可能な方法でデータを集約
最初は手動でもいいのでデータカタログを作成しておく
共有されているデータを加工して分析を行う
すぐに始められる手ごろなツールを使ってDWHなどの導入は
共通処理などが見えてきてから行う
→ Excelでデータソースのリストを作成する
→ Power Queryを使ったデータの取得・加工
14データを整備しよう
15データを整備しよう
ある程度分析が定着してきたら
データ収集の自動化も検討
データからカタログを自動生成可能なツールの導入を検討
整形されたデータを共通の基盤で利用可能とするためのDWHを導入
データレイクからのETLを自動化
様々な視点で分析を行ためのBIツールや分析ツールを導入
データ分析の民主化
16今あるデータをカタログ化する
データの情報をリスト化する
17今あるデータをカタログ化する
データの情報をリスト化し、HYPERLINK関数を使って紐づける。
HYPERLINK(“https://dev.classmethod.jp/”, “Developers.IO”)
HYPERLINK(“Z:analysisdata”, “データフォルダ”)
HYPERLINK(“[iris.xlsx]iris!A1”, “irisデータセット”)
18今あるデータをカタログ化する
データの情報をリスト化し、HYPERLINK関数を使って紐づける。
19データの取得にはPower Queryを使う
Power Query? 何それおいしいの?
20データの取得にはPower Queryを使う
なんかいろいろ対応してる!!
21データの取得にはPower Queryを使う
Excelの場合、シートを選択(複数も可)
22データの取得にはPower Queryを使う
フォルダからの場合、同一スキーマの複数ファイルをまとめて取得可能
23データの取得にはPower Queryを使う
ODBCではSQLやテーブル選択で取得可能
24データの取得にはPower Queryを使う
WebページからではHTMLのtableタグやデータセットを取得可能
※ 画像はデモ用のものになります。Wikipediaなどクロールを禁止してるサイトもあるのでご注意ください。
25データの取得にはPower Queryを使う
(再掲)そのほかもいろいろ対応
26データはキレイな形式に!!
取り込むデータは分析しやすいように加工しよう。
データの基本はテーブル形式
27データはキレイな形式に!!
取り込むデータは分析しやすいように加工しよう。
データの基本はテーブル形式
先頭行はヘッダ
各列の名前を入れる
28データはキレイな形式に!!
取り込むデータは分析しやすいように加工しよう。
データの基本はテーブル形式
データは1行につき1件
29データはキレイな形式に!!
取り込むデータは分析しやすいように加工しよう。
データの基本はテーブル形式
同じ列には同じ種類の
データ
30データはキレイな形式に!!
取り込むデータは分析しやすいように加工しよう。
ダメな例 : 1行に複数データ
購入商品列に複数データが
入ってる
一行1データに変換する
31データはキレイな形式に!!
取り込むデータは分析しやすいように加工しよう。
ダメな例 : 複数列に1つのデータ(データにあわせて列も増加する)
同一の指標が複数列に
またがってる
同じ指標は常に同じ列
32いいデータってどんなデータ?
Tidy Data(整然データ)という概念が存在する。
R界隈で有名なHadley Wickham氏が提唱
• 個々の変数が1つの列をなす。
• 個々の観測が1つの行をなす。
• 個々の観測の構成単位の類型が1つの表をなす。
TidyじゃないデータはMessy Data(雑然データ)と呼ばれる
Tidy Dataの詳細は以下を参照
• Wickham, Hadley (20 February 2013). "Tidy Data". Journal of Statistical Software.
• 【翻訳】整然データ|Colorless Green Ideas
33ここまでやると何が嬉しいか?
分析をする際にこの構造になってることで様々なメリットが生まれる。
• 元データが未集計の状態なので分析の切り口を変更しやすい
• Power Queryはデータに更新があった際に「データ更新」のみで対応可能
• データをテーブルにしておくことで構造化参照が利用可能
• Tidy Dataは分析での利用やそのための変換をしやすくするためのデータ構造
• ピボットテーブルを利用する際に扱いやすい構造
• などなど
34ところで...
構造化参照 is 何?
セルの範囲ではなく列名を使ってデータを取り出す参照方法
↑こんな感じのデータがあるとする
35ところで...
構造化参照 is 何?
セルの範囲ではなく列名を使ってデータを取り出す参照方法
↑こんな感じのデータがあるとする
テーブル名[列名]で特定の列全体を取り出す
=SUM(iris[Sepal.Length])
36ところで...
構造化参照 is 何?
セルの範囲ではなく列名を使ってデータを取り出す参照方法
↑こんな感じのデータがあるとする
テーブル名[[列名1]:[列名2]]で連続する複数列を取り出す
=SUMPRODUCT(iris[[Sepal.Length]:[Sepal.Width]])
テーブル名のみでデータ部分全体を取り出す
=SUMPRODUCT(iris)
37ところで...
構造化参照 is 何?
セルの範囲ではなく列名を使ってデータを取り出す参照方法
↑こんな感じのデータがあるとする
テーブル名[#見出し]で列全体を取り出す
=COUNTA(iris[#見出し])
テーブル名[[#見出し], [列名]]で特定の列を取り出す
=iris[[#見出し], [Sepal.Length]]
38データをキレイにしろ、と言いたいことはわかった
俺のデータはお前の言う形式になってない
だから使えないじゃないか!
39データをキレイにしろ、と言いたいことはわかった
俺のデータはお前の言う形式になってない
だから使えないじゃないか!
安心してください
Power Queryの真価はここからです!
40Power Queryでデータの加工・整形をせよ!
JSONデータの取り込みで学ぶPower Query
俺、こんな感じのデータがあるので取り込んでみようと思うんだ...
41Power Queryでデータの加工・整形をせよ!
JSONデータの取り込みで学ぶPower Query
こんな感じの画面が出てくる
機能リスト
データのプレビュー
やったこと
リスト
42Power Queryでデータの加工・整形をせよ!
JSONデータの取り込みで学ぶPower Query
今どんなデータ?
JSONの構造、こんな感じですよー
43Power Queryでデータの加工・整形をせよ!
JSONデータの取り込みで学ぶPower Query
JSONはテーブル形式のデータってわけじゃないのでまずは変換
“オブジェクトの名前とその中に含まれるデータ”の構造に展開された
44Power Queryでデータの加工・整形をせよ!
JSONデータの取り込みで学ぶPower Query
リストの中身を展開しよう
Value列がカンマ区切りで展開された。
45Power Queryでデータの加工・整形をせよ!
JSONデータの取り込みで学ぶPower Query
1データ1列にしよう
1データ1列になった
46Power Queryでデータの加工・整形をせよ!
JSONデータの取り込みで学ぶPower Query
Name列を列名、それ以外を値とするために転置しよう
1行1データの形に近づいた!!
47Power Queryでデータの加工・整形をせよ!
JSONデータの取り込みで学ぶPower Query
先頭列をヘッダにして、完成!!
Tidyな感じのデータになった!!
48Power Queryでデータの加工・整形をせよ!
JSONデータの取り込みで学ぶPower Query
こんな感じでデータ整形できるわけですが、そのプロセスはすべて記録されてる。
• 何の処理をしたかを明確化
• 各ステップの実行前後の結果比較が可能
• ステップの削除や追加が可能
• もちろん編集も可能
• ステップに名前を付けて明確化することも可能
49Power Queryでデータの加工・整形をせよ!
他にもできることは様々!
• このほかにも様々な処理があるので大体なんとかなる
• 複数のデータソースを扱うことも可能
• 独自言語(M言語)ではあるが、ソースコード記述も可能
50Power Queryでデータの加工・整形をせよ!
JSON取り込みのソースコードはこんな感じ
51データモデルの話
データモデルとキューブと...
Power Queryで読み込んだデータはどこに保持してるのか?
• Power Queryでの読み込み先設定
• テーブルとして読み込む以外にも様々
• データモデルに追加することも可能
キューブはこんな感じ→
軸1 : 月ごとの
軸2 : 商品ごとの
売上
52データモデルの話
データモデルを作成してPower Pivotで扱う。
データモデルに対するリレーション リレーションはPivot Tableでそのまま利用可能
53お題目
• なぜExcelは万能で人々に愛されるのか?
• データ分析のためのExcel準備
• データ分析のためのExcel活用
54分析をはじめていこう
さあ、準備は整った!いよいよここからデータ分析が始まるゾ!!
55分析をはじめていこう
さあ、準備は整った!いよいよここからデータ分析が始まるゾ!!
の前にExcelの基礎知識
56Excelの基本的な関数
関数名 用途・利用方法 備考
SUM関数 対象範囲の足し算を行う
=SUM(A1:A10)
TRANSPOSE ベクトルや行列の転置を行う
{=TRANSPOSE(A1:C10)}
MMULT 行列積を計算する最も基本的な関数と言える
{= MMULT(TRANSPOSE(A1:C4), A1:C4)} さらばSUMPRODUCT
よく使う基本的な関数を確認していこう
57Excelの基本的な機能
配列数式を理解しておこう
入力または出力が配列になるような計算式
全行を合計
入力または出力が配列になるような計算式
範囲内で行ごとに計算した結果に対してSUM関数を実行
Ctrl+Shift+Enter
58Excelの基本的な機能
配列数式を理解しておこう
入力または出力が配列になるような計算式
配列数式とTRANSPOSE, MMULT関数の組合せでベクトルの内積計算
→ SUMPRODUCTより汎用性が高いので以降の計算はこっちを利用
59Excelの基本的な機能
配列数式を理解しておこう
入力または出力が配列になるような計算式
複数の値を結果として返すことも可能
出力と同じサイズの範囲を選択して配列数式を実行
60Excelの基本的な機能
配列数式を理解しておこう
入力または出力が配列になるような計算式
NxM行列とMxK行列の積をMMULTで計算
NxKの範囲で結果を出力
61Excelの基本的な機能
おまけ:配列を作る
「{}」内に値を入れる
「,」で次の列、「;」で次の行
62分析をはじめていこう
今度こそ本当にデータ分析が始まるゾ!!
63データを用意したらまず最初にやること
それは、基本統計量の確認。
データ > データ分析を選択(ない場合はアドオンで追加)
64データを用意したらまず最初にやること
それは、基本統計量の確認。
データ > データ分析を選択(ない場合はアドオンで追加) > 基本統計量
65データを用意したらまず最初にやること
それは、基本統計量の確認。
データ分析ツールは甘えなので計算する
66データを用意したらまず最初にやること
それは、基本統計量の確認。
データ分析ツールは甘えなので計算する
フィル
67データを用意したらまず最初にやること
ヒストグラムは1列1列心を込めて丁寧に作成
対象の列を選択し、グラフの種類にあるヒストグラム(棒グラフではないよ!)で作成
68データを用意したらまず最初にやること
ヒストグラムは1列1列心を込めて丁寧に作成
コピーしてデータソースだけを書き換えると比較的楽
69データを用意したらまず最初にやること
ヒストグラムは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
※ このままだと全部同じ位置に出力されるので適当に調整する
70カーネル密度推定もしてみよう
カーネル関数にぶっこんである値周辺の確率値を求める
𝑓 𝑥 =
1
𝑛ℎ
𝑖=1
𝑛
𝐾
𝑥 − 𝑥𝑖
ℎ
𝐾 𝑥 =
1
2𝜋
𝑒𝑥𝑝 −
𝑥2
2
x についての確率密度 ガウシアンカーネルを使用
n : データ件数
xi : 観測された各データ
h : パラメータ
71カーネル密度推定もしてみよう
カーネル関数にぶっこんである値周辺の確率値を求める
取りうるxの範囲をデータから決める
• 最大値 : MAX(boston[medv])
• 最小値 : MIN(boston[medv])
編集 > フィル > 連続データの作成
でmin/maxを参照にxの値を生成する
• 今回は0~60までを0.1刻みで生成
72カーネル密度推定もしてみよう
カーネル関数にぶっこんである値周辺の確率値を求める
𝑥𝑖
𝑥
ℎ {=SUM(
1 / SQRT(2 * PI()) *
EXP(
-POWER(($D3 - boston[medv]) / E$2, 2) / 2
)
) / COUNT(boston[medv]) * E$2}
𝑓 𝑥 =
1
𝑛ℎ
𝑖=1
𝑛
1
2𝜋
𝑒𝑥𝑝 −
𝑥 − 𝑥𝑖 ℎ 2
2
計算する値 :
73カーネル密度推定もしてみよう
カーネル関数にぶっこんである値周辺の確率値を求める
あとは下までオートフィル
74カーネル密度推定もしてみよう
カーネル関数にぶっこんである値周辺の確率値を求める
この値で折れ線グラフを作ることでカーネル密度関数の完成!
いい感じになるようにhを調整しよう
75異常値を見つけてみる
z値を計算する
𝑧 = (𝑥 − 𝜇) 𝜎
=STANDARDIZE(
boston[@nox],
AVERAGE(boston[nox]),
STDEV.S(boston[nox]))
計算する値 :
• テーブルになってれば行は勝手に計算される
• 列方向はオートフィルで
76異常値を見つけてみる
異常値となるものに対して条件付き書式を割り当てて確認する
z値の絶対値が3以上のものを異常値として設定。
この結果を元にフィルタの対象にするなど、どのように対処するかを決める。
77相関係数を求めてみる
どのデータとどのデータに関連がありそうなのか俯瞰する
𝑟 =
1
𝑛 𝑖=1
𝑛
(𝑥𝑖 − 𝑥)(𝑦𝑖 − 𝑦)
1
𝑛 𝑖=1
𝑛
(𝑥𝑖 − 𝑥)2 1
𝑛 𝑖=1
𝑛
(𝑦𝑖 − 𝑦)2
• 相関係数は2つの列データにの関連性を数値で表す
• 値が1に近いほど正の相関(片方が高くなればもう片方も高くなる)がある
• 値が-1に近いほど負の相関(片方が高くなればもう片方は低くなる)がある
• 値が0に近ければ相関なし
• 列の組み合わせ分だけ相関係数が計算できるので行列で表せる
相関係数の求め方
78相関係数を求めてみる
どのデータとどのデータに関連がありそうなのか俯瞰する
データ > データ分析 > 相関 で利用可能
79相関係数を求めてみる
別解 : 頑張って計算する
各データのz値
{=MMULT(TRANSPOSE(boston_z), boston_z) / (COUNT(boston_z[crim])-1)}
行列積を計算してデータ件数-1で割る
データ分析ツールは甘えなので計算する
80相関係数を求めてみる
別解 : 頑張って計算する
任意の2の列x,yに対して、i番目のデータのz値をzxi, zyiとする。
元データDに対してDTDを計算結果の、x行y列目の値は
𝒛 𝒙
𝑇 𝒛 𝒚 =
𝑖
𝑧 𝑥𝑖 𝑧 𝑦𝑖 𝑧 𝑥𝑖 =
𝑥𝑖 − 𝜇 𝑥
𝜎 𝑥
𝑧 𝑦𝑖 =
𝑦𝑖 − 𝜇 𝑦
𝜎 𝑦
=
𝑖
𝑥𝑖 − 𝜇 𝑥 𝑦𝑖 − 𝜇 𝑦
𝜎 𝑥 𝜎 𝑦
𝜎 𝑥 =
1
𝑛 − 1
𝑖
𝑥𝑖 − 𝜇 𝑥
2 𝜎 𝑦 =
1
𝑛 − 1
𝑖
𝑦𝑖 − 𝜇 𝑦
2
=
𝑛 − 1
𝑥𝑖 − 𝜇 𝑥
2 𝑦𝑖 − 𝜇 𝑦
2 𝑥𝑖 − 𝜇 𝑥 𝑦𝑖 − 𝜇 𝑦
,
,
n-1で割ることで、相関係数と一致する。
81散布図を見てみる
相関係数と同じように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
散布図
82主成分分析(PCA)をしてみる
PCA is 何?は割愛
列数と同じ数の適当な値を入れる
適当な値
=SUMSQ(I2:I5)
ベクトルの長さ
{=MMULT(
iris4[@[Sepal.Length]:[Petal.Width]],
$J$2:$J$5)}
主成分の値を計算する
分散を求める
=VAR.S(iris4[第1軸])
83主成分分析(PCA)をしてみる
PCA is 何?は割愛
ソルバーを起動する
目的セル : 分散を計算している部分
→ PCAの定義からこれを最大化できればOK
変更可能 : 最初に適当な値を入れた4つのセル
制約条件 :
• 各値が-1から1の範囲内
• ベクトルの長さが1になっている
84主成分分析(PCA)をしてみる
PCA is 何?は割愛
第1主成分(分散を最大化する軸)が求まった!!
第2主成分も同じ手順で求める
=SUMPRODUCT(I2:I5, J2:J5)
第1主成分と第2主成分の内積
PCAの各主成分は直交するので
→ソルバでこの値が0を制約条件に追加する
85主成分分析(PCA)をしてみる
PCA is 何?は割愛
第2主成分も求まった!!
主成分の軸でプロットすると
こんな感じ
※ 第3, 4主成分も同様に求められる
86主成分分析(PCA)をしてみる
結果を確認する
共分散行列を作成(相関行列と同じノリで作れます)
共分散行列 第一主成分(固有ベクトル)
分散(固有値) 第一主成分(固有ベクトル)
ソルバーによる近似解
なので多少のずれ
はあるがほぼ一致してる
87回帰分析をしよう
我々は未知の数値を予測する
データ分析ツールにある回帰分析
88回帰分析をしよう
我々は未知の数値を予測する
データ分析ツールにある回帰分析
89回帰分析をしよう
我々は未知の数値を予測する
データ分析ツールにある回帰分析
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
90回帰分析をしよう
我々は未知の数値を予測する
データ分析ツールは甘えなので計算する
とはいえ、回帰は関数が用意されている
{=LINEST(boston[medv], boston[[crim]:[lstat]], TRUE, TRUE)}
※ 係数の順番が元データと逆になるので注意
91回帰分析をしよう
我々は未知の数値を予測する
関数の戻り値以外は計算する
92回帰分析をしよう
我々は未知の数値を予測する
関数の戻り値以外は計算する
93回帰分析をしよう
我々は未知の数値を予測する
説明変数と係数をかけ合わせて切片を足すだけ!!
予測値を求めてみようよ!!
94ロジスティック回帰もしよう
我々は分類もする
Excelの機能にロジスティック回帰は無いので実装する
切片の項を追加
wをランダムな値で初期化
95ロジスティック回帰もしよう
我々は分類もする
Excelの機能にロジスティック回帰は無いので実装する
損失関数を計算
∅ 𝒙 =
1
1 + exp 𝒘 𝑇 𝒙
𝐸 = −
𝑖=1
𝑛
𝑦𝑖 𝑙𝑛∅ 𝑥𝑖 + 1 − 𝑦 𝑙𝑛 1 − ∅ 𝑥𝑖
{=-SUM(
iris_orig[num_species] *
LN(1 / (1 + EXP(-MMULT(iris_orig[[Sepal.Length]:[w_0]], TRANSPOSE(A4:E4))))) +
(1-iris_orig[num_species]) *
LN((1 - 1 / (1+EXP(-MMULT(iris_orig[[Sepal.Length]:[w_0]], TRANSPOSE(A4:E4))))))
)
96ロジスティック回帰もしよう
我々は分類もする
Excelの機能にロジスティック回帰は無いので実装する
損失関数の微分とハイパーパラメータα
の値を使って各wの値を更新
𝑤𝑖 = 𝑤𝑖 + 𝛼
𝜕𝐸
𝜕𝑤𝑖
𝜕𝐸
𝜕𝑤 𝑛
= 𝒚 − ∅ 𝒙
𝑇
𝒙𝑖
=$A4:$E4 + $B$1 *
MMULT(
TRANSPOSE(iris_orig[num_species] –
(1/(1+EXP(
-MMULT(iris_orig[[Sepal.Length]:[w_0]],
TRANSPOSE($A4:$E4)))))),
iris_orig[[Sepal.Length]:[w_0]]
)/COUNT(iris_orig[Sepal.Length])
損失関数の減り具合を確認
97ロジスティック回帰もしよう
我々は分類もする
Excelの機能にロジスティック回帰は無いので実装する
収束するまでオートフィル
98ロジスティック回帰もしよう
我々は分類もする
実装できたロジスティック回帰で推論する
=IF([@predict] > 0.5, 1, 0)
{=1 / (1 + EXP(-MMULT(iris[@[Sepal.Length]:[w_0]], TRANSPOSE(Sheet1!$D$300:$H$300))))}
99ロジスティック回帰もしよう
我々は分類もする
実装できたロジスティック回帰で推論する
そして無事それっぽい結果に
100時系列予測をしよう
Excelなら時系列データだって扱えちゃうんです!
今度はExcelの機能を使えるよ!
時系列の売上データ データタブにある「予測シート」
101時系列予測をしよう
Excelなら時系列データだって扱えちゃうんです!
今度はExcelの機能を使えるよ!
102時系列予測をしよう
Excelなら時系列データだって扱えちゃうんです!
今度はExcelの機能を使えるよ!
103時系列予測をしよう
Excelなら時系列データだって扱えちゃうんです!
データ分析ツールは甘えなので計算する
=FORECAST.ETS(A35, $B$2:$B$34,$A$2:$A$34)
予測値(C列)
予測対象 推論に使うデータ 時系列情報
上振れ、下振れの95%信頼区間(D, E列)
=C35-FORECAST.ETS.CONFINT(<同じ範囲>)
=C35+FORECAST.ETS.CONFINT(<同じ範囲>)
104時系列予測をしよう
Excelなら時系列データだって扱えちゃうんです!
データ分析ツールは甘えなので計算する
A~E列全体で折れ線グラフを作成する
予測値となる部分を境に別な系列に
なっているので色や形を調整する
105ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
106ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
107ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
甘えなかったものはそのまま更新可能
甘えた場合再度生成する必要がある
元データは簡単に
更新可能
108ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
109ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
110ダッシュボートを作ろう
色々データが出そろったのでまとめようと思うんだ...
111まとめ(?)的な何か
そんなことはない!!Excel大っっっっっっ嫌い!!!!!
112参考資料
• Excelパワーピボット
• 最速で収益につなげる完全自動のデータ分析
• Excelで学ぶデータ分析本格入門
• プロコンサルタントの最強エクセル術
• Excelで操る! ここまでできる科学技術計算
• 2017 Planning Guide for Data and Analytics
• HYPERLINK関数でハイパーリンクを作成する
• 主成分分析をExcelで理解する
113

More Related Content

What's hot

機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)Satoshi Hara
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic DatasetsDeep Learning JP
 
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版Tokoroten Nakayama
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」  佐野正太郎明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」  佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎Preferred Networks
 
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点Ichigaku Takigawa
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Yusuke Uchida
 
大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法Shunji Umetani
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方joisino
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門hoxo_m
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会takehikoihayashi
 
学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」西岡 賢一郎
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情Yuta Kikuchi
 
BERT分類ワークショップ.pptx
BERT分類ワークショップ.pptxBERT分類ワークショップ.pptx
BERT分類ワークショップ.pptxKouta Nakayama
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)RyuichiKanoh
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方BrainPad Inc.
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計Takahiro Kubo
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 

What's hot (20)

機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
 
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」  佐野正太郎明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」  佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
 
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 
学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
BERT分類ワークショップ.pptx
BERT分類ワークショップ.pptxBERT分類ワークショップ.pptx
BERT分類ワークショップ.pptx
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
研究効率化Tips Ver.2
研究効率化Tips Ver.2研究効率化Tips Ver.2
研究効率化Tips Ver.2
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
MICの解説
MICの解説MICの解説
MICの解説
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 

Similar to 全部Excelだけで実現しようとして後悔するデータ分析 2nd Edition

AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますAI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますfukuoka.ex
 
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」fukuoka.ex
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Satoshi Kato
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門Daiyu Hatakeyama
 
Learning structured embeddings of knowledge bases 文献講読
Learning structured embeddings of knowledge bases 文献講読Learning structured embeddings of knowledge bases 文献講読
Learning structured embeddings of knowledge bases 文献講読poppyuri
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Prunus 1350
 
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII
 
AIがAIを生み出す?
AIがAIを生み出す?AIがAIを生み出す?
AIがAIを生み出す?Daiki Tsuchiya
 
mxnetで頑張る深層学習
mxnetで頑張る深層学習mxnetで頑張る深層学習
mxnetで頑張る深層学習Takashi Kitano
 
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)Morpho, Inc.
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編Miki Shimogai
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201t2tarumi
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101Nobuaki Oshiro
 
Washingtondc b20161214 (2/3)
Washingtondc b20161214 (2/3)Washingtondc b20161214 (2/3)
Washingtondc b20161214 (2/3)Toshiyuki Shimono
 
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-Yasuyuki Sugai
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"Kentaro Yoshida
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナーTakahiro Iwase
 
Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術KinebuchiTomo
 

Similar to 全部Excelだけで実現しようとして後悔するデータ分析 2nd Edition (20)

AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますAI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
 
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
 
Learning structured embeddings of knowledge bases 文献講読
Learning structured embeddings of knowledge bases 文献講読Learning structured embeddings of knowledge bases 文献講読
Learning structured embeddings of knowledge bases 文献講読
 
PFI Christmas seminar 2009
PFI Christmas seminar 2009PFI Christmas seminar 2009
PFI Christmas seminar 2009
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
 
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
 
AIがAIを生み出す?
AIがAIを生み出す?AIがAIを生み出す?
AIがAIを生み出す?
 
mxnetで頑張る深層学習
mxnetで頑張る深層学習mxnetで頑張る深層学習
mxnetで頑張る深層学習
 
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
 
20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
 
Washingtondc b20161214 (2/3)
Washingtondc b20161214 (2/3)Washingtondc b20161214 (2/3)
Washingtondc b20161214 (2/3)
 
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
 
Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術
 

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だけで実現しようとして後悔するデータ分析 2nd Edition

Editor's Notes

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