0

メイン データ フレーム r_df を使用して、ライン パラメーターと R 平方を含む「p」と「効用」の間の線形回帰を計算します。それが r_df です:

    Utility    p  mean   sd  iteration
90   0.075858  1.0   0.5  0.3       10.0
91   0.075858  1.0   0.5  0.4       10.0
92   0.075858  1.0   0.5  0.5       10.0
93   0.500000  1.0   1.0  0.3       10.0
94   0.500000  1.0   1.0  0.4       10.0
95   0.500000  1.0   1.0  0.5       10.0
96   0.924142  1.0   1.5  0.3       10.0
97   0.924142  1.0   1.5  0.4       10.0
98   0.924142  1.0   1.5  0.5       10.0
99   0.124008  0.0   0.5  0.3      100.0
100  0.149518  0.0   0.5  0.4      100.0
101  0.168911  0.0   0.5  0.5      100.0
102  0.516585  0.0   1.0  0.3      100.0
103  0.511339  0.0   1.0  0.4      100.0
104  0.551679  0.0   1.0  0.5      100.0

そして、それが線形回帰のパラメーターを格納するデータ フレーム df_iter です。

            slope  intercept     R sqr  mean   sd  iteration
90   0.010329   0.494478  0.003605   1.0  0.3       10.0
91   0.001569   0.498630  0.000736   1.0  0.3      100.0
92  -0.000294   0.500254  0.000252   1.0  0.3     1000.0
93  -0.003057   0.499894  0.000206   1.0  0.4       10.0
94  -0.000732   0.501374  0.000117   1.0  0.4      100.0
95   0.000047   0.499954  0.000005   1.0  0.4     1000.0
96   0.007904   0.495582  0.001036   1.0  0.5       10.0
97   0.001049   0.499832  0.000193   1.0  0.5      100.0
98  -0.001417   0.500882  0.003341   1.0  0.5     1000.0
99   0.063473   0.869365  0.305991   1.5  0.3       10.0
100  0.063074   0.870057  0.799972   1.5  0.3      100.0
101  0.063367   0.869828  0.924101   1.5  0.3     1000.0
102  0.098548   0.838722  0.369288   1.5  0.4       10.0
103  0.102952   0.835050  0.831155   1.5  0.4      100.0
104  0.101127   0.836301  0.944319   1.5  0.4     1000.0

ここで、次のコードで seaborn catplot を使用して r_df からのデータを表示します。

s2 = sns.catplot(x="iteration", y="slope",
                 data=df_iter,
                 sharey="row",
                 hue="sd",
                 col="mean",
                 palette="crest")
s2.map(plt.axhline, y=0, ls='--', c='red')

それが結果です:
スロープグラフ

ここで、既存の catplot の上に R 二乗値のドットを追加したいと思います。それらを別々にプロットすることはできますが、複数の軸を持つcatplotにポイントを追加する方法が見つかりません(最初からこの種を使用することを選択した理由は、列と行の簡単なオプションでした)。単一の軸を持つ catplot に関連する回答のみが見つかりました。

ax2 = sns.catplot(x="iteration", y="R sqr",
                 data=df_iter,
                 sharey="row",
                 hue="sd",
                 col="mean",
                 palette="rocket")
ax2.map(plt.axhline, y=0, ls='--', c='red')

R 二乗値のグラフ:
R二乗値のグラフ

R 二乗値を最初のグラフに (別のプロットとしてではなく) 単一のドットとして追加することもできますが、シーボーン フィギュア レベル オブジェクトでサブプロットを指定する方法が見つかりません。

4

0 に答える 0