Poisson Distribution——泊松分布
Posted 不秩稚童
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Poisson Distribution——泊松分布相关的知识,希望对你有一定的参考价值。
老师留个小作业,用EXCEL做不同lambda(np)的泊松分布图,这里分别用EXCEL,Python,MATLAB和R简单画一下。
1. EXCEL
运用EXCEL统计学公式,POISSON,算出各个数据,作图。资料参考这里。
=POISSON.DIST(B$1,$A2,0)
注意这里绝对引用的方式,写完公式之后,直接上下左右拖动鼠标即可自动填充。之后插入图表。如下。
2.Python
这里stats.poisson.pmf中的pmf是probability mass function(概率质量函数)的缩写。
以下引自WIKI:
在概率论中,概率质量函数(probability mass function,简写为pmf)是离散随机变量在各特定取值上的概率。
概率质量函数和概率密度函数不同之处在于:概率质量函数是对离散随机变量定义的,本身代表该值的概率;
概率密度函数是对连续随机变量定义的,本身不是概率,只有对连续随机变量的概率密度函数在某区间内进行积分后才是概率。
import scipy.stats as stats import matplotlib.pyplot as plt k = range(0,13) for ld in range(7): y = stats.poisson.pmf(k,ld) plt.xlabel(\'K\') plt.ylabel(\'P\') plt.title(\'POISSON\') plt.plot(y,label=str(ld)) plt.legend() plt.show()
输出图形:
3.MATLAB
x=0:12; c = [\'r\',\'g\',\'b\',\'y\',\'m\',\'k\']; for i = (1:6) y=poisspdf(x,i); plot(x,y,c(i)); hold on end
输出如下:
4.R
pmf <- function(lambda){ y = list() for(k in 0:12){ y[k+1] <- round(dpois(x=k,lambda),3) } return(y) } mycols <- runif(10,min=1,max=length(colors())) for(i in 1:6){ par(new=TRUE) y = plot(c(0:12),pmf(i),type=\'l\',ylim=c(0,0.4),col = mycols[i]) }
输出:
美中不足的是,楼主不知道如何为每条线设置标签。查了一下午legend函数,还是没搞定。。。
解决了回头补充吧。。。
###################################################
来补充了。。。问了问大佬们,给出下面的方法
pmf <- function(lambda){ y = list() for(k in 0:12){ y[k+1] <- round(dpois(x=k,lambda),3) } y = unlist(y) return(y) } mycols <- runif(10,min=1,max=length(colors())) y_data <- matrix(unlist(lapply(1:6,FUN = pmf)),ncol = 6) matplot(y_data,type=\'l\',ylim=c(0,0.4),col = mycols) colnames(y_data) = 1:ncol(y_data) matplot(y_data,type=\'l\',sub = "标记",ylim=c(0,0.4),col = mycols,main = "泊松分布图") legend( "topright" ,legend = colnames(y_data) ,text.col = mycols ,col = mycols ,lty = mycols )
输出:
以上是关于Poisson Distribution——泊松分布的主要内容,如果未能解决你的问题,请参考以下文章
R语言泊松分布函数Poisson Distribution(dpois, ppois, qpois & rpois)实战
指数分布和泊松过程(Exponential Distribution and Poisson Process)--2(指数分布的例题)
如何给图片添加泊松(poisson)噪声(附Python代码)