gpt4 book ai didi

r - qqline 连接第一和第三四分位数。如何在不同的分位数(即 30% 和 70%)之间画一条线?

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

我有一个包含 1000 多个点的数据集的 qqnorm 图。我想一次在两个分位数之间画一条线(比如 30% 和 70%),就像 qqline 在 25% 和 75% 之间做的那样,但可以自由选择要使用的分位数。我已经对 ggplot 进行了一些研究,但似乎无法找到有用的东西。执行此操作的最佳方法是什么?

编辑:我的数据是Ecdat的Garch数据集中美元兑英镑汇率的变化:

diffbp = diff(Garch[,5])

在那之后,我要做的就是

qqnorm(diffbp)

qqline(diffbp)

但我还需要 qqline 可以通过不同分位数的图,以进行比较。

编辑 2:我尝试了以下方法:

> qqnorm(diffbp)

> quantile(diffbp,probs=c(0.01,0.99))
1% 99%
-0.029850 0.032675

> qqline(c(-0.029850,0.032675))

我不认为生成的线条正是我想要的。也就是说,当我希望它通过适当的分位数时,我相信该线总是通过 x 轴上的 -1 和 1。

编辑 3:想通了!手动计算样本和理论分位数,计算通过它们的直线方程,然后使用 abline() 绘制直线。不过,这样做相当耗时。

最佳答案

我想你只需要

qqline(diffbp,probs=c(0.3,0.7))

编辑:我从R: qqline connects the first and third quartiles. How do I draw a line between different quantiles (ie 30% and 70%)?的评论中看到区别在于我使用的是 R-devel,并且(正如@caracal 指出的那样)此功能是自 R 2.15.1 修补以来的新功能(参见 http://developer.r-project.org/blosxom.cgi/R-2-15-branch/NEWS,2012 年 7 月 7 日)

这是一个似乎表明 qqline() 有效的示例(我使用 0.1、0.9 以获得更大的对比度):

set.seed(101)
z <- rgamma(1000,shape=1)
newprobs <- c(0.1,0.9)
## png("qq.png")
qqnorm(z,pch=".")
qqline(z,col="red")
qqline(z,col="blue",probs=newprobs)
## add reference lines
abline(h=quantile(z,c(0.25,0.75)),col="red",lty=2)
abline(h=quantile(z,newprobs),col="blue",lty=2)
abline(v=qnorm(c(0.25,0.75)),col="red",lty=2)
abline(v=qnorm(newprobs),col="blue",lty=2)
## dev.off()

enter image description here

关于r - qqline 连接第一和第三四分位数。如何在不同的分位数(即 30% 和 70%)之间画一条线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12766253/

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