【问题标题】:R overlap normal curve to probability histogramR重叠正态曲线到概率直方图
【发布时间】:2016-01-10 01:16:56
【问题描述】:

在 R 中,我能够将正态曲线与密度直方图重叠: 最终我可以将密度直方图转换为概率图:

a <- rnorm(1:100)
test <-hist(a,  plot=FALSE)
test$counts=(test$counts/sum(test$counts))*100   # Probability
plot(test, ylab="Probability")
curve(dnorm(x, mean=mean(a), sd=sd(a)), add=TRUE)

但我不能再与正常曲线重叠,因为它超出了比例。

有什么解决办法吗?也许是第二个 Y 轴

【问题讨论】:

标签: r histogram


【解决方案1】:

y 轴不是您标注的“概率”。是计数数据。如果您将直方图转换为概率,则应该没有问题:

x <- rnorm(1000)
hist(x, freq= FALSE, ylab= "Probability")
curve(dnorm(x, mean=mean(x), sd=sd(x)), add=TRUE)

【讨论】:

    【解决方案2】:

    现在我的问题很清楚了。实际上,第二个 y 轴似乎是最好的选择,因为这两个数据集具有完全不同的尺度。

    为了做到这一点,你可以这样做:

    set.seed(2)
    a <- rnorm(1:100)
    test <-hist(a,  plot=FALSE)
    test$counts=(test$counts/sum(test$counts))*100   # Probability
    plot(test, ylab="Probability")
    #start new graph
    par(new=TRUE)
    #instead of using curve just use plot and create the data your-self
    #this way below is how curve works internally anyway
    curve_data <- dnorm(seq(-2, 2, 0.01), mean=mean(a), sd=sd(a))
    #plot the line with no axes or labels
    plot(seq(-2, 2, 0.01), curve_data, axes=FALSE, xlab='', ylab='', type='l', col='red' )
    #add these now with axis
    axis(4, at=pretty(range(curve_data)))
    

    输出:

    【讨论】:

    • 我想我应该只使用一条曲线而不是两条,但解决方案是一样的。
    • 谢谢,可能我没有正确解释。我希望 Y 轴是概率而不是密度。然后我需要重叠正常曲线。我应该使用另一个 Y 轴吗?
    • @g256 我还是不明白这个问题。看起来你的图表都有 0 到 1 之间的限制。为什么需要第二个 y 轴?甚至密度也是一种概率。
    • @g256 另外,如果问题是密度在 0-1 之间变化,而曲线可以超过 1,则您不应该使用 curve(dnorm(x, ...,但可以显示这种差异的东西......跨度>
    • 谢谢这是我问题的答案。
    【解决方案3】:

    首先你应该保存你的 rnorm 数据,否则你每次都会得到不同的数据。

    seed = rnorm(100)
    

    接下来继续

    hist(seed,probability = T)
    curve(dnorm(x, mean=mean(na.omit(seed)), sd=sd(na.omit(seed))), add=TRUE)
    

    现在您有了预期的结果。带密度曲线的直方图。

    【讨论】:

    • 谢谢,可能我没有正确解释。我希望 Y 轴是概率而不是密度。然后我需要重叠正常曲线。我应该使用另一个 Y 轴吗?
    • 使用 ylim =c(0,1) 手动将 y 轴设置为区间 [0,1]。与曲线(,...,add = T)相加的概率函数应该适合同一个图。
    猜你喜欢
    • 2013-12-03
    • 2019-11-24
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    相关资源
    最近更新 更多