gpt4 book ai didi

r - 非高斯分布的 ggplot2 和 QQ 图

转载 作者:行者123 更新时间:2023-12-04 10:48:31 30 4
gpt4 key购买 nike

我生成了一个 QQ 图来将我的随机数生成器的分布与 beta 分布进行比较。我可以通过

使用 R 中常用的绘图命令来完成此操作
samples1 <- read.csv("test1-clean.dat")
qqplot( samples1$p0, qbeta(seq(0,1,length=length(samples1$p0)),1,3) )
abline( 0, 1 )

但我想使用ggplot2库,但我无法理解文档(当涉及到R时,我是个n00b)

我试过了

qplot( sample = p0, data = samples1 ) + stat_qq( distribution = qbeta, seq(0,1,length=length(samples1$p0)), 1, 3 )

但这会导致形式错误

Error: ggplot2 doesn't know how to deal with data of class numeric

有什么建议吗?另外,关于学习 R 的良好引用资料会很棒(我熟悉 C、C++、Matlab 等,但 R 现在对我来说似乎有点奇怪)

更新:

按照下面的建议,我尝试过

params = list(shape1 = 1, shape2 = 3, lower.tail = TRUE, log.p = FALSE)

qplot( sample = p0, data = samples3 ) + stat_qq( distribution = qbeta, dparams = params )

这似乎仍然不起作用。我得到的错误是

Error in function (p, shape1, shape2, ncp = 0, lower.tail = TRUE, log.p = FALSE)  : 
element 2 is empty;
the part of the args list of '.Internal' being evaluated was:
(p, shape1, shape2, lower.tail, log.p)

我尝试将 lower.tail 和 log.p 添加到参数中,以及概率列表 p,但这并没有改变错误消息。

最佳答案

我想我已经解决了。您需要将分布参数作为命名值列表传递给 stat_qq() 中的 dparams。对于您的数据,这将是(如果我理解您的 qbeta() 调用)

params = list(shape1 = 1, shape2 = 3)

ggplot(samples1, aes(sample = p0))+
stat_qq(distribution = qbeta, dparams = params)

关于r - 非高斯分布的 ggplot2 和 QQ 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3514213/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com