zoukankan      html  css  js  c++  java
  • 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
    )
    

      输出:

  • 相关阅读:
    css学习记录(css元素类型)
    一个面向对象的js问题 大家帮忙看看
    css选择器记录
    css学习记录
    如何进行高效JavaScript单元测试
    js拖动库介绍
    PHP 方法记录
    jquery学习笔记(一)
    windows8 后台传递下载
    .NET Framework 4.5 RC 更新
  • 原文地址:https://www.cnblogs.com/buzhizhitong/p/5926042.html
Copyright © 2011-2022 走看看