Matplotlibでstatsmodels線形回帰(OLS)をきれいにプロットする方法は?
統計モデルの線形回帰(OLS)は、非線形曲線で線形データを使用してプロットできます。
ステップ
-
図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。
-
新しいものを作成するには、 seed()を使用できます メソッド。
-
サンプル変数とシグマ変数の数を初期化します。
-
線形データポイントx、X、 beta、t_trueを作成します 、yおよび res numpyを使用しています。
-
解像度 通常の最小二乗クラスのインスタンスです。
-
標準偏差を計算します。予測の信頼区間は、一般的なGLSではなく、WLSとOLSに適用されます。つまり、独立しているが同一に分散されていない観測値に適用されます。
-
subplot()を使用して、図とサブプロットのセットを作成します メソッド。
-
plot()を使用してすべての曲線をプロットします (x、y)、(x、y_true)、(x、res.fittedvalues)、(x、iv_u)を使用するメソッド および(x、iv_l) データポイント。
-
凡例をプロットに配置します。
-
図を表示するには、 show()を使用します メソッド。
例
import numpy as np from matplotlib import pyplot as plt from statsmodels import api as sm from statsmodels.sandbox.regression.predstd import wls_prediction_std plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True np.random.seed(9876789) nsample = 50 sig = 0.5 x = np.linspace(0, 20, nsample) X = np.column_stack((x, np.sin(x), (x - 5) ** 2, np.ones(nsample))) beta = [0.5, 0.5, -0.02, 5.] y_true = np.dot(X, beta) y = y_true + sig * np.random.normal(size=nsample) res = sm.OLS(y, X).fit() prstd, iv_l, iv_u = wls_prediction_std(res) fig, ax = plt.subplots() ax.plot(x, y, 'o', label="data") ax.plot(x, y_true, 'b-', label="True") ax.plot(x, res.fittedvalues, 'r--.', label="OLS") ax.plot(x, iv_u, 'r--') ax.plot(x, iv_l, 'r--') ax.legend(loc='best') plt.show()
出力
-
Matplotlibで軸を切り替える方法は?
matplotlibで軸を切り替えるには、subplots()メソッドを使用してFigureを作成し、2つのサブプロットを追加します。曲線をプロットし、xおよびyデータを抽出して、これらのデータを2番目のプロットされた曲線に設定します。 ステップ numpyを使用してxおよびyデータポイントを作成します。 図を作成し、2つのサブプロットのセットを追加します。 両方の軸にプロットのタイトルを設定します。 plot()を使用してxおよびyデータポイントをプロットします メソッド。 get_xdataを使用してxおよびyデータポイントを抽出します およびget_yd
-
Matplotlibで折れ線グラフをアニメーション化する方法は?
matplotlibで折れ線グラフをアニメーション化するには、次の手順を実行できます- subplots()を使用して、図とサブプロットのセットを作成します メソッド。 x軸とy軸のスケールを制限します。 numpyを使用してxおよびtデータポイントを作成します。 座標ベクトルX2およびT2から座標行列を返します。 plot()を使用して、xおよびFデータポイントで線をプロットします メソッド。 アニメーションプロットを作成するには、yデータを更新します。 関数*func *、current fig、animate、を繰り返し呼び出してアニメーショ