R:使用柯西的qqplot

时间:2016-11-29 21:01:49

标签: r distribution

我问过这个问题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

1 个答案:

答案 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图中表现不佳,所以这实际上可能无法帮助您实现真正的目标。)