我问过这个问题elsewhere
我想验证我的数据是否遵循正常或任何其他类型的分布(例如,像cauchy)。
我真的想了解如何使用qqplot
=]
即使qqnorm
效果很好:
qqnorm(data);qqline(data)
当我尝试qqplot
:
qqplot(data, "normal")
qqplot(data, "cauchy")
它会产生错误:
plot.window(...)出错:valoresfinitossãodosousáriospara'ylim'
此外,它会创建警告消息:
1:在xy.coords(x,y,xlabel,ylabel,log)中:强制引入的NA 2:在min(x)中:min没有非缺失参数;返回Inf
3:在max(x)中:max没有非缺失参数;返回-Inf
答案 0 :(得分:2)
您应该阅读qqplot
的文档。 qqplot
的第二个参数应该是另一个数据向量,而不是字符串。如果要将数据与特定分布进行比较,可以遵循qqnorm
中使用的技术,并为任何分布生成分位数向量。让我们说x是我们想要绘制的数据:
x <- rcauchy(5000)
由于x有5000个元素,我们希望从目标分布中生成5000个均匀分布的分位数。首先,让我们尝试正态分布:
y.norm <- qnorm(ppoints(length(x)))
qqplot(x, y.norm)
现在让我们用柯西分布尝试相同的事情。
y.cauchy <- qcauchy(ppoints(length(x)))
qqplot(x, y.cauchy)
(请注意,特别是Cauchy分布在QQ图中表现不佳,所以这实际上可能无法帮助您实现真正的目标。)