アンケートを相関分析して、打ち手を見つけよう！

# １．言いたいこと
アンケートを相関分析することで、課題解決に対して、注力すべき施策が絞り込める（かもしれません）。

# ２．話の「まくら」　
データ分析は面白いですよね。新しい世界が広がります。

例えば、野球。
昔は「4番でピッチャー」が最高でした。でも、大谷選手が2番を打っているように、今や、最強バッターは4番バッターではなく2番バッターになりました。これは、野球の常識がデータを分析することで変わったことを示していると思います。

データ分析の一つに、相関分析があります。
Chat-GPTに聞いてみたところ、以下のように説明してくれました。

> 相関分析は、2つ以上の変数間の関連性を調べる統計手法です。データを集め、それらの変数がどれだけ一緒に変化するかを測定し、相関係数によって強度と方向を示します。相関が高い場合、1つの変数が増加すると他の変数も増加する可能性が高くなります。逆に、相関が低い場合は、2つの変数間には関連がほとんどないと言えます。

必然か、偶然か、についても、相関分析で分かることがあります。
ホームランと得点圏打率で考えてみましょう。

ホームランバッターの2年分のデータには、通常、相関関係が認められます。つまり、ホームランを打つ能力を持つ選手は、比較的、コンスタントにホームランを打つ、ということになります。

一方、得点圏打率の2年分のデータには、通常、相関関係は認められません。走者がいる、いない、といった偶然の出来事に左右される得点圏打率は、あくまで偶然の産物であり、コンスタントに高い得点圏打率を維持することはできない、ということがデータ分析することで分かります。

相関関係で分かることは多いのですが、注意も必要です。
例えば、血圧と年収は相関関係があると言われていますが、これは疑似相関です。この相関の背後には、血圧と年収の両方に影響する年齢という要因が隠れています。つまり、年齢が高くなると、血圧も高くなるし、年収も高くなるということですね。

ということで、注意が必要な相関分析ですが、アンケート分析に活用することで、効果的な打ち手を考えるヒントを与えてくれる、というのが、この記事の内容です。

アンケート分析では、通常、平均値を求めたり、その平均値を時系列に分析したり、といったことが行われています。その１次元ベースの分析に、相関係数という新たな座標軸を加えることで、見える世界が１次元から２次元に広がります。

# ３．相関分析を、ひと手間、加えよう
## (1)よくあるアンケート分析
以下、大人の事情で、自作したダミーデータを使って、説明します。

まず、Pythonのpandasを使って、ダミーデータを読み込んでみましょう。

```python
import pandas as pd

# CSVファイルをPandasのデータフレームに読み込む
df = pd.read_csv('dummy_data.csv')

# データフレームの先頭5行を出力
df.head()
```
アンケートの結果は、以下のようになっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76072/268720db-3f7d-8a58-792f-fca9e57fb6bf.png)

アンケートは、１から５までの５段階評価です。
評価項目は、会社満足度、経営の指導力、給与のレベル、福利厚生、会社の雰囲気の５項目です。
ダミーデータでは、100人分のデータを用意しました。

アンケート分析で頻繁に用いられる手法が各項目の平均値を出すことだと思います。
この事例でも、早速、やってみましょう。

```python
# 各項目の平均値を算出
mean_values_calculated = df.mean()

# 結果を出力
print("各項目の平均値:")
print(mean_values_calculated)
```

結果は以下のようになっていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76072/1fa49888-96bf-f235-4797-b853abb77d2c.png)

会社満足度は、ほぼ中程度。経営の指導力や福利厚生は、比較的高い一方、給与のレベルや会社の雰囲気がイマイチですね。

この結果を見て、平均値が低い項目すべてに、一律に手を打つのが良いのでしょうか？
給与のレベルを引き上げて、加えて、会社の雰囲気を良くするために手を打つ、、、
大変ですよね、、、

一律に、平均値が低い項目すべてに手を打つのも悪くはないですが、お金やマンパワーが制限されていることを考えると、効率的な打ち手に集中したいところですね。
（「選択と集中」は、いつでも大切だと思います。）

## (2)相関分析してみよう
今回のアンケートでは、会社満足度の向上が最終目標だと仮定します。そして、会社満足度を上げるためには、どの分野に集中して施策を打つべきかを考えてみたいと思います。

ここで登場するのが、相関分析です。早速、今回の事例で、相関分析してみましょう。

```python
# 各項目と項目１（会社満足度）の相関係数を算出
correlation_with_item1 = df.corr()['会社満足度']

# 結果を出力
print("\n各項目と項目１（会社満足度）の相関係数:")
print(correlation_with_item1)
```

相関分析の結果は、以下の通りとなっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76072/4a3747b0-5926-d416-bdd8-b5f2764d6fa2.png)

相関係数は、マイナス１からプラス１までの値をとります。相関係数の絶対値が１に近ければ相関が高く、ゼロに近ければ相関はない、つまり、関係性がない、ということですね（ここでいう関係性は，線形関係です）。

今回の例で言えば、会社満足度と相関が高いのは、経営の指導力と会社の雰囲気ですね。給与のレベルや福利厚生は、会社満足度との相関は少ないようです。

## (3)見える化しよう
せっかくですので、可視化しましょう（というか，相関係数を評価する前に散布図を描いてデータを可視化することは必須です）。

```python
# X軸とY軸のデータを準備
x_data = correlations['会社満足度'].values[1:]  # 項目２から項目５の相関係数
y_data = means.values[1:]  # 項目２から項目５の平均値

# プロット
plt.figure(figsize=(8, 6))
plt.scatter(x_data, y_data, marker='o', s=100, c='b')

# グラフの設定
plt.xlabel('Correlations')
plt.ylabel('Means')
plt.title('Visualization')
plt.xlim(-0.3, 1.0)
plt.ylim(0, 5)
plt.grid(True)

# グラフを表示
plt.show()
```
結果は、以下の通りです。なお、コメントを追加しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/76072/c8a6b16b-0fbb-b663-60ba-e8e86b81b521.png)

如何でしょうか。今回の例で言えば、「会社満足度と相関が高く、平均値が低い」『会社の雰囲気』に注力して、施策を打つことが有効のようですね。

『給与のレベル』は平均値は低いのですが、会社満足度との相関が低いため、施策を打っても、会社満足度の向上には寄与しないようです。
（あくまで、ダミーデータでの分析です。ふつうは給料が上がったら、会社満足度は高くなると思います(笑)。）


# ４．まとめ：相関分析で有効な打ち手を見つけよう！
アンケート分析で平均値を算出するのは、必須の分析手法だと思います。
加えて、相関分析を行えば、アンケート分析が２次元化され、マトリクスベースでの思考が可能になります。そして、有効な打ち手の発見につながると思います。

# ５．参考
## (1)今回の分析手法について
自分で考えた分析手法でしたが、総務省統計局などでも、同様の分析をしているようです。
https://www.stat.go.jp/naruhodo/15_episode/toukeigaku/manzoku.html
https://www.nttcoms.com/service/research/dataanalysis/portfolio-analysis/

## (2)相関関係と因果関係について
相関関係と因果関係は別物ですので、注意が必要です。
しかしながら、今回の事例では、例えば、会社満足度と経営の指導力に相関関係があった場合、「会社満足度が高い」から「経営の指導力が高い」ということはなくて、「経営の指導力が高い」から「会社満足度が高い」と因果関係で考えても、問題ないかと思います。疑似相関ということも考えにくいですよね。

## (3)ダミーデータの使用について
大人の事情で、本物のデータは使用していません。その点、悪しからず、ご容赦ください。