【程序员眼中的统计学(2)】集中趋势度量:分散性、变异性、强大的距

 集中趋势度量:分散性、变异性、强大的距

1 平均值


1.1 均值算法的描述

均值的定义

均值有两种计算方法:第一种计算方式是:将所有的数字加起来,然后除以数字的个数 。可用记为:µ=∑x/n

另一种计算方法是把每个数的频数考虑进去了的,它表示如下:µ=∑fx/f

均值符号定义

n:表示的是输入的数据的个数

µ:为数据的均值

∑:表示所有数据之和

均值算法中的计算方法

  1. 统计出输入数据的个数n
  2. 计算出所有的数据之和 sum
  3. 计算出数据的均值avg=sum/n

1.2 均值算法的应用场景

案例描述:俱乐部中,各个舞蹈班的人数的清单为:1人,2人,3 人,4人,5人,6人,7人。

均值算法在该场景的定义

案例定义:这个俱乐部舞蹈班的总人数为28,总共有7个舞蹈班,知道了总的人数和总共有多少个班级,即可求出舞蹈班人数的均值。

该场景下算法中符号解释

n:用来统计输入的舞蹈班的个数

list:用来存储输入的舞蹈班的人数

sum:表示所有舞蹈班的人数之和

avg:表示n个舞蹈班的人数的均值

该场景下算法计算方法

案例中俱乐部舞蹈班的人数的总和为:sum=1+2+3+4+5+6+7,sum=28,  

统计出俱乐部中舞蹈班级的个数为:n=7

计算出该俱乐部的人数的均值为:avg=sum/n,avg=28/7=4 ,

1.3 本算法优缺点

  • 优点:能够快速准确地计算出均值
  • 缺点: 在输入的数据过多时,会产出一定的误差。
  • 本算法采用的数据类型:本算法适用于double数据类型。

1.4 算法的输入数据、中间结果以及输出

本算法输入数据


1

2

3

4

<span style="color: #000000;">* @param    i   double,表示输入的数据

 

* @param    list   List,存储输入的数据

</span>

 算法中间结果


1

2

<span style="color: #000000;">* @param   sum   double,表示输入的所有的数据之和

</span>

 本算法输出结果


1

2

<span style="color: #000000;">* @return avg  double,表示数据的均值

</span>

 1.5 算法中的异常及处理办法

本算法可能异常或误差

异常1:输入数据不合法,如:输入字母。

异常2:输入数据特别大,会产生误差。

本算法异常或误差处理

异常1:解决,输入不合法给予提示。

异常2:解决,扩大数据占有的空间

1.6 算法的代码参考

源码:

/**
     * @Title: set
     * @Description: 数据赋值
     * @param a存储的是输入的数据
     * @author cy
     * @date 2015-7-29
     */
    public static void set(double a[]) {

        b = a;
        n=a.length;
    }

    /**
     * @Title: avg
     * @Description: 计算平均值
     * @param a存储输入的数据
     * @param sum 表示输入的所有的数据之和
     * @param avg表示数据的均值
     * @author cy
     * @date 2015-7-29
     */
    public static void avg(double a[]) {
        // 定义一个平均值、和
        double sum = 0;
        for (double i : a) {
            sum += i;
        }

        System.out.println("平均值为:" + sum / n);

    }




类和方法基本描述

类源码:见源程序:Average.java

该算法首先接受输入的n个数据(输入时以输入0为结束),将其存入到List数组list中,再求出这些数据的总和sum,均值avg=sum/n;

类和方法调用接口

见源程序:Average.java

Average.java下包含如下方法:

List<Double> input()  //输入数据的函数

set(List<Double> list)  //数据赋值

avg(List<Double> list)  //计算均值的方法

回到顶部

2 中位数值


2.1 中位数算法的描述

中位数的定义永远处于一组数据的中间,它是个中间值

中位数均值符号定义

n:表示的是输入的数据的个数

中位数算法中的计算方法

  1. 按顺序排列数字:从最小值排列到最大值
  2. 如果有奇数个数值,则中位数为位于中间的数值。如果有n个数,则中间数的位置为(n+1)/2
  3. 如果有偶数个数值,则将两个中间数相加,然后除以2.中间位置的算法是:(n+1)/2。两个中间数分别位于这个中间数位置的两侧

2.2 中位数算法的应用场景

案例描述:有两组数据,分别求出两组数据的中位数,并比较两组数据的中位数的情况。


年龄


19


20


21


147


145


频数


3


6


3


1


1

1     1     1     2     2     2     2     3     3     31   31   32   32   32   32   33   33   33

中位数算法在该场景的定义

案例定义:将两组数据输入到算法中,算法中用数组list接受,之后,算法就会自动的算出这两组数据的中位数。

该场景下算法中符号解释

n:用来统计输入数据个数

list:用来存储输入数据

该场景下算法计算方法

①按顺序排列数字:

1     1     1     2     2     2     2     3     3     31   31   32   32   32   32   33   33   33

②如果有奇数个数值,则中位数为位于中间的数值。如果有n个数,则中间数的位置为(n+1)/2:

③如果有偶数个数值,则将两个中间数相加,然后除以2.中间位置的算法是:(n+1)/2:

该组数据中有18个数据为偶数。因此,用③中的方法,求出该组数据的中位数是17

2.3 本算法优缺点

  • 优点:能够快速准确地计算出数据的中位数
  • 缺点: 在输入的数据过多时,会产出一定的误差。
  • 本算法适用于double数据类型。

2.4 算法的输入数据、中间结果以及输出

本算法输入数据

* @param    i   double,表示输入的数据

本算法中间结果

* @param    list   List,存储输入的数据

本算法输出结果

* @return med  double,表示数据的中位数

2.5 算法中的异常及处理办法

本算法可能异常或误差

异常1:输入数据不合法,如:输入字母。

异常2:输入数据特别大,会产生误差。

本算法异常或误差处理

异常1:解决,输入不合法给予提示。

异常2:解决,扩大数据占有的空间

2.6 算法的代码参考

源码:

/**
     * @Title: med
     * @Description: 找中位数
     * @param a存储输入的数据
     * @param med表示中位数
     * @param n表示中位数的个数
     * @author cy
     * @date 2015-7-29
     */
    public static void med(double a[]) {
        // 定义中位数
        double med;
        // 对数据进行排序
        Arrays.sort(a);
        // 数据个数为奇数的情况
        if (n % 2 == 1) {
            med = a[(n+1)/2];
            // 数据个数为偶数的情况
        } else {
            med = (a[n / 2 ] + a[n/2+1]) / 2.0;
        }
        System.out.println("该组数据的中位数为:" + med);
    }




类和方法基本描述

类源码:见源程序:Median.java

算法中首先按输入的数据存入到数组List中(输入时以输入0为结束),再讲数组中的数字顺序排列:从最小值排列到最大值,如果有奇数个数值,则中位数为位于中间的数值。如果有n个数,则中间数的位置为(n+1)/2,如果有偶数个数值,则将两个中间数相加,然后除以2.中间位置的算法是:(n+1)/2。两个数分别位于这个中间数位置的两侧。

类和方法调用接口

见源程序:Median.java

Median.java下包含如下方法:

List<Double> input()  //输入数据的函数

set(List<Double> list)  //数据赋值

med(List<Double> list)  //找出数据中的中位数

回到顶部

3 众数


3.1 众数算法的描述

众数的定义

众数:即频率最大的数,与均值和中位数不同,众数必须是数据集中的一个数值,而且是最频繁出现的数值。

众数符号定义

n:表示的是输入的数据的个数

众数算法中的计算方法

众数的三步法:

  1. 把数据中的不同类别或数值全部找出来。
  2. 写出每个数值或类别的频数。
  3. 挑出具有最高频数的一个或几个数值,得出众数。

3.2 众数算法的应用场景

案例描述:有一组数据,求出这组数据的众数。

 


年龄


19


20


21


147


145


频数


3


6


3


1


1

众数算法在该场景的定义

案例定义:将这组数据输入到算法中,算法中用数组map接受,之后,算法就会自动的算出这组数据的众数。

该场景下算法中符号解释

n:用来统计输入的值个数

map:用来存储输入的值和值出现的频数

tm:存储频数

max:表示最大的频数的值

该场景下算法计算方法

①首先按照要求将上述的数据输入到算法中,并以输入两个#号为结束。

②将输入的数据的频数存储到数组tm中

③找出tm数组中最大的数

④输出tm中与max值相同的数,即为要求的众数。

3.3 本算法优缺点

  • 优点:能够快速准确地计算出众数
  • 缺点: 在输入的数据过多时,会产出一定的误差。
  • 本算法适用于double数据类型,String类型。

3.4 算法的输入数据、中间结果以及输出

本算法输入数据

* @param    i   double,表示输入的数据

* @param    map  Map,存储输入的值和该值出现的次数

本算法中间结果

* @param   tm   int[],存储值得频数

* @param   max   int 存储频数的最大值

本算法输出结果

* @return   int,表示数据的众数

3.5 算法中的异常及处理办法

本算法可能异常或误差

异常1:输入数据特别大,会产生误差。

本算法异常或误差处理

异常1:解决,扩大数据占有的空间

3.6 算法的代码参考

源码:

// 用于统计输入了多少数据
    static int n = 0;
    static String a1[];
    static int b1[];
    /**
     * @Title: set
     * @Description: 数据赋值
     * @param a存储输入的数值,b数值出现的次数
     * @author cy
     * @date 2015-7-29
     */
    public static void set(String a[],int b[]) {

        a1=a;
        b1=b;
        n=b.length;
    }

    /**
     * 找众数
     * @param n输入的数据的个数
     * @param b存储数值出现的次数的数组
     * @param max表示次数的最大值
     */
    public static void zs(String a[],int b[]) {
        int i = 0;
        Arrays.sort(b);
        // 数组b中的最大值
        int max;
        // 获取数组中的最大值
        max = b[b.length - 1];
        System.out.print("众数为:");
        for (int j =0;j<b.length;j++){
            if(b[j]==max){
                System.out.println(a[j]);
            }
        }
        // 通过max得出数据的众数
    }

类和方法基本描述

类源码:见源程序:Mode.java

算法中利用Map(映射,集合中的每一个元素包含一对键对象和值对象,键对象对应数据中的数值,值对象对应数值出现的频数)来存储输入的数据,将数据存入到map中,以输入两个#为输入结束。将map中的值对象即频数读出存入到数组tm中,在对数组tm进行排序,求出数组tm中的最大值max,最后将所有的最大值输出即得到众数。

类和方法调用接口

见源程序:Mode.java

Mode.java下包含如下方法:

Map<String, Object> input()  //输入数据的函数

set(Map<String, Object> map)  //数据赋值

zs(Map<String, Object> map) //找出数据的众数

回到顶部

4 方差


4.1 方差算法的描述

方差的定义

方差:量度数据分散性的一种方法,是数据与均值的距离的平方数的平值。

方差公式:∑(x-μ)^2/n

方差符号定义

n:表示的是输入的数据的个数

u:为数据的均值

∑:表示所有数据之和

方差算法中的计算方法

n:表示的是输入的数据的个数

u:为数据的均值

∑:表示所有数据之和

4.2 方差算法的应用场景

案例描述:有一组数据,求出这组数据的方差情况。

1     1     1     2     2     2     2     3     3     31   31   32   32   32   32   33   33   33

方差算法在该场景的定义

案例定义:将这组数据输入到算法中,算法中用数组list接受,之后,算法就会先计算出这一组数据的均值,再统计出该组数据的个数,最后,计算出这组数据的方差。

该场景下算法中符号解释

n:用来统计输入的数据个数

list:用来存储输入数据

sum:表示所有的数据之和

u:表示n个数据的均值

该场景下算法计算方法

案例中数据的和:sum=306 ,

统计数据的个数为:n=18

计算出该组数据的均值为:avg=sum/n,avg=17 ,

再计算出该组数据的方差为226.4083044982699

4.3 本算法优缺点

  • 优点:能够快速准确地计算出方差
  • 缺点: 在输入的数据过多时,会产出一定的误差。
  • 本算法适用于double数据类型。

4.4 算法的输入数据、中间结果以及输出

本算法输入数据

* @param    i   double,表示输入的数据

* @param    list   List,存储输入的数据

本算法中间结果

* @param   sum   double,表示输入的所有的数据之和

* @param   n   int,表示输入的数据的个数

* @param   u   double表示数据的平均值

本算法输出结果

* @return fc  double,表示数据的方差

4.5 算法中的异常及处理办法

本算法可能异常或误差

异常1:输入数据不合法,如:输入字母。

异常2:输入数据特别大,会产生误差。

本算法异常或误差处理

异常1:解决,输入不合法给予提示。

异常2:解决,扩大数据占有的空间

4.6 算法的代码参考

源码:

/**
     * @Title: calFac
     * @Description: 计算方差
     * @param a存储输入的数据
     * @param sum1所有的数据之和
     * @param u所有的数据的均值
     * @author cy
     * @date 2015-7-29
     */
    public static double calFac(double a[]) {

        // 数据的平均值
        double u;
        // 存储数据之和
        double sum1 = 0;
        for (double s : a) {
            sum1 += s;
        }
        // 计算平均值
        u = sum1 / n;
        for (double s : a) {
            sum = sum + (s) * (s);
        }
        return (sum / n - u * u);
    }
    /**
     * @Title: fac
     * @Description: 输出方差
     * @param a存储输入的数据
     * @author cy
     * @date 2015-7-29
     */
    public static void fac(double a[]) {

        System.out.println("方差为:" + calFac(a));
    }

类和方法基本描述

类源码:见源程序:Facha.java

方差算法的描述:方差是数据与均值的距离的平方数的平值。该算法首先接受输入的n个数据(输入时以输入0为结束),将其存入到List数组list中,再求出这些数据的总和sum,再求出数据的均值u=sum/n;最后根据方差的快速计算公式得出方差的值。

类和方法调用接口

见源程序:Facha.java

Facha.java下包含如下方法:

List<Double> input()  //输入数据的函数

set(List<Double> list)  //数据赋值

回到顶部

5 标准差


5.1 标准差算法的描述

标准差的定义

标准差:是描述典型值与均值距离的一种方法,标准差越小,数值离均值越近 。

标准差公式:σ=方差开方

注:标准差也有可能为0,如果每个数值与均值的距离都是为0,则标准差将为0。

标准差符号定义

n:表示的是输入的数据的个数

u:为数据的均值

∑:表示所有数据之和

σ:表示标准差

标准差算法中的计算方法

1、计算出该组数据的均值u

2、再统计该组数据的个数n

3、利用方差的公式计算出方差

4、利用标准差的公式计算出标准差

5.2 标准差算法的应用场景

案例描述:有一组数据,求出这组数据的标准差情况。

1     1     1     2     2     2     2     3     3     31   31   32   32   32   32   33   33   33

标准差算法在该场景的定义

案例定义:将这组数据输入到算法中,算法中用数组list接受,之后,算法就会先计算出这一组数据的均值,再统计出该组数据的个数,计算出这组数据的方差,最后计算出该组数据的标准差。

该场景下算法中符号解释

n:用来统计输入的数据个数

list:用来存储输入数据

sum:表示所有的数据之和

u:表示n个数据的均值

该场景下算法计算方法

案例中数据的和:sum=306,

统计数据的个数为:n=18

计算出该组数据的均值为:avg=sum/n,avg=17 ,

再计算出该组数据的方差为226.408304498269

最后计算出该组数据的标准差:15.129074290546956

5.3 本算法优缺点

  • 优点:能够快速准确地计算出标准差
  • 缺点: 在输入的数据过多时,会产出一定的误差。
  • 本算法适用于double数据类型。

5.4 算法的输入数据、中间结果以及输出

本算法输入数据

** @param    i   double,表示输入的数据

* @param    list   List,存储输入的数据

本算法中间结果

* @param   sum   double,表示输入的所有的数据之和

* @param   n   int,表示输入的数据的个数

* @param   u   double表示数据的平均值

本算法输出结果

* @return bzc  double,表示数据的方差

5.5 算法中的异常及处理办法

本算法可能异常或误差

异常1:输入数据不合法,如:输入字母。

异常2:输入数据特别大,会产生误差。

本算法异常或误差处理

异常1:解决,输入不合法给予提示。

异常2:解决,扩大数据占有的空间

5.6 算法的代码参考

源码:

/**
     * @Title: fac
     * @Description: 计算标准差
     * @param a存储输入的数据
     * @param sum1所有的数据之和
     * @param u所有的数据的均值
     * @author cy
     * @date 2015-7-29
     */
    public static void bzc(double a[]){
        double bzc;
        // 计算方差
        bzc = calFac(a);
        // 标准差=方差开根号
        System.out.println("标准差为:" + Math.sqrt(bzc));
    }

类和方法基本描述

类源码:见源程序:Bzc.java

该算法首先接受输入的n个数据(输入时以输入0为结束),将其存入到List数组list中,再求出这些数据的总和sum,再求出数据的均值u=sum/n;最后根据方差的快速计算公式得出方差的值,将方差的值开根号即得到标准差的值。

类和方法调用接口

见源程序:Bzc.java

Bzc.java下包含如下方法:

List<Double> input()  //输入数据的函数

set(List<Double> list)  //数据赋值

bzc(List<Double> list)  //计算方差的方法

回到顶部

6 本章补充


6.1 基本概念

全距

全距:也叫极差,是用于来量度数据集分散程度的一种方法。

其算法为:上界减去下界,其中上界为最大值,下界为最小值。

  • 优点:全距是量度数据分散程度的既简单又方便的方法。
  • 缺点:全距仅仅描述了数据的宽度,并没有描述数据在上下界之前的分布形态,不能体现数据的实际分布形态。并且,全距很容易受到异常值的影响。

摆脱异常值的办法:四分位数

四分位法:它将数据一分为四,最小的四分位数称为下四分位数,最大的四分位数称为上四分位数,中间的四分位数即为中位数。

 四分位距=上四分位数-下四分位数

求下四分位数的位置

①首先计算n/4

②如果结果为整数,则下四分位数位于“n/4”这个位置和下一个位置的中间取这两个位置上的数值的平均值,即得到下四分位数。

③如果“n/4”不是整数,则向上取整,结果即为下四分视为数的位置。

例如:如果你有6个数,首先计算6/4,得到1.5.向上取整的得到2,这表示下四分数的位置为2.

求上四分位数的位置

①首先计算3n/4

②如果结果为整数,则上四分位数位于“3n/4”这个位置这个位置和下一位置的中间,取这两个位置上的数值的平均值,即得到上四分位数。

③如果“3n/4”不是整数,则向上取整,所得到的新数字即为上四分位数的位置。 

百分位数:是将数据一分为百的数值。

箱线图

用箱线图绘制各种“距”

创建箱线图:首先按标度画出一个“箱”,想的左右两边分布代表下四分位数和上四分位数,然后在箱中画出一条线,标示中位数,这个箱的宽度就是四分距的宽度,随后,在箱的两边画出“线”,显示出全距的上界、下界和宽度。以下就是之前提到的舞蹈者的得分的箱线图。

舞蹈者A的全距相对较小,她的得分中位数比舞蹈者B的高一些,舞蹈者B的全距非常大,有时候这位舞蹈者的得分比舞蹈者A高很多,但是有时又低很多,舞蹈者A发挥更稳定,通常得分高于舞蹈者B,所以,我们会选择舞蹈者A

标准分

标准分是对不同环境下的相关数据进行比较的一种方法,可以对不同数据集的数据进行比较,可以使用标准分比较舞蹈者相对于其本人历史纪录的表现。

标准分的计算公式:z=(x-μ)/σ

计算标准分:

6.2 小结

学习的统计量:均值、中位数、众数,它们只是让我们知道了数据中心的情况,即数据集中的典型的具有代表性的数值,而第三章学的知识对让我们对一个数据集有了更完整的了解,知道了数据集中数值的实际的分布形态,有助于我们对数据更好的掌握。

            

本章主要讲的是分散性和变异性的量度,分散性的量度主要有全距(容易受异常值的影响)、四分位距(摆脱了异常值得影响)。异常性的量度主要有方差、标准差、标准分

回到顶部

7 开源共享 


 PPT:http://yunpan.cn/cFZnmrDr3rKQt    访问密码 27ba

开源代码:http://yunpan.cn/cFZnjmcvzRsyg    访问密码 bf10

http://www.cnblogs.com/baiboy

时间: 2024-08-28 06:11:51

【程序员眼中的统计学(2)】集中趋势度量:分散性、变异性、强大的距的相关文章

【程序员眼中的统计学(12)】相关与回归:我的线条如何? (转)

阅读目录 目录 1 算法的基本描述 2 算法的应用场景. 3算法的优点和缺点 4 算法的输入数据.中间结果以及输出结果 5 算法的代码参考 6 共享 相关与回归:我的线条如何? 作者 白宁超 2015年10月25日22:16:07 摘要:程序员眼中的统计学系列是作者和团队共同学习笔记的整理.首先提到统计学,很多人认为是经济学或者数学的专利,与计算机并没有交集.诚然在传统学科中,其在以上学科发挥作用很大.然而随着科学技术的发展和机器智能的普及,统计学在机器智能中的作用越来越重要.本系列统计学的学习

【程序员眼中的统计学(7)】正态分布的运用:正态之美

正态分布的运用:正态之美 1正态分布描述 正态分布是最重要的一种概率分布.正态分布概念是由德国的数学家和天文学家Moivre(棣莫弗)于1733年受次提出的,但由于德国数学家Gauss(高斯)率先将其应用于天文学家研究,故正态分布又叫高斯分布.正态分布起源于误差分析,早期的天文学家通过长期对一些天体的观测收集到了大量数据,并利用这些数据天体运动的物理模型,其中第谷与开 普勒在建模中提出了一条原则-"模型选择的最终标准是其与观测数据的符合程度",这个"符合程度"实质上

【程序员眼中的统计学(4)】离散概率分布的运用:善用期望

离散概率分布的运用:善用期望  1 离散概率分布 1  定义 设离散型随机变量X所有可能得取值 Xi (i=1,2,3--.n),且事件{X=xi }的概率为P{X=xi }= pi ,此称为离散型随机变量的概率分布或分布列,即离散概率分布.用表格可表示: 作为一个离散概率分布,应满足以下两个性质: 在日常生活中此类例子不胜枚举,比如,扔一枚或多枚硬币,出现正面朝上的次数. 2    基本概念 离散随机变量 若一个随机变量X的所有可能的取值为有限个或无限可数个, 则称它为离散型随机变量.例如,玩

【程序员眼中的统计学(6)】几何分布、二项分布及泊松分布:坚持离散

几何分布.二项分布及泊松分布:坚持离散 1 回顾题引 1 问题? 小明滑雪: 每次(独立事件)试滑成功的概率0.2,不成功的概率0.8.则 成功 失败 0.2 0.8 1.试滑两次成功的概率?2.试滑一次或两次猜中的概率?3.试滑10000次,首次成功的概率?4.试滑第10000次以上成功的概率? 2 概率树: 3 解答: 1.概率树求概率 设X最终试滑成功次数,则:P(X=1)=P(第1次试滑成功)=0.2 [注:试滑一次成功的概率]P(X=2)=P(第1次试滑失败AND第2试滑成功)=0.2

【程序员眼中的统计学(8)】统计抽样的运用:抽取样本

统计抽样的运用:抽取样本 1总体和样本 1.1总体和样本及相关概念 总体(population):统计学上指的是准备进行测量.研究或分析的整个群体.可以是人.得分,也可以是糖果 - 关键在于总体指的是所有对象.总体可分为有限总体和无限总体. 个体:组成总体的每一个考查对象. 样本(Sample):从总体中选取的一部分对象,是总体的一个子集.样本具有代表性,能在一定程度上反映总体特性. 抽样(Sampling):从总体中抽取部分个体的过程成为抽样,强调的是过程. 样本容量(Sample Size)

【程序员眼中的统计学(6.2)】原创实现二项分布算法以及应用

 二项分布算法 1 算法的基本描述,包括:定义.符号解释.具体的计算方法. 1.1 算法描述 在进行一系列相互独立实验,每次既有成功,又有失败的可能,且单次实验成功概率相等.在一系列试验中求成功的次数.这种情况下适用于本算法. 本算法中在n次伯努利试验中:试验n次得到r次成功的概率.二项分布的期望.二项分布方差的具体实现. 1.2 定义 在相互独立事件中,每道题答对概率为p,答错概率为q.在n个问题中答对r个问题的概率为:  这类问题称之为二项分布.表达式为:X~B(n,p) 1.3 符号解释

【程序员眼中的统计学(6.1)】原创实现几何分布算法以及应用

 几何分布算法 1 算法的基本描述,包括:定义.符号解释.具体的计算方法. 1.1 算法描述 在进行一系列相互独立实验,每次既有成功,又有失败的可能,且单次实验成功概率相等.为了取得第一次成功需要进行多少次实验.这种情况下适用于本算法. 本算法中在n次伯努利试验中:试验r次得到第一次成功的概率.试验r次以上才第一次成功的概率.试验r次或者不到r次才第一次成功.几何分布的期望.几何分布方差的具体实现. 1.2 定义 如果p代表成功概率,则1-p即q代表失败概率使用以下 公式叫做概率的几何分布. 1

程序员眼中的统计学(3)】概率计算:把握机会

概率计算:把握机会 1 随机试验 1 随机试验的定义 我们将对自然现象的一次观察或进行一次科学试验称为试验. 2 随机试验的举例 举例1:硬币试验 E1: 抛一枚硬币,观察正(H)反(T) 面的情况. E2: 将一枚硬币抛三次,观察正反面出现的情况. E3: 将一枚硬币抛三次,观察出现正面的情况. E4: 电话交换台一分钟内接到的呼唤次数. E5: 在一批灯泡中任取一只, 测试它的寿命. 举例2:数学家去赌场 新闻:数学家3年赌赢156亿人民币,数学家在赌场里有什么优势? 令19名数学家惊喜的是

【程序员眼中的统计学(1)】信息图形化:第一印象

1 饼图算法描述 1.1 饼图算法基本描述 在介绍饼图之前我们先来看一张表格: 上图是表示某公司在下半年中每月的利润情况. 就这张表格而言,我们只能知道各个月份的利润,却无法知道每个月份占总利润的比例,根据这张表格我们画出了两张图,如下: 我们从图中很容易可以得到两个信息:第一幅图看起来数据相差不大,第二幅图看起来数据相差非常大,对于同一张表所画出的两张图为什么会有两种截然不同的见解呢? 其实会发生上述不同的观点主要是因为这两张图的纵轴和标度不一样,第一张图纵轴的起点是0,标度是0.5,而第二张