1

私はガイドに従って生成しようとしていました: この種のプロット.

データは 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

ありがとう

4

1 に答える 1

2

気にしないで、私は自分の質問に答えました。応答変数は、私のデータと著者のデータを複製しようとしたときの両方で連続として扱われていました。応答変数を因子に変更することで問題を修正しました。

SIGSW.test$SI<-as.factor(SIGSW.test$SI)

他の誰かが私と同じくらい愚かな場合に備えて、これを削除する代わりに回答を投稿しています。

于 2015-11-10T23:16:08.357 に答える