私はガイドに従って生成しようとしていました: .
データは SIGSW.test というデータ フレームにあり、応答変数 (SI) はバイナリです。データフレームにpr.bmsとして保存された予測を生成するために使用しているglmがあります。さまざまなしきい値での真/偽陽性/陰性をグラフィカルに表現したいと考えています。pr.bms.type は、TF、TN、FP、または FN を表します。
ただし、次のコードを試すと:
ggplot(data=SIGSW.test, aes(x=SI, y=pr.bms)) +
geom_violin(fill=rgb(1,1,1,alpha=0.6), color=NA) +
geom_jitter(aes(color=SIGSW.test$pr.bms.type), size=5, alpha=0.6) +
geom_hline(yintercept=threshold, color="red", alpha=0.6) +
scale_color_discrete(name = "type") +
labs(title=sprintf("Threshold at %.2f", threshold))
R が生成します。
X 軸に観測された結果、Y 軸に予測確率を表すデータ ポイントの 2 つの列が表示されます (私が望むもの) が、2 つのバイオリン プロットが 1 つに結合されているように見えます。著者のプロットを彼自身のコードとデータで複製することはできないため、コードに欠陥があると思われます。私はggplotがあまり得意ではないので、何がうまくいかないのか正確にはわかりません.バイオリンレイヤーは美的特性を使用する必要があるため、結果ごとに1つずつ、2つのバイオリンプロットを作成する必要があるようですggplot 関数で定義されています。何がうまくいかないのか、それを修正する方法を誰かが説明できますか? ここで、2 つのバイオリン プロットを重ね合わせる方法を説明しているスレッドをいくつか見てきましたが、離散変数によって定義されたデータの 2 つのバイオリン プロットを作成する方法がわかりません。私'
参考までに、私のデータのサンプルを次に示します。
SI pr.bms pr.aic pr.bic pr.bms.type
19869 0 0.029985210 0.009071122 0.014855376 TN
36670 0 0.013641325 0.018143617 0.019764735 TN
9586 0 0.004428973 0.004363135 0.004356827 TN
41570 1 0.709464654 0.693148738 0.742891240 TP
32356 0 0.347295868 0.274694216 0.284724446 TN
14922 0 0.019798409 0.014157925 0.011422388 TN
52048 0 0.317284825 0.363881394 0.305525690 TN
43269 0 0.972736555 0.985057882 0.909592318 FP
45043 0 0.962467774 0.932087650 0.928091617 FP
4608 0 0.006653427 0.013383884 0.014138802 TN
ありがとう