mcpField
P
people-analytics

people-analytics

github.com/borgheiデータ・データベース1.0k203 回インストール5 日前に更新
リポジトリ

people-analytics について

people-analyticsは、HRや事業チーム向けに、統計分析、セグメンテーション、データガバナンスを通じて人材データを業務上の洞察に変えるスキルです。離職リスク、賃金公平性、エンゲージメント、DEI指標を扱い、匿名化とバイアス確認を重視します。

主な機能

  1. 01離職と定着の指標を分析
  2. 02離職リスクと賃金公平性を評価
  3. 03エンゲージメント調査と要因を分析
  4. 04グループ別に分けてDEI指標を監視
  5. 05データ品質、プライバシー、モデルのバイアスを確認

活用シーン

  1. 01特定部門で離職率が高い原因を調べる
  2. 02従業員グループ間の賃金公平性を確認
  3. 03エンゲージメント調査から改善の優先領域を特定
  4. 04匿名性を保ちながら人材データを集計

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/borghei/claude-skills --skill people-analytics

インストール後、Claude Code で/people-analyticsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

scripts/
attrition_predictor.py
headcount_planner.py
survey_analyzer.py

詳細

ピープルアナリティクス

エージェントはシニアのピープルアナリティクスパートナーとして、統計モデリング、セグメンテーション分析、データガバナンスのベストプラクティスを活用し、人材データを実行可能なインサイトへと変換します。

まず確認する

分析を生成する前に、次の情報を確認してください。不明または曖昧な項目があれば、推測せずに質問してください。

  • ビジネス上の質問と成功指標 — 分析全体の枠組みを定めます(ステップ 1)。質問が曖昧だと、焦点の定まらない結果になります
  • 分析の種類(記述、離職リスク、賃金の公平性、またはエンゲージメント要因) — 手法と適用するスクリプトを選びます
  • 利用可能なデータソースと、その品質・完全性 — 実施可能な手法を決定します(ステップ 2)
  • セグメントとプライバシーのしきい値(最小グループサイズ) — セグメンテーションと適用する匿名化・集計方法を決定します

中断ルール:結果に最も大きく影響する 2~3 項目だけを質問してください。ユーザーが「とりあえず草案を作って」と言った場合は、そのまま進め、成果物の冒頭に前提を列挙してください。

ワークフロー

  1. 質問の枠組みを定める -- HR またはビジネスの関係者と、ビジネス上の質問を明確にします。例:「営業部門の離職率が全社平均の 2 倍なのはなぜか?」や「性別を問わず公平な賃金を支払っているか?」などです。分析の成功指標を定義します。
  2. データの準備状況を評価する -- 必要なデータソース(HRIS、ATS、アンケートプラットフォーム、給与データ)を特定します。完全性、最新性、品質を確認します。先に進む前に、不足があれば指摘します。
  3. 分析する -- アナリティクスツールキットから適切な手法(記述統計、回帰、分類、セグメンテーション)を適用します。前提と制約を文書化します。
  4. 調査結果を検証する -- 分野の専門家(HRBP、マネージャー)と結果の妥当性を確認します。統計的有意性と実務的有意性を検証します。予測モデルにおいて、保護対象グループ間でバイアスがないか確認します。
  5. 提案する -- 調査結果を、期待される効果とコストを含む、具体的で実行可能な 2~3 件の提案にまとめます。
  6. 提示してモニタリングする -- ダッシュボードのフレームワークを使ってインサイトを提示します。主要指標にしきい値アラートを設定し、継続的にモニタリングします。

チェックポイント:ステップ 2 の後、分析開始前に、プライバシーポリシーに準拠するよう、すべてのデータが匿名化または集計されていることを確認してください。

アナリティクス成熟度モデル

レベル名称能力代表的な質問
1オペレーショナルレポーティング従業員数、コンプライアンス、アドホッククエリ「従業員は何人いますか?」
2高度なレポーティングダッシュボード、傾向、ベンチマーキング、セグメンテーション「四半期ごとに離職率はどう変化していますか?」
3アナリティクス統計分析、相関、根本原因「営業部門の離職を引き起こす要因は何ですか?」
4予測離職予測、パフォーマンスモデリング、リスクスコアリング「今後 6 か月以内に退職する可能性が高いのは誰ですか?」
5処方的分析自動化された提案、リアルタイムの介入「この人を引き留めるには、何をすべきですか?」

人事の主要指標

人材指標
指標計算式ベンチマーク
離職率(離職者数 / 平均従業員数) x 10010-15%
定着率(在籍継続者数 / 期首従業員数) x 10085-90%
採用充足期間求人開始から内定承諾までの日数30-45 days
採用コスト採用総コスト / 採用人数$3-5K
残念な離職残念な離職者数 / 離職者総数< 30%
パフォーマンス指標
指標計算式ベンチマーク
ハイパフォーマー上位評価者の割合15-20%
目標達成率達成した目標 / 設定した目標80%+
昇進率昇進者数 / 従業員数8-12%
エンゲージメント指標
指標計算式ベンチマーク
eNPS推奨者の割合 % - 批判者の割合 %20-40
エンゲージメントスコアアンケートの合成スコア(1-100)70%+
欠勤率欠勤日数 / 勤務日数< 3%

離職予測モデル

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report

def build_turnover_model(employee_data: pd.DataFrame) -> dict:
    """
    Build and evaluate a turnover prediction model.

    Input: DataFrame with columns for features + 'left_company' (0/1).
    Output: dict with model, feature importance, and evaluation metrics.
    """
    features = [
        'tenure_months', 'salary_ratio_to_market', 'performance_rating',
        'months_since_last_promotion', 'manager_tenure', 'team_size',
        'engagement_score', 'training_hours_ytd', 'projects_completed'
    ]

    X = employee_data[features]
    y = employee_data['left_company']

    X_train, X_test, y_train, y_test = train_test_split(
        X, y, test_size=0.2, random_state=42, stratify=y
    )

    model = RandomForestClassifier(n_estimators=100, random_state=42)
    model.fit(X_train, y_train)

    y_pred = model.predict(X_test)
    report = classification_report(y_test, y_pred, output_dict=True)

    importance = (
        pd.DataFrame({'feature': features, 'importance': model.feature_importances_})
        .sort_values('importance', ascending=False)
    )

    return {'model': model, 'importance': importance, 'evaluation': report}


def score_flight_risk(model, current_employees: pd.DataFrame) -> pd.DataFrame:
    """
    Score current employees for flight risk.

    Returns DataFrame with employee_id, flight_risk_score (0-1), and risk_level.
    """
    probabilities = model.predict_proba(current_employees[model.feature_names_in_])[:, 1]

    risk_levels = pd.cut(
        probabilities,
        bins=[0, 0.25, 0.50, 0.75, 1.0],
        labels=['Low', 'Medium', 'High', 'Critical']
    )

    return pd.DataFrame({
        'employee_id': current_employees['employee_id'],
        'flight_risk_score': probabilities.round(3),
        'risk_level': risk_levels
    }).sort_values('flight_risk_score', ascending=False)

例:営業部門の離職に関する根本原因分析

QUESTION
  Sales voluntary turnover is 22% vs 12% company average. Why?

DATA
  Source: HRIS + engagement survey + exit interviews (n=45 exits, trailing 12 mo)

ANALYSIS
  Segmentation by tenure band:
    < 1 yr: 35% of exits (onboarding/ramp issues)
    1-2 yr: 40% of exits (comp dissatisfaction + career path)
    2+ yr: 25% of exits (manager relationship)

  Regression on exit survey scores (n=38 respondents):
    Top drivers of intent-to-leave:
      1. "I am paid fairly" (beta = -0.42, p < 0.01)
      2. "I see a career path here" (beta = -0.31, p < 0.01)
      3. "My manager supports my development" (beta = -0.28, p < 0.05)

  Compensation benchmark:
    Sales IC3 compa-ratio: 0.88 (12% below midpoint)
    Sales IC2 compa-ratio: 0.91 (9% below midpoint)
    Rest of company average: 0.98

FINDINGS
  1. Sales comp is significantly below market, especially at IC2-IC3
  2. No defined career ladder for Sales ICs beyond IC3
  3. New hires (< 1 yr) leaving due to unrealistic ramp expectations

RECOMMENDATIONS
  1. Market adjustment: Bring Sales IC2-IC3 to 95th percentile compa-ratio ($180K budget)
  2. Publish a Sales career ladder through IC5 with clear promotion criteria
  3. Redesign onboarding: extend ramp period from 30 to 90 days with milestone targets

EXPECTED IMPACT
  Reduce Sales attrition from 22% to 14-16% within 12 months
  ROI: $180K adjustment saves ~$450K in replacement costs (10 fewer exits x $45K/hire)

賃金の公平性分析

import pandas as pd
import statsmodels.api as sm

def analyze_pay_equity(employee_data: pd.DataFrame) -> dict:
    """
    Conduct pay equity analysis controlling for legitimate pay factors.

    Returns raw gap, adjusted gap, model fit, and employees flagged for review.
    """
    # Raw gap
    avg_by_gender = employee_data.groupby('gender')['salary'].mean()
    raw_gap = (avg_by_gender['Female'] - avg_by_gender['Male']) / avg_by_gender['Male']

    # Adjusted gap (control for level, tenure, performance, location)
    controls = pd.get_dummies(
        employee_data[['job_level', 'tenure_years', 'performance_rating', 'department', 'location']],
        drop_first=True
    )
    controls = sm.add_constant(controls)
    controls['is_female'] = (employee_data['gender'] == 'Female').astype(int)

    model = sm.OLS(employee_data['salary'], controls).fit()
    adjusted_gap = model.params['is_female']

    # Flag outliers (residual > 2 std dev)
    employee_data['predicted'] = model.predict(controls)
    employee_data['residual'] = employee_data['salary'] - employee_data['predicted']
    threshold = 2 * employee_data['residual'].std()
    flagged = employee_data[abs(employee_data['residual']) > threshold]

    return {
        'raw_gap_pct': round(raw_gap * 100, 1),
        'adjusted_gap_usd': round(adjusted_gap, 0),
        'model_r_squared': round(model.rsquared, 3),
        'employees_flagged': len(flagged),
        'flagged_details': flagged[['employee_id', 'salary', 'predicted', 'residual']]
    }

エンゲージメント調査の分析

  1. 回答率を算出する -- 統計的な妥当性を確保するため、80%以上を目標にします。60%未満の部門にはフラグを付けます。
  2. カテゴリ別スコアを算出する -- カテゴリ(マネージャー、成長、文化、報酬)ごとにリッカート尺度の回答を平均します。前回の調査期間と比較します。
  3. ドライバー分析を実施する -- カテゴリ別スコアを全体的なエンゲージメントに対して回帰分析し、エンゲージメントへの影響が最も大きいカテゴリを特定します。
  4. セグメント化する -- 部門、職位、勤続年数の区分、勤務地別に結果を分類します。スコアが会社平均から最も乖離している箇所を特定します。
  5. 優先順位を付ける -- カテゴリを2×2マトリックス(影響度とスコア)にプロットします。「影響度が高く、スコアが低い」象限を優先的な対応領域とします。

チェックポイント:匿名性を保護するため、回答者が5人未満のセグメントの結果は表示しないでください。

DEI 指標のフレームワーク

領域指標データソース
人員構成職位別の性別/民族構成HRIS
賃金の公平性未調整の格差、調整後の格差(統制変数を用いた回帰分析)給与システム+HRIS
昇進属性グループ別の昇進率HRIS
採用属性グループ別の内定率と承諾率ATS
インクルージョンインクルージョン指数、帰属意識スコア、心理的安全性調査

データガバナンスのチェックリスト

人材分析プロジェクトを開始する前に、以下を確認してください。

  • ビジネス上の問いと目的が明確に文書化されている
  • データの最小化を適用している(必要なデータのみを収集する)
  • プライバシー影響評価が完了している
  • 可能な場合は匿名化または集計を適用している
  • 予測モデルについて、保護対象グループ間のバイアスをテストしている
  • 役割ベースのアクセス制御を実装している
  • データ保持ポリシーを定めている
  • 従業員への情報提供を計画している(透明性の原則)

スクリプト

# Analyze engagement survey results with driver analysis
python scripts/survey_analyzer.py --file survey_results.csv
python scripts/survey_analyzer.py --file survey_results.csv --prior prior_survey.csv --json

# Score attrition risk from employee data
python scripts/attrition_predictor.py --file employees.csv
python scripts/attrition_predictor.py --file employees.csv --threshold 0.7 --json

# Workforce headcount planning calculations
python scripts/headcount_planner.py --file workforce.csv --growth 0.15 --attrition 0.12
python scripts/headcount_planner.py --file workforce.csv --growth 0.15 --attrition 0.12 --json

トラブルシューティング

問題根本原因解決策
調査の回答率が低い(< 70%)調査疲れ、匿名性への不信感、または過去の調査結果に対する目に見える対応がない調査を最大15~20問に短縮します。匿名性を守る措置を明確に伝えます。次の調査を開始する前に、前回の調査で得られた上位3つの結果を公開し、それに基づいて対応します
離職予測モデルで偽陽性が多すぎる過去のデータへの過学習、重要な特徴量の欠落、またはクラス不均衡正則化を追加します。不均衡にはSMOTEまたはクラス重みを使用します。訓練データとテストデータの分割だけでなく、交差検証で検証します。マネージャーの質と報酬比率を特徴量に含めます
ステークホルダーが分析結果を信頼しない結果が実体験と矛盾している、または手法が不透明分析手法を透明性をもって説明します。公開前に人事ビジネスパートナーと結果を検証します。点推定ではなく信頼区間を使用します。予測分析の前に記述分析から始め、信頼を築きます
HRIS のデータソース間でデータ品質に問題があるコードの不統一、フィールドの欠落、古いレコード、または重複エントリーデータガバナンス評議会を設置します。各フィールドのデータ所有者を定めます。四半期ごとにデータ品質監査を実施します。データ取り込み時に自動検証チェックを構築します
プライバシー上の懸念により分析が進まない匿名化が不十分、同意の枠組みがない、または法規制への対応に不備があるk-匿名性(グループの最小人数を5人とする)を適用します。各プロジェクトの前にプライバシー影響評価を実施します。早い段階で法務部門に相談します。個人単位のデータが不要な場合は集計データを使用します
施策を実施してもエンゲージメントスコアが横ばい測定しているドライバーが適切でない、アクションプランが実行されていない、または調査が一般的すぎるドライバー分析を実施し、影響度が高くスコアが低い領域を特定します。四半期ごとの確認を含め、対応責任者を割り当てます。部門や職能に応じて調査項目を調整します
経営陣が知見に基づいて行動しない知見が学術的すぎる、ビジネス上の説明が不足している、または提供が遅すぎるまずビジネスへの影響(収益、コスト、リスク)を示します。責任者と期限を明確にした提言を2~3件に絞ります。データ収集から2週間以内に知見を提供します

成功基準

項目指標目標測定方法
データ品質HRIS データの完全性必須フィールドの 95% 超が入力済み四半期ごとのデータ監査レポート
データ品質データの鮮度すべてのレコードが 30 日以内に更新済みHRIS の最終更新日時
導入状況ダッシュボードの関係者による利用HRBP と VP の 70% 超が毎月アクセスダッシュボードの分析/ログイン追跡
導入状況インサイトからアクションへの移行率推奨事項の 60% 超が施策につながる推奨事項の成果を四半期ごとに追跡
精度離職予測の適合率再現率 50% で適合率 70% 超実績値に対するモデル評価(6 か月の遅延)
精度アンケート要因分析の妥当性上位 3 要因を定性的データで検証退職時インタビューやフォーカスグループとの照合
効果後悔を伴う離職の削減介入から 12 か月以内に 10~20% 削減HRIS の自己都合退職データ、後悔を伴う離職のフラグ
効果質問からインサイトを得るまでの期間標準的な分析で 2 週間未満リクエストから納品までの追跡
コンプライアンスプライバシーインシデント匿名性のしきい値の侵害ゼロすべてのクエリの監査ログ、最小グループサイズの適用
成熟度分析成熟度レベルの進捗12~18 か月ごとに 1 レベル向上Analytics Maturity Model に照らした自己評価

対象範囲と制限事項

対象範囲:

  • 人員構成に関する記述的分析:従業員数、離職率、定着率、人口統計、勤続期間の分布
  • エンゲージメント調査の設計、分析、要因の特定、ベンチマーク
  • ルールベースおよび統計的手法による離職リスクのスコアリング(標準ライブラリのみ)
  • 賃金公平性分析:未調整格差、調整済み格差、外れ値のフラグ付け
  • DEI 指標:構成比、昇進率、採用ファネルの公平性
  • 人員計画:従業員数の予測、シナリオモデリング、ギャップ分析
  • ダッシュボード設計と KPI フレームワークの推奨

対象範囲外:

  • ML フレームワーク(scikit-learn、TensorFlow)を必要とするリアルタイム予測モデル -- スクリプトでは移植性を高めるため、ルールベースのスコアリングを使用します
  • 自由記述式のアンケート回答の感情分析(NLP ライブラリが必要です)
  • 従業員個人のプロファイリングや監視 -- すべての分析で集計データまたは匿名化データを使用します
  • HRIS システム管理、データパイプラインエンジニアリング、ETL 開発
  • 賃金公平性に関する調査結果の法的解釈(雇用法の弁護士が必要です)
  • メール/カレンダーのメタデータを必要とする組織ネットワーク分析

既知の制限事項:

  • スクリプトでの離職リスクのスコアリングには、学習済み ML モデルではなく重み付きヒューリスティックを使用します。精度は特徴量の品質と重みの調整に左右されます
  • SKILL.md の例での賃金公平性分析には statsmodels が必要です(外部依存関係)。スクリプトでは標準ライブラリによる近似を使用します
  • アンケート分析では、リッカート尺度(1~5)の回答を想定しています。それ以外の形式では前処理が必要です
  • 人数の少ないセグメント(30 人未満)では統計結果の信頼性が低くなるため、レポートでフラグを付けてください
  • 過去データのバイアス(例:偏りのある業績評価)は、対処しない場合、予測モデルにも引き継がれます

統合ポイント

システム/スキル統合内容データフロー
HRIS(Workday、BambooHR、HiBob)従業員のマスターデータ、勤続年数、報酬、業績評価HRIS -> 分析データレイク;分析インサイト -> HRBP の人員計画
ATS(Greenhouse、Lever)採用ファネルデータ、採用経路、採用までの期間ATS -> 採用分析;採用の質のスコアリングを TA 戦略にフィードバック
アンケートプラットフォーム(Culture Amp、Qualtrics、Lattice)エンゲージメント調査の回答、eNPS、パルスチェックデータアンケートプラットフォーム -> survey_analyzer.py;要因分析 -> アクションプランニング
タレントアクイジションスキル採用ファネル指標、採用経路の有効性、採用の質TA パイプラインデータ -> 分析モデル;分析インサイト -> 採用経路の最適化
HR ビジネスパートナースキル人員計画の入力情報、組織の健全性スコア、定着戦略分析インサイト -> HRBP の提案;HRBP の質問 -> 分析プロジェクト
オペレーションマネージャースキル人員数の予測、キャパシティプランニング、生産性指標オペレーション需要予測 -> headcount_planner.py;人員指標 -> オペレーションのキャパシティモデル
ファイナンススキル報酬予算、コストモデリング、人員数の予算と実績ファイナンスの報酬データ -> ペイエクイティ分析;人員計画 -> ファイナンス予算モデル
給与計算(ADP、Gusto)報酬の実績、ボーナス支給、時間外労働データ給与計算 -> 報酬分析;ペイエクイティの調査結果 -> 報酬調整の提案
BI プラットフォーム(Tableau、Looker、Power BI)ダッシュボードのホスティング、セルフサービス分析、定期レポート分析結果 -> BI ダッシュボード;BI 利用指標 -> 導入状況の追跡

コメント