データを扱っていると、そのデータ間でどのような影響があるのかを知りたい場合があります。
そんな時は、2つのデータ間なら単回帰分析を行います。これはExcelで散布図を書くと説明変数xに対して、目的変数yがどのような動きをしているのかが分かります。
ではデータが3つある場合はどうでしょう?
データが3つある場合は重回帰分析を行います。
〇分析ツールの表示
Excelで風量、湿度の要素が気温に影響しているのか重回帰分析を行いました。
Excelで重回帰分析を行う場合は、まず分析ツールのアドインを表示させます。
分析ツールのアドインは標準搭載なのでどのバージョンのExcelにもあります。
Excelで左上の
⓵ファイル
②その他
⓷オプション
④アドイン
⑤設定
とクリックしていきます。
選択メニューから分析ツールにチェックをいれます。
リボンのデータタブにデータ分析が追加されました。
〇VBAで分析ツールの表示
いろいろと設定を行いましたが、VBAで分析ツールの表示を行えば以下の1行のコードを実行するだけです。
AddIns("分析ツール").Installed
= True
解除したければ
AddIns("分析ツール").Installed
= False
TRUE を FALSEにするだけで非表示になります。
〇重回帰分析の実施
重回帰分析を行いたい場合は、データ分析の「回帰分析」をクリックします。
入力Yが目的変数で、影響が出る結果のデータ、入力Xが説明変数で影響をだしているであろう要素を選択します。
今回は、気温に湿度と風量は影響しているのかを調べたいので、
Yには気温
Xには湿度と風量
を選択しています。
ラベルと有意水準にチェックをいれてOK!
重回帰分析の結果は湿度のP値は0.657、風量のP値は0.3477と気温には影響を及ぼしていないという結果となりました。
P値が0.05以下の場合、影響がある(有意差あり)と考えられます。
重回帰分析の結果は各要素あまり影響がないとなりましたが、回帰分析は説明変数と目的変数の直線性をみるものなので、指数関数的な関係になっていたり、層別が必要であっても数字だけではなかなかわかりません。
そこでグラフを書いてみたいと思います。
2要素のグラフなら普通にExcelでかけるのですが、3要素となるとExcelでは書けません。
そこでPythonの登場です。
〇3次元の散布図を各Pythonのコード
import pandas as pd
import matplotlib.pyplot as plt
import tkinter.filedialog as fd
aa = fd.askopenfilename()
print(aa)
data = pd.read_excel(aa)
print(data)
x = data["湿度"]
y = data["風向・風速(m/s)"]
z = data["気温(℃)"]
f = plt.figure()
axes = f.add_subplot(projection = '3d')
axes.scatter(x,y,z,color =
"blue")
axes.set_xlabel("situdo")
axes.set_ylabel("kiatu")
axes.set_zlabel("onndo")
plt.show()
実行すると・・・
データの選択画面がでます。
データを読み込むと3軸の散布図が表示されます。
全然相関はなさそうですね。
〇コードの解説
・必要なモジュールをインポートしています。
import pandas as pd
import matplotlib.pyplot as plt
import tkinter.filedialog as fd
・Excelファイルを選択する画面を表示
aa = fd.askopenfilename()
・選択したExcel名をコンソールに表示
print(aa)
・パンダスでExcelをデータフレームに変換
data = pd.read_excel(aa)
・データフレームを表示
print(data)
・データフレームの各要素を変数に格納
x = data["湿度"]
y = data["風向・風速(m/s)"]
z = data["気温(℃)"]
・3次元画面作成
f = plt.figure()
axes = f.add_subplot(projection = '3d')
・散布図を表示
axes.scatter(x,y,z,color =
"blue")
・データのラベルを表示
axes.set_xlabel("situdo")
axes.set_ylabel("kiatu")
axes.set_zlabel("onndo")
・グラフを表示
plt.show()
〇まとめ
今回はExcelで重回帰分析を行う方法と、3要素の散布図をPythonで作る方法をまとめました。
なかなかデータが一つの要素だけで決まるということはありません。
そのデータ間の影響度を調べられる重回帰分析はとても便利です。
現状ではExcelで3軸(3次元)の散布図をつくることはできませんが、Pythonのコードで作ることができます。
IDLEで動かすと、マウスでグラフを回転させたりできるので一度やってみてください。
0 件のコメント:
コメントを投稿