全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
34443 9
2012-11-26
一直以来都不明白pp和qqplot是怎么做的,最近学习R,终于弄个明白。qq图是正态分位数图,纵坐标是变量的取值,关键是横坐标,参考了以为博友的博客。自己用R写了一个程序验证了一下。基本没问题。
qqplot全名应该是正态分位数图,横坐标的做法:
首先把变量按从小到大的顺序排列,计算变量的长度,即总共有多少个取值,再按顺序计算变量的所有取值的累积百分比,所谓的累积百分比,也就是可以看成是累积概率,比如有10个值,按照从小到大的顺序,第一个值的排序是1, 那么他的所占的百分比就是10%, 紧接着后一个值所占的百分比也会是10%,但是累积概率值为20%, 依次往后计算,因为最后一个值的累积百分比是100%,即等于1,这个值如果计算它的正态分布概率的分位数的话,是无限大的,因此需要对这个值进行修正一下,就是因为这一个值无限大,所以对全体计算出来的累积百分比减去一个适当小的数,修正后的累积百分比与原百分比相差不多,但是回避了最后一个值是1而无法计算的问题。
有了累积百分比之后,相对应的就是累积的概率值。将累积概率值修正后,即得到累积概率,比如以10个值为例,第一个值的累积概率为0.05,查正态分布表,0.05的累积概率,对应的正态分布的Z值为-1.64,这样一次计算,所得的Z值,就是qqplot的横坐标数据。下面以10个数据和30个数据为例说明。
my.qqplot <- function(y){
op <- par(mfrow = c(1, 1))
N <- length(y)
n <- seq(1, N)
xais <- qnorm((n - (.5*N) /N)/ N)
#####中间三句可选,只是为了输出计算过程######
mid <- cbind(sort(y), n, n/N, (n-(.5*N)/N)/N , xais)
colnames(mid) <- c("y", "rank", "cumpercent", "adj-cumper","xaix")
print(mid)
#####中间三句可选,只是为了输出计算过程######
par(mfrow = c(2,1))
qqnorm(y)
plot(sort(y) ~ xais, main = 'my qqplot')
par(op)
}
y <- rnorm(10, mean = 20, s = 50)
my.qqplot(y)
              y rank cumpercentadj-cumper      xaix
[1,]  2.877321   1       0.1      0.05 -1.6448536
[2,]  6.930063   2       0.2      0.15 -1.0364334
[3,] 16.461444   3       0.3      0.25 -0.6744898
[4,] 36.130825   4       0.4      0.35 -0.3853205
[5,] 40.477883   5       0.5      0.45 -0.1256613
[6,] 50.534636   6       0.6      0.55  0.1256613
[7,] 53.425025   7       0.7      0.65  0.3853205
[8,] 54.554269   8       0.8      0.75  0.6744898
[9,]120.496268   9       0.9      0.85  1.0364334
[10,] 125.290253  10       1.0      0.95  1.6448536
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-11-26 08:52:40
不错,lz很用心.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-27 06:35:12
不错。楼主的钻研精神值得学习
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-11-27 10:18:02
楼主用心!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-3-12 09:19:25
好东西多多分享,谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-13 16:22:57
“这个值如果计算它的正态分布概率的分位数的话,是无限大的,因此需要对这个值进行修正一下”  理解不了啊?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群