2

度数分布表から累積確率をプロットする方法はありますか? geom_density()プロットのように、「滑らかな」バージョンを意味します。

これまでのところ、個別に計算された確率を線で結ばれた点としてプロットすることができましたが、見栄えがよくありません。

4

2 に答える 2

3

いくつかのテストデータを生成します。

set.seed(1)
x <- sort(sample(1:100, 20))
p <- runif(x); p <- cumsum(p)/sum(p)
table <- data.frame(x=x, prob=p)

ggplot2パッケージのgeom_smoothを使用できます。

require("ggplot2")
qplot(x=x, y=p, data=table, aes(ymin=0, ymax=1)) + ylab("ecf") + 
geom_smooth(se=F, stat="smooth", method="loess", fullrange=T, fill="lightgrey", size=1)

別の方法として、パラメーターで平滑化を指定する簡単な方法として、deconパッケージのDeconCdfを試してください。

require("decon")
plot(DeconCdf(x, sig=1))

ggplotを使用する場合は、最初にdata.frame内のDecon関数オブジェクトを変換する必要があります。

f <- DeconCdf(x, sig=1)
m <- ggplot(data=data.frame(x=f$x, p=f$y), aes(x=x, y=p, ymin=0, ymax=1)) + ylab("ecf")
m + geom_line(size=1)

sig-Parameterを平滑化パラメーターとして使用します。

f <- DeconCdf(x, sig=0.3)
m <- ggplot(data=data.frame(x=f$x, p=f$y), aes(x=x, y=p, ymin=0, ymax=1)) + ylab("ecf")
m + geom_line(size=1)
于 2012-09-13T16:21:36.340 に答える
0

このバージョンは、次の平滑化された線でヒストグラムをプロットしますgeom_density

# Generate some data:
set.seed(28986)
x2 <- rweibull(100, 1, 1/2)

# Plot the points:
library(ggplot2)
library(scales)
ggplot(data.frame(x=x2),aes(x=x, y=1-cumsum(..count..)/sum(..count..))) +
  geom_histogram(aes(fill=..count..)) +
  geom_density(fill=NA, color="black", adjust=1/2) +
  scale_y_continuous("Percent of units\n(equal to or larger than x)",labels=percent) +
  theme_grey(base_size=18)

ここに画像の説明を入力個人の好みにより 1 - 「累積確率」を使用したことに注意してください (見栄えが良く、「信頼性」メトリックの 扱いに慣れていると思います)。1-aes

于 2013-08-19T20:46:06.847 に答える