みんな楽しいデータ分析のやりかた

公開日:2018-12-08
最終更新:2018-12-08

みんなデータ分析やってますか?

ちまたではやれ統計学だ機械学習だディープラーニングだ騒いでいますが、
それ以前に必要になるのがデータ分析の力!なんですよね。

データ分析やったことないけどどうすればいいのという人向けに紹介記事書いてみました~

※この記事で話さないこと

  • 統計分布の話(平均値とか中央値とか分布図とか)
  • 統計学の分析解析の話(回帰分析とか主成分分析とか)
  • グラフ(可視化)の話(棒グラフ円グラフどっちつかうのとか)

データ分析のやりかた

データ分析で行うことは基本的に「集計と比較」です。
集計と比較を行うには、集計する「軸」が必要になります。

  • 分類を軸にする
    • 例えば全店舗の売上データから、店舗ごとに集計して売上を比較
  • 時間を軸にする
    • 例えば全店舗の売上データから、月ごとに集計して売上の推移を見る

何かしらの軸を設定して値を比較をすることで、数値に差を目視で確認することができます。
なぜその軸で変化が発生した/しなかったのか?を考察することで、事実を確認したり新しい知見を得ることができます

データ分析のステップ

以下のステップを何回も試行錯誤してまわしていきます。

  • データが持っている要素から「軸」となりうるものを選ぶ(複数も可能)
  • 集計してグラフ化
  • グラフを見て結果を考察する

この軸で見たらどうかな?と設定してみてみて、あ~なんか違うな~って思ったら軸を変えてみたり、集計をカウントではなく割合でみるように変えたりして、なんとか結論が出せそうな形に持っていくことが大切です。

集計するツールは、個人的にはExcelのピボットテーブル機能が最強です。是非マスターしましょう!
ピボットテーブルに関してはぐぐれば何でも出てくるので調べやすいですよ
https://www.forguncy.com/blog/20171110_pivottable

データ分析の前に必要なこと

なんだデータ分析なんて簡単にできそうじゃん、と思うかもしれませんが、実はその前に必要なことがあります。。。。

  • データを集めること
  • 分析しやすい形のデータを用意すること
  • 「軸」になりうる要素を用意すること

データを集めるには

いわゆる分析対象となるようなデータはいろいろなところに散らばっていることが多いです。

  • 会社のデータの場合
    • A製品は〇〇システムのデータベース、B製品は△△システムのデータベースにある…という感じにとっ散らかっていることが多いです。
    • それらがどこにあるか情報収集して、依頼して集める必要が…
    • 気合でなんとかやるしかない。。。
  • ネットにあるデータの場合
    • DLできないか確認する
      • Wikipediaとかはできる
      • 公式の統計情報は、総務省統計局のHPでDLできる
    • スクレイピングを行う
      • やるなら慎重に

分析しやすい形のデータとは?

テーブルの形にしよう

いわゆるテーブルの形になっているデータが一番分析しやすいです

日付 店舗 売上
4/1 中央店 10000円
4/1 東店 15000円
4/2 中央店 20000円

この形であれば、Excelで開ける行数(バージョンにもよるけど1,048,576)以内であればピボットテーブルで分析することができます。

ですが世の中そんなきれいなデータばかりではないので、分析用にデータを加工する必要になることが多いです。

私は最近Slackのログ分析のために、jsonをCSVに変換するスクリプトをPythonで作ったりしました(最近Qiitaで投稿してもいいねつかなくて泣きそう)
https://qiita.com/yakipudding/items/bdb78a1b154d3fc29dfa

名前がなかったらつけよう

生データではIDで保持しているため、名前の情報がないこともあります。(上の例だと店舗IDしかなくて店舗名がない、とか)
その場合は以下のような方法があります

  • データ加工時点で名称列を追加しておく
  • IDと名前の対応表を用意しておき、後からExcelのVLookup等で結合する

「軸」になりうる要素を用意するとは?

分析したい「分類」がデータに付与されていない時

いわゆるデータの分類ごとに集計したいというとき、その「分類」自体がないことがあります。

例えば上で紹介したSlackのログ分析だと、発言内容が「情報共有」なのか「連絡」なのか「雑談」なのか…という分類で分析したいと考えます。しかし何をもって判断するのでしょうか?
発言をひとつひとつみて自分で判断して分類を付けようとすると、すべての発言を確認して分類を付けるなんてやってられません。
何かしらの法則(例えば連絡とか共有という文字が含まれる、など)を発見してうまく抽出できればいいのですが、自然文章のようなデータの判別はかなり難易度の高い領域になります。

じゃあどうすればいいの

ここで出てくる技術として、冒頭ちらっと出した機械学習がようやく登場します。
例えばテキスト解析で学習させて、機械学習でこの文章は「連絡」ですね!というような判断をさせことができます(ただし結果が正しいとは言っていない)。
しかし機械学習を使えるようにするには大量の教師データが必要になるので、結局は自分の目で見て判断する作業をかなりやって教師データを投入して…とらやないとうまくいかなそうです。どうしてもコストがかかるやり方になってしまうので、時間やお金の問題が発生したりします。。

それでもデータ分析は楽しい

データ分析は手間がかかる割に「知ってた」みたいな結果しかでなかったりして泣きそうになることもありますが、データをいじくりまわしてグラフ化してみるのは面白いです。
意外とこの軸でこんなことがわかった!へぇ~みたいな、単純に結果自体が面白かったり、現状を定量的に把握することができたりして楽しくなります。

またデータ分析前が大変だよというようなことを書きましたが、データを集めたり加工するテクニックは昨今の機械学習ブームでかなり敷居が下がっていると思います。Webで調べればそのへんにノウハウがごろごろ転がっているので、いろいろ見てみましょう。

個人的にはデータ加工ならPythonがおすすめです。手軽にできて学習コストも低いので便利ですよ!

まとめ

  • データ分析の基本は集計と比較
  • 試行錯誤して軸を決めることが大切
  • 分析するためのデータ加工が大変だけどネットにノウハウがあるよ
  • 分類を決めるために機械学習がつかわれたりするよ
記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@yakipuddingの技術ブログ。ポエム多め

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする