web-dev-qa-db-ja.com

matplotlibを使用して多重線形回帰モデルをプロットするにはどうすればよいですか?

複数の線形回帰モデルを適合させようとしています

Y = c + a1.X1 + a2.X2 + a3.X3 + a4.X4 + a5X5 + a6X6

モデルに変数が3つしかない場合は、3Dプロットを使用してプロットします。どうすればこれをプロットできますか。基本的に、最適な線がどのように見えるか、または複数の散布図をプロットして、他のすべてがゼロの場合の個々の変数Y = a1X1の効果を確認し、最適な線を確認する必要があります。これらのモデルに最適なアプローチは何ですか。私は、より高い次元を視覚化することは不可能であることを知っています。最適なラインを必死に見たい

2
nithin

私はこの投稿を見つけました。
https://stats.stackexchange.com/questions/73320/how-to-visualize-a-fitted-multiple-regression-model 。提案に基づいて、私は現在、従属変数と1番目の独立変数、次に2番目の独立変数などの散布図をプロットしています。同じことをしています。完全なモデルに最適な線を見ることができないかもしれませんが、それが個々の変数にどのように依存しているかは知っています

from sklearn.linear_model import LinearRegression
train_copy = train[['OverallQual', 'AllSF','GrLivArea','GarageCars']]
train_copy =pd.get_dummies(train_copy)
train_copy=train_copy.fillna(0)
linear_regr_test = LinearRegression()

fig, axes = plt.subplots(1,len(train_copy.columns.values),sharey=True,constrained_layout=True,figsize=(30,15))

for i,e in enumerate(train_copy.columns):
  linear_regr_test.fit(train_copy[e].values[:,np.newaxis], y.values)
  axes[i].set_title("Best fit line")
  axes[i].set_xlabel(str(e))
  axes[i].set_ylabel('SalePrice')
  axes[i].scatter(train_copy[e].values[:,np.newaxis], y,color='g')
  axes[i].plot(train_copy[e].values[:,np.newaxis], 
  linear_regr_test.predict(train_copy[e].values[:,np.newaxis]),color='k')
0
nithin