キャリアチェンジ/転職

業界別データ活用の実務テンプレ|小売・広告・製造・SaaSのKPI設計から打ち手まで

業界が変われば、KPI・データ粒度・運用はガラッと変わります。

本記事では小売/EC・広告/メディア・製造・IT/SaaSの4業界を横断し、「要件 → データ → 指標 → 打ち手」までを一気通貫で設計できる“実務テンプレ”として整理しました。
未経験の方は、ここから1業界を選んでPF(ポートフォリオ)化すれば、職務経歴書に直結します。

この記事で身につくこと

  • 業界別のKPIを 現場の言葉 で語れる

  • 最低限の スキーマ→特徴量→評価→ダッシュボード運用 の型を横展開できる

  • PF(ポートフォリオ)を意思決定に接続 する見せ方がわかる

>>【完全ガイド】データサイエンティストの仕事内容と必要スキル・年収
>>未経験からデータサイエンティストへ:6ヶ月ロードマップ【現役が解説】
>>【保存版】データ職のポートフォリオ完全ガイド|再現性・評価・LTまで
>>【保存版】モデル評価:指標の選び方・交差検証・閾値最適化・ビジネス接続を“実務の型”で解説
>>データ可視化レポート納品の型:Tableau/Matplotlib|“図3点+結論1行+運用”で伝わる・続く・刺さる
>>はじめてのSQL:SELECT/WHERE/GROUP BYを最短で理解【コピペOK】
>>【保存版】SQLite×Pythonで作る“ローカルDWH”——ETL・集計・レポート自動化の最短手順
>>コピペで動く需要予測|ARIMA×LightGBMでベースライン→運用まで
>>勤怠・売上の異常検知は設計が9割|SLOとRules→Stats→MLで“静かな監視”を作る

はじめに:業界を意識しない学習は“伝わらない”

Kaggle中心の学びは運用や意思決定への接続があいまいになりがち。
さらに、粒度(日次/セッション/ロット)や遅延(集計タイミング)を無視すると、せっかくの分析も現場で使えません。
鍵は、業界ごとのKPI・スキーマ・運用文脈に合わせて「要件→データ→指標→打ち手」を設計することです。

筆者メモ(ふみと)

大手でデータ/マーケサイエンティストを10年。採用側・伴走側の両方で感じるのは、刺さるPFは例外なく「業界のKPI言語で語り、再現可能で、意思決定(閾値/在庫/配信)まで踏み込む」ということ。本稿は、その“型”を圧縮して渡します。

この記事の使い方

各業界ごとに「代表課題とKPI → 最低スキーマ → 特徴量/モデル/評価 → ダッシュボード/運用 → PF雛形」の順でまとめます。
コードやSQLはそのままコピペで試せます。コードの前には 「このコードで何をしたいのか」 を明示しています。


小売/EC:需要×在庫は“誤差管理”から

代表課題とKPI:需要予測(MAE/WAPE)、在庫最適化(欠品率/在庫回転)、プロモ効果(Lift/粗利)、顧客価値(RFM/CLV)

最低スキーマ(例)

sales(tx_id, tx_date, store_id, sku_id, qty, price, promo_flag)
sku(sku_id, category, brand, size)
store(store_id, area, format)
calendar(date, wday, holiday, campaign)

まず何をしたい?(ねらい)

  • 欠品や過剰在庫を減らす ために、日次レベルで需要を外さない。
  • 安全在庫 を「μ + zσ」で設計し、目標欠品率 を業務の 閾値 に翻訳する。

特徴量/モデルの勘所

  • ラグ、移動平均、季節性、祝日、プロモ前後はまず効く
  • モデルは 軽量なツリー(LightGBM) や回帰で十分
  • 安全在庫:平均需要μ、需要の標準偏差σ、目標欠品率αに対応するz値で μ + zσ を設定

評価と運用(“誤差管理”)

  • 指標:MAE/WAPE(WAPEは絶対誤差の合計÷実績の合計)
  • 運用:誤差→閾値→発注提案 に落とす。週次ダッシュボードは「売上推移・欠品率・在庫日数」を1枚に。

SQL最小例(カレンダー結合で欠測を埋め、予測用ベースを作る)

このSQLでやりたいこと:全日×全店舗×全SKUの 穴埋めテーブル を作り、モデリングに使える日次データをそろえます。

SELECT c.date, s.store_id, sk.sku_id,
       COALESCE(SUM(sa.qty),0) AS qty
FROM calendar c
CROSS JOIN store s
CROSS JOIN sku sk
LEFT JOIN sales sa
  ON sa.tx_date=c.date
 AND sa.store_id=s.store_id
 AND sa.sku_id=sk.sku_id
WHERE c.date BETWEEN '2025-06-01' AND '2025-08-31'
GROUP BY 1,2,3;

PF雛形(需要予測)

  • 指標:MAE/WAPE、在庫欠品率
  • 成果翻訳:補充提案表(SKU×店舗×数量)在庫日数の変化
  • 構成:features/ train.py evaluate.py reports/ dashboards/ tests/

広告/メディア:配信最適化は“確率×費用対効果”

代表課題とKPI:配信最適化(CPA/ROAS)、クリエイティブ評価(CTR/CVR/Lift)、アトリビューション、予算配分(MMM)

最低スキーマ(例)

impression(impr_id, date, campaign, adgroup, creative, device, cost)
click(click_id, impr_id, date)
conv(conv_id, date, value, user_id)
creative_meta(creative, type, copy)

まず何をしたい?(ねらい)

  • 反応確率(クリック/コンバージョン) を学習し、コスト当たりの価値(ROAS/CPA) を最大化。
  • 予算や入札を スコア×閾値 に翻訳し、日次運用に落とす。

特徴量/モデルの勘所

  • 曜日/時間/デバイス/媒体の傾向を素直に学習
  • 反応確率は ロジスティック回帰 or ツリーモデル でOK
  • 評価は PR-AUC(陽性稀少時に有効)
  • MMMの入口は 単回帰 からで十分

SQL最小例(日×キャンペーンのROASを出す)

このSQLでやりたいこと:日次×キャンペーンの 広告費と成果(価値) をまとめ、ROAS を算出します。

SELECT i.date, i.campaign,
       SUM(c.value) / NULLIF(SUM(i.cost),0) AS roas,
       SUM(i.cost) AS spend
FROM impression i
LEFT JOIN click k ON k.impr_id=i.impr_id
LEFT JOIN conv c  ON c.date=i.date AND c.user_id IS NOT NULL
GROUP BY 1,2;

PF雛形(配信最適化)

  • 指標:PR-AUC/ROC、CPA/ROAS
  • 成果翻訳:閾値×入札の運用表、予算再配分案
  • 構成:notebooks/ model/ evaluate.py mmm_baseline.py dashboards/

製造:監視は“誤警報率×検出率”の設計から

代表課題とKPI:異常検知(誤警報率/検出率)、歩留まり(良品率/不良率)、予防保全(MTBF/停止時間)

最低スキーマ(例)

sensor(ts, line_id, machine_id, temp, vib, press)
lot(lot_id, start_ts, end_ts, result)
maintenance(machine_id, ts, work_type)

まず何をしたい?(ねらい)

  • 驚くべき変化を早く・静かに・正しく知らせる 監視を作る(“静かな監視”)。
  • 誤警報率(False Positive Rate) を設計値として持ち、Recall とのバランスをチューニング。

特徴量/モデルの勘所

  • 滑動窓の統計(平均/分散/偏度)、変化点、SPC(管理図)から導入
  • モデルは IsolationForest / One-Class SVM / ロジスティック など

Python最小例(窓統計)

このコードでやりたいこと:センサー値に 移動平均と移動標準偏差 を付与し、変化点の兆候 をとらえやすくします。

import pandas as pd
w = 60
df['temp_mean'] = df['temp'].rolling(w).mean()
df['temp_std']  = df['temp'].rolling(w).std()
  • rolling(w) は直近w点の窓をつくり、平均・標準偏差を計算
  • これらを しきい値監視(例:temp > temp_mean + 3*temp_std)に接続

PF雛形(異常検知)

  • 指標:PR-AUC、Recall@誤警報率
  • 成果翻訳:点検指示シート(時刻×機械×理由)想定停止削減
  • 構成:etl/ features/ monitor/ alert_rules.yaml tests/

IT/SaaS:解約は“スコア×施策”で動かす

代表課題とKPI:解約予測(Churn/Retention)、オンボーディング(Aha moment到達率)、料金最適化(ARPU/LTV)

最低スキーマ(例)

events(user_id, ts, event, props)
subscription(user_id, plan, start_ts, cancel_ts)
account(industry, size, region)

まず何をしたい?(ねらい)

  • 利用パターン(ファネル、利用間隔、機能回数)で解約リスクを可視化
  • スコア×施策(例:スコア>0.8→CS架電) に翻訳し、運用へ

特徴量/モデルの勘所

  • D1/D7アクティブ、主要機能の利用回数、直近利用からの経過日数
  • モデルは ロジスティック回帰/ツリー、評価は PR-AUC / Lift

SQL最小例(コーホート残存をつくる)

このSQLでやりたいこと:ユーザーの初回利用日を「コーホート」として束ね、日次の 継続(残存) を可視化します。

WITH first AS (
  SELECT user_id, MIN(DATE(ts)) AS cohort
  FROM events GROUP BY 1
), daily AS (
  SELECT e.user_id, DATE(e.ts) d, 1 AS active
  FROM events e GROUP BY 1,2
)
SELECT f.cohort, d.d, SUM(active) AS act
FROM first f JOIN daily d USING(user_id)
GROUP BY 1,2;

PF雛形(解約予測)

  • 指標:PR-AUC、Recall@閾値、Lift@Top10%

  • 成果の翻訳スコア>0.8→CS架電 の対象件数/期待CV

  • 構成features/ train.py evaluate.py cohort.ipynb dashboards/


共通:伝わるダッシュボードは“結論1行+図3点”

  • 結論1行:今週は需要が+8%/欠品-1.2pt。
  • 図3点:推移(折れ線)/分解(棒)/構成比(100%積上げ)。
  • 注釈:異常点に矢印+メモ、基準線で判断を速く。
  • 打ち手:在庫閾値+1日/予算を媒体Bへ+15%/解約スコア>0.8に架電。

ワンポイント:ダッシュボードは「決めるための1枚」。グラフは3つに絞り、結論→根拠→次の一手 の順で置くと、会議が早く終わります。

求人票の“翻訳表”:業界語→スキル/成果

業界語 裏にある仕事 書き換え(職務経歴書)
WAPE/MAE 需要予測の誤差管理 「MAE 12.4で在庫欠品率-0.8ptを実現」
ROAS/CPA 予算配分と配信最適化 「PR-AUC 0.73、閾値×入札でCPA-12%」
SPC/MTBF 製造の監視・保全 「誤警報5%でRecall0.65、停止時間-7%」
Retention/LTV SaaSの解約防止 「Lift@Top10% 2.1で架電対象を集中」

“伴走レビュー”で業界PFを仕上げよう

厳しめのレビューほど、PFは現場語になります。まずは無料カウンセリング/体験で、課題サンプルとレビュー基準に触れてみましょう。

TechAcademy データサイエンスコース(受講料:174,600円~ ※更に割引あり)

TechAcademy 無料相談

株式会社キカガク AI人材長期育成コース(受講料:237,600円~)

キカガク 無料相談

状況別の“勝ち筋”

  • 社会人(転職):現職に近い 1業界 を選び、KPIの言語でPF化
  • 副業目的:小売/広告の レポート自動化 を商品化(単価×稼働で回収)
  • 在宅中心SaaSの解約PF はローカルで完結しやすく、非同期レビューと相性◎

今日やること(60分)

  1. 業界を1つ選ぶ(現職に近いほど有利)。
  2. 上のスキーマを雛形に疑似データを作る(100日/1,000レコード程度)。
  3. 指標を決める(小売=MAE、広告=PR-AUC/CPA、製造=Recall@誤警報、SaaS=PR-AUC/Lift)。
  4. README雛形(目的/KPI/再現手順/結果/打ち手)を用意し、Makefile/pytest/CIまで作る。
  5. ダッシュボード図3点結論1行+打ち手を書く。

README雛形(コピペ可)

# 業界別PF(小売:需要予測)
## 目的/KPI
- 欠品率の低減、発注提案の自動化(MAE/WAPE)
## データ/スキーマ
- sales/sku/store/calendar(疑似データ生成スクリプト同梱)
## 再現手順
- `python -m pip install -r requirements.txt`
- `make all`(features→train→evaluate→report)
## 結果/打ち手
- MAE 12.4、補充提案で欠品率-0.8pt(試算)
## 限界/次の一手
- プロモ影響の分離/店舗クラスタ

付録:指標の超要約

  • MAE:平均絶対誤差。外れ値に比較的強い。
  • WAPE:総絶対誤差÷総実績。売上規模が違うSKUでも比較しやすい。
  • PR-AUC:陽性稀少時の分離性能(広告・解約予測で有効)。
  • Lift@k%:上位k%に絞った際の濃度。施策の“当てどころ”を見抜く。
  • Recall@誤警報率:製造の監視設計で重要。誤报警を抑えつつ取りこぼしを減らす。

この記事から次に読むべきもの

職務経歴書
【テンプレ&実例】未経験からでも通る職務経歴書:実務再現PF×定量化×ATS最適化

「未経験からデータ職に応募しても通らない…何を直せばいい?」 結論:履歴書でポテンシャル、職務経歴書で実務の再現性を示すのが王道です。 本記事は、採用側/伴走側の両視点から、1枚/2枚テンプレ、ATS ...

面接対策
面接でよく聞かれる質問50選と回答例(Python/DS職)|業務再現×指標×運用で刺さる答え方テンプレ

「精度は高いのに、面接で落ちるのはなぜ?」 採用側は“動く再現性”と“意思決定に繋げる説明”を見ています。 本記事では、採用側(評価者)としての実務経験をもとに、カテゴリ別50問の想定質問と**回答テ ...

ポートフォリオ
【保存版】データ職のポートフォリオ完全ガイド|再現性・評価・LTまで

ポートフォリオって「作ったものの置き場」でしょ? いいえ。採用側が見たいのは「意思決定に効いた証拠」と「再現性」です。 本ガイドは、未経験〜初学者が週10時間×4〜6週で、テーマ選定→要件定義→データ ...

需要予測
コピペで動く需要予測|ARIMA×LightGBMでベースライン→運用まで

現場でちゃんと当たる需要予測って、どこから始めればいい? ベースライン→検証→運用まで、一気通貫で進める“型”で解説します。 この記事は、ARIMAとLightGBMを使った需要予測ミニプロジェクトの ...

分析
勤怠・売上の異常検知は設計が9割|SLOとRules→Stats→MLで“静かな監視”を作る

異常検知は「驚きを、早く・静かに・正しく知らせる」ための仕組みづくり。 本記事は、勤怠/売上データの監視を“現場で使える形”に落とし込むための設計と実装テンプレをまとめました。結論から言うと、SLOを ...

データレポート納品
【保存版】データレポート納品の型:要件定義→ETL→検証→可視化→Excel/PDF→引き継ぎまで、失注しないワークフロー完全版

“いい分析”より“伝わる納品”。副業や実務で評価されるのは、意思決定に効く1枚と再現できるパッケージを期限通り出せること。 本記事は、未経験〜初学者が 週10時間×2〜3週 で、要件定義 → データ受 ...

最近のコメント

    • この記事を書いた人
    • 最新記事

    ふみと

    このブログでは、データサイエンティストとして市場価値を上げる方法を独自にまとめて発信しています。

    【プロフィール】
    ・大手企業データサイエンティスト/マーケティングサイエンティスト(10年、年収900万円台)/案件100件以上
    ・資格:JDLA E資格(日本ディープラーニング協会主催)/JDLA Community(CDLE会員)/Advanced Marketer/ビジネス統計スペシャリスト/統計検定2級/TOEIC 805
    ・スキル:Python/Tableau/SQL/機械学習/Deep Learning/RPA

    -キャリアチェンジ/転職