人事データ担当の究極の目的!今、あなたの組織に最も重要ことは何かを調べる方法(のとっかかり)
以前の記事で書いたように「今、自分の組織に最も重要ことは何か?」この極めて重要で答えのない問いに挑戦することが人事データ分析担当の究極の目的です。
この難解な問いに簡単に答えをだすことはできませんが、そのとっかりになる2つの方法を紹介します。
ベイジアン ネットワークを用いた因果推論
統計学による因果関係の因果推論です。
環境
言語:R言語
環境:Jupyter Labなど
利用するライブラリ:
私の場合はGoogle Cloud Vertex AI Workbenchを利用しましたが、R言語が実行できる環境であればどこでも実行できるはずです。
なお、Vertex AI WorkbenchでR言語を使う場合は次のとおり少し設定が必要です。
分析
まず、bnlearnをインストールします。Rのバージョンが古い場合は古いバージョンをインストールする必要があります。
install.packages("bnlearn")
# Rのバージョンが古い場合は、Rのバージョンにあわせて次のように古いバージョンをインストールする
# install.packages("https://cran.r-project.org/src/contrib/Archive/bnlearn/bnlearn_4.9.tar.gz", repos = NULL, type = "source")
データは組織サーベイ、人事評価など、因果関係を分析したいものをあらかじめ紐づけておきます。
そのうえで、データの前処理が必要になります。nullの変換(0にしたり、平均値にしたりする)、カテゴリカル変数の因子への変換、回答のない項目を削除などがデータの前処理です。
# ファイルの読み込み
your_data <- read.csv("your_data.csv")
head(your_data)
# nullを0に変換
your_data[is.na(your_data)] <- 0
# 因子型に変換
your_data <- data.frame(lapply(your_data, as.factor))
# すべて0(回答なし)の列を削除
your_data <- your_data[ , colSums(your_data != 0) > 0]
データの前処理ができたら、次のように実行して分析します。
library(bnlearn)
#山登り法でDAGを作成
dag <- hc(your_data)
#当てはまりの良さを確認
score(dag, data = your_data, type = "bic")
#どのようなアークができているか確認
modelstring(dag)
できあがったベイジアン ネットワークを可視化するためにライブラリを追加します。
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("Rgraphviz")
可視化をする際には、サイズの調整をするとみやすくなります。
library(Rgraphviz)
# Rのオプションでグラフサイズを設定
options(repr.plot.width = 30, repr.plot.height = 30)
#可視化
graphviz.plot(dag, fontsize=200)
説明可能AIを使った影響度分析
専門家が顔をしかめそうな使い方ですが、簡単に示唆が得られるのでご紹介します。
多くの場合、機械学習やAIによる予測は、なぜその結果になるのか説明できません。しかし、説明可能AIは、各説明変数が目的変数の予測にどのくらい影響したのかを説明できます。
さらに、データを用意すれば誰でも予測モデルをつくれるAutoMLというものがあります。
例えば、人事評価の結果を目的変数にし、従業員の属性、組織サーベイや研修受講データを説明変数にして、AutoMLで人事評価の予測モデルをつくります。
そして、説明可能AIを用いると、各説明変数が目的変数である人事評価の結果にどのくらい影響しているかがわかります。ただし、次のとおり、あくまで、作成した予測モデルにおける影響度です。そのため、厳密には項目間の関係性分析にはならないのですが、その予測モデルの精度が十分であれば、分析のとっかかりであったり、思考の道具としては参考になると思います。
以下にGoogle CloudのVertex AI AutoMLで分析する方法を簡単に示します。
データの準備
データの準備のポイントは、データ量です。次の記載のとおり、列数の50倍以上の行数が必要です。
その他の前処理は自動で処理してくれるので、気にしなくてかまいません。次の手順のとおり、データセットを作成します。このとき、「回帰」を選択します。
トレーニング
目的変数をターゲット列に指定する以外は概ねデフォルトでかまいません。推奨されるトレーニング時間にしたがってトレーニング時間を設定して、トレーニングを開始します。
モデルの評価
予測モデルをつくることが目的ではありませんが、モデルの精度が低いと参考にならないので、評価は必要です。
r^2スコアが最低でも0.5なければつかえないと思ってください。データが不足しています。MAEで平均絶対誤差がわかるので、平均してこのくらい数値がずれる(外れる)と考えてモデルの良し悪しを評価してください。
評価がそれなりであれば、項目ごとの影響度(importance)を確認します。最初に述べたように、あくまで参考として、ここを起点に思考や定性情報の収集をしてください。