|
| 1 | +--- |
| 2 | +title: "データ分析でプロジェクトをリードした話" |
| 3 | +date: 2025/05/08 00:00:00 |
| 4 | +postid: a |
| 5 | +tag: |
| 6 | + - データ分析 |
| 7 | + - Execl |
| 8 | + - ピボットテーブル |
| 9 | +category: |
| 10 | + - DataScience |
| 11 | +thumbnail: /images/20250508a/thumbnail.png |
| 12 | +author: 岡田陸 |
| 13 | +lede: "昨年1年間は「データを駆使して仕事を進める」という少しいままでと色の違う経験をしました。この記事では、その中で得た知見や工夫した点を共有します。" |
| 14 | +--- |
| 15 | +# はじめに |
| 16 | + |
| 17 | +はじめまして、製造エネルギー事業部に所属している岡田と申します。現在、〆切に追われて出張先へ向かう飛行機の中で焦って本稿を書いています>_< |
| 18 | + |
| 19 | +私は2020年4月に新卒で入社し、一貫してシステムの構築~保守というシステム構築における王道パターンのキャリアを歩んできました。 |
| 20 | + |
| 21 | +しかし、昨年1年間は「データを駆使して仕事を進める」という少しいままでと色の違う経験をしました。この記事では、その中で得た知見や工夫した点を、「[春の入門祭り2025](/articles/20250413a/)」にあわせて共有します。 |
| 22 | + |
| 23 | +# データ分析の目的 |
| 24 | + |
| 25 | +当たり前ですが、データ分析の目的は「分析すること」ではなく「達成したい目的(課題)に対してデータの観点からアシストをすること」と捉えていますす。 |
| 26 | + |
| 27 | +クライアントが「〇〇したいが、何故かできない」のような状況の際に、データという観点からどのようなアシストができるのかを見つけるツールのようなイメージです。そのため、分析自体になにか価値があるというわけではなく、分析によって実現したいことへ近づけた際に初めて分析の価値が生まれます。 |
| 28 | + |
| 29 | +たとえば、スーパーを運営しているクライアントから「利益率を上げたいが、これ以上上がる見込みがない。投資する余力はあるが、どこに投資していいのかがわからない。」という相談を受けたとします。 |
| 30 | + |
| 31 | +そのとき、(スーパーのデータに全てアクセスできると仮定したとき)読者のあなたはどのような分析が出来るでしょうか? |
| 32 | + |
| 33 | +- 各レジの単位時間あたりの売上を見て、偏りがあれば偏らせないような施策を打つ |
| 34 | +- 廃棄している商品の割合を商品別に出し、廃棄が多い商品は早めに割引する施策を打つ |
| 35 | +- レジ員ごとの単位時間あたりの処理数を出し、効率が悪いレジ員はクビを(ry |
| 36 | + |
| 37 | +...などなど、データという観点から業務のボトルネックとなっている箇所を特定し、そこに対してなんらかのアプローチを打つことで利益率を上げることが出来るでしょう。 |
| 38 | + |
| 39 | +# データ分析による施策の効果見積もり |
| 40 | + |
| 41 | +また、データ分析はボトルネックの特定だけではなく、複数の施策案があったとき、どの施策がどの程度の効果があるかを見積もることもできます。 |
| 42 | + |
| 43 | +すごく簡単な例で例えると、「100人の従業員を今より2時間早く帰社させたときに、人件費はどれだけ削減出来るか?」という問いがあった際は、100人それぞれの時給単価×2時間を合計するような20行ほどのSQLを書けば分すぐに見積もることができます。 |
| 44 | + |
| 45 | +このように、現在の実績データをもとに、将来どの程度の効果がかるのかを見積もり数値化出来ることもデータ分析の面白いところかもしれません。 |
| 46 | + |
| 47 | +# 机上の空論と現場とのすり合わせ |
| 48 | + |
| 49 | +ここまでの話は、データ上のみの話で、いわば机上の空論です。 |
| 50 | + |
| 51 | +では、机上の空論による改善案を実際に現場に実行させようとするとどうなるでしょうか?現場からは非難の嵐になるでしょう。現場の実情は、データから見えることとは大きく違う可能性があります。 |
| 52 | + |
| 53 | +そのため、データによって出た案をまずは現場の方々に見せ、認識があっているかを事前にすり合わせます。現場の方々との感覚をすり合わせながら軌道修正した案を実行することで、現場の方々も納得しながら高い効果を発揮できるようになります。 |
| 54 | + |
| 55 | +# んで、実際に分析ってどうやるの? |
| 56 | + |
| 57 | +ここまでは、データ分析における前提や、進め方について記載しました。 |
| 58 | + |
| 59 | +- データ分析というものになんとなく興味があるが、実際なにをどうするのかイメージがついていない |
| 60 | +- とりあえずデータは手元にあり、なんか面白い分析をやってみたい |
| 61 | + |
| 62 | +...のような方に、超簡単にできるデータ分析のワザを記載します。 |
| 63 | + |
| 64 | +これを読んだら今日からあなたもデータ分析マスターです。 |
| 65 | + |
| 66 | +### 1.調査するデータの構造を理解する |
| 67 | + |
| 68 | +まずは、入口にして一番大事なところです。 |
| 69 | + |
| 70 | +最初にデータを扱う際は、まずデータの構造について自身が腹落ちするまで理解する必要があります。 |
| 71 | + |
| 72 | +最初に1から100まで完璧に理解をする必要はありませんが、最低でも主要テーブルと、主要テーブルの中のプライマリーキー、フォーリンキー(外部キー)、主要な属性項目については頭に叩き込んでおきましょう。また、カラム(横軸)だけではなく、レコード(縦軸)の発行の粒度についても理解が出来るとなお可です。 |
| 73 | + |
| 74 | +これらが十分に理解できたとき、データ分析を始める下地は十分整っていることでしょう。 |
| 75 | + |
| 76 | +### 2.実際にSQLで、調査したいデータを出力する |
| 77 | + |
| 78 | +前工程である程度テーブル構造について理解ができたら、まずは試しにデータを出してみましょう。 |
| 79 | + |
| 80 | +最初は簡単に、1つのトランをそのままselectしてくるのでも構いません(ただし、全selectはデータ量によっては障害を起こす可能性もあるのでlimit句や日付指定等で、過剰なデータを要求しないよう気をつけてください。) |
| 81 | + |
| 82 | +ただし、Excelは100万行程度までしか受け付けられないため、大きなデータのときはあらかじめ観点を絞って集約関数やウィンドウ関数等を用いてデータ量を圧縮してから出力しましょう。 |
| 83 | + |
| 84 | +### 3.Excelに貼り付けて、自由に分析する |
| 85 | + |
| 86 | +次は、A5ERやDBeaverなどのクライアントツールで出力された結果をコピーし、Excelにそのまま貼り付けます。 |
| 87 | +(今回は、適当に用意した表を用いて説明をします。) |
| 88 | + |
| 89 | +貼り付けた直後にCTRL+Tを押すとテーブルとなり、リボンのテーブルデザインから「ピボットテーブルで集計」を押してみましょう。 |
| 90 | + |
| 91 | +<img src="/images/20250508a/image.png" alt="image.png" width="594" height="278" loading="lazy"> |
| 92 | + |
| 93 | +<font color="gray">表をテーブルに変換</font> |
| 94 | + |
| 95 | +<img src="/images/20250508a/image_2.png" alt="image.png" width="806" height="519" loading="lazy"> |
| 96 | + |
| 97 | +<font color="gray">「ピボットテーブルで集計」を押し、ピボットテーブル化。 |
| 98 | + |
| 99 | +作成先をテーブルを新規シートではなく、表のすぐ右隣にしておくと便利。</font> |
| 100 | + |
| 101 | +そうすると準備完了です。ピボットテーブルで横軸・縦軸をそれぞれ設定し、「値」のところは適当な項目を設定し右クリックで「個数」「合計」など、好きなものを選択してもらえれば、自由に分析結果を出すことができます。 |
| 102 | + |
| 103 | +<img src="/images/20250508a/image_3.png" alt="image.png" width="945" height="579" loading="lazy"> |
| 104 | + |
| 105 | +<font color="gray">「種類」を列に、「年齢」を行にドラッグし、値を種類の個数とすると、犬と猫の年齢別の数が出てきます。</font> |
| 106 | + |
| 107 | +この例だとサンプルが少なすぎて傾向等は見えませんが、データ量が大きくなると相関やボリュームゾーンが見えてくるようになります。 |
| 108 | + |
| 109 | +最後に、グラフを出してみましょう。(性別のカラムを追加しました) |
| 110 | + |
| 111 | +今回は、犬と猫それぞれで性別にどのような偏りがあるかを見てみましょう。 |
| 112 | + |
| 113 | +<img src="/images/20250508a/image_4.png" alt="image.png" width="1200" height="775" loading="lazy"> |
| 114 | + |
| 115 | +<font color="gray">行を種類、列を性別とし、リボンの「ピボットグラフ」から「100%積み上げ縦棒」を選択すると、犬と猫それぞれの性別の割合を示すグラフが出てきます。</font> |
| 116 | + |
| 117 | +こうグラフ化することで、「犬はメスの割合が多いのか~」ということがわかると思います。 |
| 118 | +(※データは適当に作成したため、現実世界におけるオスメスの割合とは一致しません) |
| 119 | + |
| 120 | +さて、ここまでの分析操作ができれば、今日からあなたもクライアントや上司から一目置かれるデータ分析マスターです。 |
| 121 | + |
| 122 | +# おわりに |
| 123 | + |
| 124 | +今回は、入門者向けにデータ分析に関する簡単なやり方を記載してみました。 |
| 125 | + |
| 126 | +私も最初は「自分にデータ分析なんて出来るんだろうか」とモヤモヤしていましたが、やってみると楽しく、統計の勉強を進めるキッカケにもなったので、興味のある方は是非挑戦してみてください。 |
| 127 | + |
| 128 | +手元にデータがあれば、ぜひ簡単なところからデータ分析を始めてみませんか? |
0 commit comments