我正在尝试使用逆累积分布方法从标准柯西分布中绘制直方图,并且得到了一个奇怪的图,看起来与教科书中的标准柯西不一样。我想我的逆函数正确(x = tan(pi *(x-1/2))),因此,我将感谢您的帮助。这是我使用过的r代码:
n <- 10000
u <- runif(n)
c.samp <- sapply(u, function(u) tan(pi*(u - 1/2)))
hist(c.samp, breaks = 90, col = "blue",
main = "Hist of Cauchy")
生成的图看起来不正确:
感谢您的帮助,谢谢。
答案 0 :(得分:0)
直方图和采样技术是正确的。
将结果与以下内容进行比较(使用R Cauchy采样功能)。
implementation 'com.google.firebase:firebase-database:16.0.1'
这里的输出也 look 不正确,但不是。
首先,您应该注意,默认情况下,x轴是根据您碰到的极限值选择的。如您所知,柯西分布的特征是非常肥大,非常大,但很少见。当从Cauchy分布中运行10000个样本时,相对较少的单个测量值会挤压图,并且不会显示在图上,因为在这些极端情况下,每个仓只分配了很少的观测值。
c.samp2 <- rcauchy(n)
hist(c.samp2, breaks = 90, col = "blue",
main = "Hist of Cauchy 2")
如何选择垃圾箱的默认参数也不太适合像柯西(Cauchy)这样的分布。尝试例如
hist
我建议仔细阅读hist(c.samp2, breaks = "FD", col = "blue",
bins = 50,
main = "Hist of Cauchy 2",
xlim = c(-500, 500))
页,并使用这些参数来获得良好且有用的直方图。
通过调整选定的x轴范围,使用y轴概率标度,添加理论分布和“地毯”,您将获得更多有用的信息。
help("hist")
请注意,现在使用hist(c.samp, breaks = "FD", col = "blue",
main = "Hist of Cauchy distribution",
xlim = c(-50, 50),
freq = FALSE)
curve(dcauchy, add = TRUE, col = "red")
rug(c.samp)
或c.samp
几乎不会更改绘图。