全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4817 4
2014-09-18
悬赏 10 个论坛币 未解决
如题假如已经知道了一个分布,如何求出其对应分成N份离散的直方图的面积(即概率),
我自己试了一下,一开始的着眼点不是求直方图而是直接求间距之间的面积,但有个问题就是两个尾部的面积偏大(甚至大于均值附近的面积)因为包含了比较长的延伸。

因此现在想改为直方图求解的逻辑,但是不知道如何执行。下面也附上我直接求间距面积的代码。简单的说就是想求如图所示的直方图上每一条的面积,最后还能保证总体面积是100%,谢谢!
MEAN=10
   SD=3
   n=2*SD
   MEAN_SD =MEAN-SD
   for (i in 0:n)
   {
   Result <- pnorm(MEAN_SD+(i+0.5), mean=MEAN, sd =SD)-pnorm(MEAN_SD+(i-0.5), mean=MEAN, sd =SD)
   cat('section',i,':', Result,'\n')
   }
  section1 <- pnorm(MEAN_SD+0.5, mean=MEAN, sd =SD)
  section1
  Q100 <- qnorm(1,mean=MEAN, sd=SD)
  sectionN <- pnorm(Q100, mean=MEAN, sd =SD)-pnorm(MEAN+SD-0.5, mean=MEAN, sd =SD)
  sectionN

IMG_0450.JPG


二维码

扫码加我 拉你入群

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

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

全部回复
2014-9-18 10:02:33
用table函数试试吧
二维码

扫码加我 拉你入群

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

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

2014-9-18 22:32:22
nuomin 发表于 2014-9-18 10:02
用table函数试试吧
愿闻其详,之前没接触过table函数,自己查看了一下,似乎是可以计算区间的概率,但是这和我自己上面写的程序的作用最终是一样的,还是会出现尾部的比较大的问题。

以我的例子看,均值为10,标准差为3, 就是求 7 8 9 10 11 12 13对应的概率,然后让他们的概率和为100%。
二维码

扫码加我 拉你入群

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

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

2014-9-18 22:39:25
发重了,不过似乎用我上面的方法就解决了,之前如果标准差是3的话,不应该在13停止,而是19(第三个标准差)。。。谢谢!
二维码

扫码加我 拉你入群

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

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

2014-9-20 09:14:30
好像不用那么麻烦。
library(data.table)
dat = data.table(x = round(rnorm(100,10,3)))
dat = dat[,list(Freq = .N), by = x]
dat = dat[,Total:= Freq/sum(Freq)][order(x,decreasing=F),]

dat
     x Freq Total
1:  3    1  0.01
2:  4    1  0.01
3:  5    2  0.02
4:  6    4  0.04
5:  7   10  0.10
6:  8   13  0.13
7:  9   15  0.15
8: 10    6  0.06
9: 11   14  0.14
10: 12   12  0.12
11: 13   10  0.10
12: 14    8  0.08
13: 15    1  0.01
14: 16    3  0.03
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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