1.言いたいコト
ワークエンゲージメントスコアを向上させるには、アンケートを実施するだけでは不十分です。アンケートを分析して、効果的な施策を見つけることが、エンゲージメント向上の第一歩です。
この記事では重回帰分析を用いて、アンケートを分析し、ワークエンゲージメントスコア向上には、どんな打ち手を取るべきかを考えてみたいと思います。
大変なコストをかけて、アンケートを実施しても、全体的な傾向分析や単なる時系列比較になっていませんか?
アンケートには目的があると思います。例えば、会社であれば、組織を良くするために、アンケートを実施するのだと思います。
尊敬する杉山聡さんがワークエンゲージメントを分析しているという記事を読みました。
ワークエンゲージメントを向上するのであれば、どのような施策が効果的かを分析して、着実に成果に結びつけることが大切であると考えます。
アンケート結果を重回帰分析することで、具体的な施策を考えるケースを考えてみたいと思います。なお、本物のデータを使って、分析したかったのですが、大人の事情があり、ダミーデータを用いました。
2.前提
A社とB社にて、アンケートを100人に実施したものと仮定します。アンケート項目は、5つです。以下のアンケート項目を想定し、それぞれ、5段階で評価してもらいます。(1が最もネガティブな評価で、5が最もポジティブな評価です。)
1.あなたが所属する組織のチームワークは良いですか。
2.あなたの上司は信頼できますか。
3.あなたは給与水準に満足していますか。
4.あなたの会社の福利厚生は充実していますか。
5.あなたは、会社に満足していますか。
上記のアンケート項目は、以下のように略すこととします。
1.チームワーク
2.上司への信頼感
3.給与レベル
4.福利厚生の充実度
5.会社への満足度
ダミーデータを用いて、A社とB社について分析してみることにしましょう。
分析に当たっては、重回帰分析を用います。
重回帰分析は、「1つの目的変数」と「複数の説明変数」との関係を分析する手法です。
ワインの価格は以下の価格で求まるという研究成果もあります。
ワイン価格 = 前年10月~3月の降水量 * 0.0017 - 8,9月の降水量 * 0.00386 + 4 ~9月の平均気温 * 0.616 + ワインの年齢 * 0.02358 - 12.145
Pythonを使って、重回帰分析をする場合、3種類(A.statsmodels、B.scikit-learn、C.numpy)の方法がありますが、ここでは、A.statsmodelsを使います。
3.ケース・スタディ1:A社のケース
まず、A社のダミーデータを使って、アンケート結果を分析してみましょう。
pandasを使って、ダミーデータを読み込みます。
import pandas as pd
df_A=pd.read_csv('dummy_data_A.csv')
df_A.head()
さて、いよいよ、分析です。重回帰分析には、statsmodelsを使いますので、まず、importします。
import statsmodels.api as sm
今回は「会社への満足度」が目的変数です。それ以外が、説明変数ですので、説明変数だけを抽出します。
#目的変数以外を説明変数として抽出
X_A = df_A[df_A.columns[:-1]]
重回帰式に定数項も入れたいので、追加します。
#定数項を追加
X_A = sm.add_constant(X_A)
「会社への満足度」を目的変数として設定します。
#目的変数を設定
y_A = df_A['会社への満足度']
モデルを設定します。
OLSは「Ordinary Least Squares(最小二乗法)」の略称で、回帰分析でよく用いられる手法です。データセットにおける観測値とモデルによる予測値の差の二乗和を最小化することで、モデルのパラメータを推定します。
#モデルを生成(OLSは最小二乗法)
model_A = sm.OLS(y_A,X_A)
モデルを適用して、結果を表示します。
#モデルを適用
result_A = model_A.fit()
#結果を表示
result_A.summary()
結果は、以下の通りです。
| Dep. Variable: | 会社への満足度 |
|-------------------:|-----------------------:|
| R-squared: | 0.656 |
| Model: | OLS |
| Adj. R-squared: | 0.642 |
| Method: | Least Squares |
| F-statistic: | 45.33 |
| Date: | Mon, 17 Jul 2023 |
| Prob (F-statistic):| 3.04e-21 |
| Time: | 14:47:52 |
| Log-Likelihood: | -91.502 |
| No. Observations: | 100 |
| AIC: | 193.0 |
| Df Residuals: | 95 |
| BIC: | 206.0 |
| Df Model: | 4 |
| Covariance Type: | nonrobust |
| | coef | std err | t | P>|t| [0.025 0.975] |
|------------------:|----------:|----------:|----------:|------:|----------------------:|
| const | 1.2673 | 0.376 | 3.371 | 0.001 | 0.521 2.014 |
| チームワーク | 0.4423 | 0.078 | 5.692 | 0.000 | 0.288 0.597 |
| 上司への信頼感 | 0.4592 | 0.087 | 5.296 | 0.000 | 0.287 0.631 |
| 給与レベル | 0.0014 | 0.102 | 0.014 | 0.989 | -0.202 0.204 |
| 福利厚生の充実度 | 0.0299 | 0.098 | 0.305 | 0.761 | -0.164 0.224 |
| Omnibus: | 1.660 |
| Prob(Omnibus): | 0.436 |
| Jarque-Bera (JB): | 1.637 |
| Skew: | -0.301 |
| Prob(JB): | 0.441 |
| Kurtosis: | 2.825 |
| Cond. No. | 45.8 |
ダミーデータなので、調整済み決定係数も0.642と、まずまずです。
重回帰式で表すと、以下の通りです。
会社への満足度 = チームワーク * 0.4423 + 上司への信頼感 * 0.4592 + 給与レベル * 0.0014 + 福利厚生の充実度 * 0.0299 + 1.2673
重回帰式から分かることは、A社の場合、「会社への満足度」を向上させるためには、「チームワーク」や「上司への信頼感」といったソフト面のテコ入れが重要だということです。
4.ケース・スタディ2:B社のケース
次に、B社のダミーデータを使って、アンケート結果を分析してみましょう。
ケース・スタディ1と同様に、pandasを使って、ダミーデータを読み込みます。
df_B=pd.read_csv('dummy_data_B.csv')
df_B.head()
データは、下のようになっています。
前回同様、statsmodelsを使って、重回帰分析します。
やっていることは同じですので、説明は省略します。コメントを参照してください。
#目的変数以外を説明変数として抽出
X_B = df_B[df_B.columns[:-1]]
#定数項を追加
X_B = sm.add_constant(X_B)
#目的変数を設定
y_B = df_B['会社への満足度']
#モデルを生成(OLSは最小二乗法)
model_B = sm.OLS(y_B,X_B)
#モデルを適用
result_B = model_B.fit()
#結果を表示
result_B.summary()
結果は、以下の通りです。
| Dep. Variable: | 会社への満足度 |
|-------------------:|-----------------------:|
| R-squared: | 0.713 |
| Model: | OLS |
| Adj. R-squared: | 0.701 |
| Method: | Least Squares |
| F-statistic: | 59.03 |
| Date: | Mon, 17 Jul 2023 |
| Prob (F-statistic):| 6.08e-25 |
| Time: | 14:50:38 |
| Log-Likelihood: | -81.513 |
| No. Observations: | 100 |
| AIC: | 173.0 |
| Df Residuals: | 95 |
| BIC: | 186.1 |
| Df Model: | 4 |
| Covariance Type: | nonrobust |
| | coef | std err | t | P>|t| [0.025 0.975] |
|------------------:|----------:|----------:|----------:|------:|----------------------:|
| const | -0.6750 | 0.345 | -1.958 | 0.053 | -1.359 0.009 |
| チームワーク | 0.1303 | 0.074 | 1.759 | 0.082 | -0.017 0.277 |
| 上司への信頼感 | 0.0208 | 0.076 | 0.273 | 0.785 | -0.130 0.172 |
| 給与レベル | 0.3416 | 0.080 | 4.244 | 0.000 | 0.182 0.501 |
| 福利厚生の充実度 | 0.6027 | 0.077 | 7.844 | 0.000 | 0.450 0.755 |
| Omnibus: | 0.205 |
| Prob(Omnibus): | 0.902 |
| Jarque-Bera (JB): | 0.345 |
| Skew: | -0.091 |
| Prob(JB): | 0.842 |
| Kurtosis: | 2.778 |
| Cond. No. | 46.8 |
今回も、ダミーデータなので、調整済み決定係数も0.701と、まずまずです。
重回帰式で表すと、以下の通りです。
会社への満足度 = チームワーク * 0.1303 + 上司への信頼感 * 0.0208 + 給与レベル * 0.3416 + 福利厚生の充実度 * 0.6027 - 0.6750
重回帰式から分かることは、B社の場合、「会社への満足度」を向上させるためには、「給与レベル」や「福利厚生の充実度」といったハード面のテコ入れが重要だということです。(特に、福利厚生を充実させることが望まれますね。)
5.まとめ
ダミーデータを使って、A社とB社を分析してみました。
重回帰分析を用いることで、「会社への満足度」を向上させるため、A社では「チームワーク」や「上司への信頼感」といったソフト面のテコ入れが、B社では「給与レベル」や「福利厚生の充実度」といったハード面のテコ入れが、重要だと分かりました。
アンケートは分析して、そして、具体的な施策を実施して、さらに、目的を達成して、ナンボの世界です。近時、ワークエンゲージメントを向上するため、各社でアンケートが実施されていると思いますが、それらを具体的な施策に結びつけ、成果を出すために、データ分析が有効です。
採るべき施策は、会社ごと、組織ごとに、異なると思います。どんな施策が有効なのかを見極める上で、アンケートの重回帰分析を活用してみて下さいね。
6.最後に
今回も、Chat-GPTには、大変、お世話になりました。自分自身の生産性が倍になったイメージです。本当に素晴らしい時代になったと思います。
ワークエンゲージメントについての示唆を頂きました杉山聡先生には、この場を借りて、お礼を申し上げます。
ワークエンゲージメントWork Engagement って頭字語にすると、WE つまり、「私たち」なのですね。他人事とはせず、自分たち事として、とらえていきたいなって思いました。
参考までに、ダミーデータも載せておきます。
dummy_data_A.csv
チームワーク,上司への信頼感,給与レベル,福利厚生の充実度,会社への満足度
3,5,4,4,5
4,5,3,2,5
5,5,4,4,5
4,4,5,5,5
1,3,3,4,2
2,3,5,5,3
4,4,4,4,5
3,3,3,3,5
4,2,5,5,4
5,5,4,5,5
5,5,5,5,5
5,5,4,4,5
4,5,3,3,5
3,4,5,5,5
4,4,5,4,5
5,5,4,3,5
2,3,4,3,4
5,5,3,3,5
3,2,4,3,4
3,4,5,4,5
3,3,5,5,5
4,3,4,3,5
2,2,3,4,3
3,4,3,5,5
2,3,4,4,4
3,4,5,5,4
3,4,5,5,5
3,3,5,5,4
2,2,5,4,3
1,3,5,5,2
3,4,3,4,5
2,4,3,4,4
3,3,5,5,5
3,4,5,5,5
5,5,3,4,5
2,2,2,3,3
2,1,5,4,2
2,2,4,3,3
2,2,5,5,3
1,1,4,3,1
3,4,5,5,5
4,4,5,5,5
3,4,3,3,5
3,4,5,5,5
2,3,3,3,5
1,3,4,5,3
3,4,4,4,5
3,4,5,5,5
4,4,4,4,5
4,4,4,4,5
3,4,5,5,5
2,5,3,4,5
1,2,2,2,3
3,4,3,3,5
2,1,5,3,2
3,3,5,4,5
3,4,4,4,4
3,4,3,3,5
3,3,3,4,5
2,4,3,4,5
5,5,5,5,5
1,3,5,5,3
4,3,5,5,5
2,3,3,2,4
2,3,4,5,5
3,2,4,3,4
2,3,5,5,3
3,5,4,4,5
3,4,5,5,5
2,4,4,5,4
4,4,4,3,5
4,5,5,5,5
4,3,5,5,5
4,4,3,3,5
3,3,5,3,5
1,2,4,3,2
4,3,5,5,5
1,2,3,4,1
2,3,5,5,4
4,3,5,4,5
4,4,4,4,5
3,3,2,2,4
3,3,4,4,4
2,3,5,4,3
3,3,5,5,4
3,3,4,4,4
4,4,3,3,5
3,4,4,3,5
2,4,5,5,5
1,3,4,4,3
3,5,4,3,5
3,3,4,3,5
2,3,2,2,3
2,2,5,3,3
2,3,4,3,3
2,4,2,2,4
2,3,4,3,3
3,4,3,3,5
4,4,5,4,5
3,4,3,3,5
dummy_data_B.csv
チームワーク,上司への信頼感,給与レベル,福利厚生の充実度,会社への満足度
3,4,4,5,4
4,3,3,3,4
4,5,5,4,3
3,4,4,5,5
3,3,4,3,3
3,5,4,3,3
4,4,5,5,4
3,5,4,5,4
4,4,2,4,3
2,5,5,5,5
5,5,5,5,5
2,3,5,5,5
2,4,3,4,3
4,5,3,3,3
2,2,4,4,3
4,5,4,3,3
3,4,5,5,4
4,4,3,4,3
4,4,2,1,1
4,4,4,5,4
3,4,4,4,4
3,3,4,3,3
3,3,5,4,4
3,3,4,4,4
4,4,4,2,1
4,4,5,5,5
3,4,4,5,4
4,4,4,4,4
1,2,3,2,2
2,3,5,5,4
1,3,5,5,4
2,4,4,5,3
3,4,5,5,4
4,5,5,4,5
3,4,5,4,4
1,1,5,5,4
2,2,5,4,3
3,3,5,3,4
3,3,5,4,4
5,4,3,3,3
1,2,5,5,5
4,5,4,3,3
5,5,4,4,3
2,4,5,5,4
2,2,5,5,5
3,3,5,5,4
2,3,5,4,3
4,4,5,5,5
2,4,3,3,2
4,4,5,5,4
3,3,4,4,3
2,3,5,5,5
2,1,4,5,4
3,4,4,3,3
3,2,5,4,4
4,5,4,5,4
3,4,4,3,3
2,3,5,5,4
1,2,4,5,4
4,3,3,3,3
5,5,4,3,3
2,2,3,3,2
4,4,5,5,4
3,4,3,4,4
3,3,4,3,2
2,4,4,5,5
4,5,5,4,5
4,4,5,5,5
3,4,1,1,1
2,3,2,2,2
4,3,5,4,5
3,3,2,3,2
2,3,3,4,3
3,4,5,5,5
4,4,3,3,2
3,3,4,5,5
3,4,4,4,4
5,5,4,4,4
3,4,4,3,4
5,5,5,5,5
3,3,5,5,4
2,4,3,4,3
3,3,4,4,4
1,2,4,4,3
3,4,4,4,4
2,3,2,2,1
3,3,5,4,4
3,4,5,5,4
3,4,5,3,3
2,2,5,5,4
4,3,4,4,4
3,4,3,2,3
4,3,2,3,3
3,3,2,3,1
4,3,5,5,4
2,2,4,3,3
4,4,5,5,5
3,5,4,3,3
3,4,5,4,4
3,3,4,3,3