私は家の勝利の確率と "H"(私が推測しているのは、実際の勝利か予測された勝利か)を比較するためのいくつかの異なる選択肢があると思います。コメントに示唆されているように、homeprob
をバケットに分割し、集計統計にdplyr
を使用できます。その後、勝利のために色を使用するか、単純にプロットhomeprob
と勝利をプロットします。
いくつかの方法がありますので、いくつかのオプションと再現可能な例を示します。ここで
はあなたに似ているいくつかの作られたデータである。
# random normal data
randn_data <- rnorm(15000, 0.5, .05)
df <- data.frame(homeprob = randn_data)
# random uniform from 0 to 1
df$randunif <- runif(nrow(df))
# new feature is "H" if random uniform is less than homeprob
df$ftr <- ifelse(df$randunif < df$homeprob, "H", "A")
df$probcut <- cut(df$homeprob, seq(0.2, 0.8, 0.05))
あなたのデータが正常であるので、私はそれが最良の選択肢だろうとは思わないが、今では、総勝利のために色を使用することができますし、周波数は平均値に対する高くなります。
library(dplyr)
df_plot1 <- df %>%
group_by(probcut) %>%
summarise(hprob_counts = n(), wins = sum(ftr == "H"))
# wins as color
library(ggplot2)
ggplot(df_plot1, aes(x = probcut, y = hprob_counts, fill = wins)) +
geom_col() +
scale_y_sqrt()
私はそれを期待して観察を比較するために、勝率を使用する方がよいと思います。
df_plot2 <- df %>%
group_by(probcut) %>%
summarise(hprob_counts = n(), wins = sum(ftr == "H")) %>%
mutate(win_rate = wins/hprob_counts)
ggplot(df_plot2, aes(x = probcut, y = hprob_counts, fill = win_rate)) +
geom_col() +
scale_y_sqrt()
また、単に配布することなく、homeprob
とwin_rate
をプロットできます。
ggplot(df_plot2, aes(x = probcut, y = win_rate)) +
geom_col()
うまくいけば、これはあなたが探していた多かれ少なかれものです。
'homeprob'変数を離散的な間隔でビンするのに' cut'を使うことを考えましたか?その後、dplyrコマンドを使用して家の勝ちを集計し、実際の勝利のための色などの3番目のエンコーディングを使用できます(棒グラフでなければなりません)。あなたのコメントのために – cbhyphen
ありがとう!私はカットを使用し、今私は20のグループがあります。また、グループ値(たとえば(0.414 - 0.449))でデータフレームに列を追加しましたが、どのグループをどのようにループを構築して各グループのホームウインドウ数を数えるのかよくわかりません。forループを使用してみましたが成功しませんでした –