精华内容
下载资源
问答
  • 参数估计有点估计(point estimation)和区间估计(interval estimation)两。 点估计是依据样本估计总体分布中所含的未知参数或未知参数的函数。通常它们是总体的某个特征值,如数学期望、方差和相关系数等。点...
    参数估计有点估计(point estimation)区间估计(interval estimation)两种。

    点估计是依据样本估计总体分布中所含的未知参数或未知参数的函数。通常它们是总体的某个特征值,如数学期望、方差和相关系数等。点估计问题就是要构造一个只依赖于样本的量,作为未知参数或未知参数的函数的估计值。
    例如,设一批产品的废品率为θ。为估计θ,从这批产品中随机地抽出n个作检查,以X记其中的废品个数,用X/n估计θ,这就是一个点估计。

    构造点估计常用的方法是:
      ①矩估计法。用样本矩估计总体矩,如用样本均值估计总体均值。
      ②最大似然估计法。于1912年由英国统计学家R.A.费希尔提出,用来求一个样本集的相关概率密度函数的参数。(在以后的文章中专门讨论)
      ③最小二乘法。主要用于线性统计模型中的参数估计问题。
      ④贝叶斯估计法。基于贝叶斯学派(见贝叶斯统计)的观点而提出的估计法。

    可以用来估计未知参数的估计量很多,于是产生了怎样选择一个优良估计量的问题。首先必须对优良性定出准则,这种准则是不唯一的,可以根据实际问题和理论研究的方便进行选择。优良性准则有两大类:一类是小样本准则,即在样本大小固定时的优良性准则;另一类是大样本准则,即在样本大小趋于无穷时的优良性准则。最重要的小样本优良性准则是无偏性及与此相关的一致最小方差无偏估计,其次有容许性准则,最小化最大准则,最优同变准则等。大样本优良性准则有相合性、最优渐近正态估计和渐近有效估计等。

    区间估计是依据抽取的样本,根据一定的正确度与精确度的要求,构造出适当的区间,作为总体分布的未知参数或参数的函数的真值所在范围的估计。例如人们常说的有百分之多少的把握保证某值在某个范围内,即是区间估计的最简单的应用。
    1934年统计学家 J.奈曼创立了一种严格的区间估计理论。求置信区间常用的三种方法:
      ①利用已知的抽样分布。
      ②利用区间估计与假设检验的联系。(请参考几种常见的参数估计)
      ③利用大样本理论。

    展开全文
  • python中统计计数的几种方法

    千次阅读 2020-10-26 15:59:17
    以下实例展示了 count() 方法的使用方法: # !/usr/bin/python3 T = (123, 'Google', 'Runoob', 'Taobao', 123); print ("123 元素个数 : ", T.count(123)) print ("Runoob 元素个数 : ", T.count('Runoob')) ...

    以下实例展示了 count() 方法的使用方法:

    # !/usr/bin/python3
     
    T = (123, 'Google', 'Runoob', 'Taobao', 123);
     
    print ("123 元素个数 : ", T.count(123))
    print ("Runoob 元素个数 : ", T.count('Runoob'))
    

    以上实例输出结果如下:

    123 元素个数 :  2
    Runoob 元素个数 :  1
    

    1) 使用字典dict()

    循环遍历出一个可迭代对象中的元素,如果字典没有该元素,那么就让该元素作为字典的键,并将该键赋值为1,如果存在就将该元素对应的值加1.

    lists = ['a','a','b',5,6,7,5]
            count_dict = dict()
            for item in lists:
                if item in count_dict:
                    count_dict[item] += 1
                else:
                    count_dict[item] = 1
    

    2) 使用defaultdict()

    defaultdict(parameter)可以接受一个类型参数,如str,int等,但传递进来的类型参数,不是用来约束值的类型,更不是约束键的类型,而是当键不存在的话,实现一种值的初始化

    • defaultdict(int):初始化为 0
    • defaultdict(float):初始化为 0.0
    • defaultdict(str):初始化为 ”
    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    from collections import defaultdict
            lists = ['a', 'a', 'b', 5, 6, 7, 5]
            count_dict = defaultdict(int)
            for item in lists:
                count_dict[item] += 1
    

    3)使用集合(set)和列表(list)

    先使用set去重,然后循环的把每一个元素和每一个元素对应的次数lists.count(item)组成一个元组放在列表里面

    lists = ['a', 'a', 'b', 5, 6, 7, 5]
    count_set = set(lists)
    count_list = list()
    for item in count_set:
        count_list.append((item,lists.count(item))
    

    4)使用Counter

    Counter是一个容器对象,主要的作用是用来统计散列对象,可以使用三种方式来初始化

    • 参数里面参数可迭代对象 Counter(“success”)
    • 传入关键字参数Counter((s=3,c=2,e=1,u=1))
    • 传入字典 Counter({“s”:3,“c”=2,“e”=1,“u”=1})

    Counter()对象还有几个可以调用的方法,代码里面分别进行了说明

    from collections import Counter
    lists = ['a', 'a', 'b', 5, 6, 7, 5]
    a = Counter(lists)
    print(a)  # Counter({'a': 2, 5: 2, 'b': 1, 6: 1, 7: 1})
    a.elements() # 获取a中所有的键,返回的是一个对象,我们可以通过list来转化它
    a.most_common(2) # 前两个出现频率最高的元素已经他们的次数,返回的是列表里面嵌套元组
    a['zz']  # 访问不存在的时候,默认返回0
    a.update("aa5bzz") # 更新被统计的对象,即原有的计数值与新增的相加,而不是替换
    a.subtrct("aaa5z") # 实现与原有的计数值相减,结果运行为0和负值
    

    1.collections模块

    collections模块自Python 2.4版本开始被引入,包含了dict、set、list、tuple以外的一些特殊的容器类型,分别是:

    • OrderedDict类:排序字典,是字典的子类。引入自2.7。
    • namedtuple()函数:命名元组,是一个工厂函数。引入自2.6。
    • Counter类:为hashable对象计数,是字典的子类。引入自2.7。
    • deque:双向队列。引入自2.4。
    • defaultdict:使用工厂函数创建字典,使不用考虑缺失的字典键。引入自2.5。

    2.Counter类

    Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。Counter类和其他语言的bags或multisets很相似。

    2.1 创建

    下面的代码说明了Counter类创建的四种方法:

    >>> c = Counter()  # 创建一个空的Counter类
    >>> c = Counter('gallahad')  # 从一个可iterable对象(list、tuple、dict、字符串等)创建
    >>> c = Counter({'a': 4, 'b': 2})  # 从一个字典对象创建
    >>> c = Counter(a=4, b=2)  # 从一组键值对创建
    

    2.2 计数值的访问与缺失的键

    当所访问的键不存在时,返回0,而不是KeyError;否则返回它的计数。

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    >>> c = Counter("abcdefgab")
    >>> c["a"]
    2
    >>> c["c"]
    1
    >>> c["h"]
    0
    

    2.3 计数器的更新(update和subtract)

    可以使用一个iterable对象或者另一个Counter对象来更新键值。

    计数器的更新包括增加和减少两种。其中,增加使用update()方法:

    >>> c = Counter('which')
    >>> c.update('witch')  # 使用另一个iterable对象更新
    >>> c['h']
    3
    >>> d = Counter('watch')
    >>> c.update(d)  # 使用另一个Counter对象更新
    >>> c['h']
    4
    

    减少则使用subtract()方法:

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    >>> c = Counter('which')
    >>> c.subtract('witch')  # 使用另一个iterable对象更新
    >>> c['h']
    1
    >>> d = Counter('watch')
    >>> c.subtract(d)  # 使用另一个Counter对象更新
    >>> c['a']
    -1
    

    2.4 键的删除

    当计数值为0时,并不意味着元素被删除,删除元素应当使用del。

    >>> c = Counter("abcdcba")
    >>> c
    Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})
    >>> c["b"] = 0
    >>> c
    Counter({'a': 2, 'c': 2, 'd': 1, 'b': 0})
    >>> del c["a"]
    >>> c
    Counter({'c': 2, 'b': 2, 'd': 1})
    

    2.5 elements()

    返回一个迭代器。元素被重复了多少次,在该迭代器中就包含多少个该元素。元素排列无确定顺序,个数小于1的元素不被包含。

    >>> c = Counter(a=4, b=2, c=0, d=-2)
    >>> list(c.elements())
    ['a', 'a', 'a', 'a', 'b', 'b']
    

    2.6 most_common([n])

    返回一个TopN列表。如果n没有被指定,则返回所有元素。当多个元素计数值相同时,排列是无确定顺序的。

    >>> c = Counter('abracadabra')
    >>> c.most_common()
    [('a', 5), ('r', 2), ('b', 2), ('c', 1), ('d', 1)]
    >>> c.most_common(3)
    [('a', 5), ('r', 2), ('b', 2)]
    

    2.7 fromkeys

    未实现的类方法。

    2.8 浅拷贝copy

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    >>> c = Counter("abcdcba")
    >>> c
    Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})
    >>> d = c.copy()
    >>> d
    Counter({'a': 2, 'c': 2, 'b': 2, 'd': 1})
    

    2.9 算术和集合操作

    +、-、&、|操作也可以用于Counter。其中&和|操作分别返回两个Counter对象各元素的最小值和最大值。需要注意的是,得到的Counter对象将删除小于1的元素。

    >>> c = Counter(a=3, b=1)
    >>> d = Counter(a=1, b=2)
    >>> c + d  # c[x] + d[x]
    Counter({'a': 4, 'b': 3})
    >>> c - d  # subtract(只保留正数计数的元素)
    Counter({'a': 2})
    >>> c & d  # 交集:  min(c[x], d[x])
    Counter({'a': 1, 'b': 1})
    >>> c | d  # 并集:  max(c[x], d[x])
    Counter({'a': 3, 'b': 2})
    

    3.常用操作

    下面是一些Counter类的常用操作,来源于Python官方文档

    sum(c.values())  # 所有计数的总数
    c.clear()  # 重置Counter对象,注意不是删除
    list(c)  # 将c中的键转为列表
    set(c)  # 将c中的键转为set
    dict(c)  # 将c中的键值对转为字典
    c.items()  # 转为(elem, cnt)格式的列表
    Counter(dict(list_of_pairs))  # 从(elem, cnt)格式的列表转换为Counter类对象
    c.most_common()[:-n:-1]  # 取出计数最少的n个元素
    c += Counter()  # 移除0和负值
    
    展开全文
  • 参数统计概述

    千次阅读 多人点赞 2019-11-16 22:48:05
    文章目录非参数统计概述引言非参数方法举例Wilcoxon 符号秩检验Wilcoxon秩和检验 引言 非参数统计(nonparametric statistics)是相对于参数统计而言的一个统计学分支,是数理统计的重要内容。在参数统计中,我们往往...

    非参数统计概述

    引言

    非参数统计(nonparametric statistics)是相对于参数统计而言的一个统计学分支,是数理统计的重要内容。在参数统计中,我们往往碰到的是这样的情况:

    • 总体分布的数学形式已知(例如正态分布、指数分布等)。
    • 总体分布的概率密度函数中含有有限个参数。

    然而实际情况往往不是这样,我们通常不知道总体分布的数学形式,或者虽然已知总体的分布但却不能用有限个参数去刻画,我们只能对总体做出一些简单的假定(例如总体分布是连续的或者离散的,总体分布是否对称),这时如果我们要对总体的某些性质进行估计或者假设检验,就需要使用非参数方法

    非参数方法是一种不依赖于总体分布具体形式的统计推断方法,构造统计量通常与总体分布无关,也就是说,非参数方法与总体分布无关,因此,非参数方法也被称为自由分布(distribution-free)方法。非参数方法具有如下的特点:

    • 适用面广但针对性较差
    • 对变量的量化要求很低。无论是分类变量和数值变量,都可以使用非参数方法进行估计或检验。
    • 非参数方法对于数据的要求不如参数方法严格
    • 非参数方法具有较好的鲁棒性,不容易受数据中极端值和离群点的影响。
    • 对于符合参数方法条件的数据,使用非参数方法会使犯第二类错误的概率增大,即统计功效会更小。

    由以上的特点,我们可以总结出选用参数方法和非参数方法的原则:

    • 如果中位数(而不是均值)更能反应数据的集中趋势时(极端值较多),应当选用非参数方法。
    • 如果数据为定序变量(如优良中)时,应当采用非参数方法。
    • 如果数据符合参数方法的条件时,应当优先选用参数方法

    接下来我们来详细讨论一些非参数方法的例子。

    非参数方法举例

    Wilcoxon 符号秩检验

    Wilcoxon符号秩检验(signed-rank test)对应着参数方法中的单样本t检验法和配对样本t检验法。接下来我们通过一个例子来讲解Wilcoxon符号秩检验的步骤。

    假设我们研究的课题是上培训班是否会提升学生成绩,我们收集到的数据如下:

    BeforeAfter
    7260
    6286
    7083
    6053
    7575
    5565
    7189
    4856

    根据这一张表格,我们可以进一步得到这样的另一张表格。

    DiffSigned-rank
    -12-4
    247
    135
    -7-1
    0
    103
    186
    82

    其中,Diff是拿右边一列减去左边一列得到的数据,而得到Signed-rank略显复杂,首先我们将Diff的绝对值从小到大进行排名(rank),分别编上1-n的编号,然后根据Diff的实际符号,给排名也添加上相同的符号,我们就得到了样本的符号秩(signed-rank),我们就由符号秩来构造统计量。

    需要注意的是,我们进行Wilcoxon符号秩检验时,不考虑Diff=0的情况,我们要将Diff=0的数据去除。

    接下来我们用符号秩来构造统计量 Z Z Z Z = ∑ i = 1 n S R i ∑ i = 1 n S R i 2 Z = \frac{\sum^n_{i=1}SR_i}{\sqrt{\sum^n_{i=1}SR_i^2}} Z=i=1nSRi2 i=1nSRi
    与参数方法中的 Z Z Z统计量一样, Z Z Z~ N ( 0 , 1 ) N(0,1) N(0,1),于是我们算得 Z Z Z统计量之后,就可以通过标准正态分布来计算p值,在上面这个例子中: Z = 1.52 Z=1.52 Z=1.52
    我们进行一个双尾检验,查表可得 p − v a l u e = 2 ∗ ( 1 − 0.9357 ) = 0.1286 > 0.05 p-value=2*(1-0.9357)=0.1286>0.05 pvalue=2(10.9357)=0.1286>0.05
    得出结论:应当接受零假设,成绩与是否上辅导班无关。

    Wilcoxon秩和检验

    Wilcoxon秩和检验(rank-sum test)用于检验两个总体的中位数是否相等,适用于中位数能更好的反应总体集中趋势的情况,对应了参数方法中的Two sample t-test,同样我们通过一个例子来讲解Wilcoxon秩和检验的过程。

    我们仍然使用上面的表格,只不过我们这次研究的题目是成绩是否与性别有关。(实际上,两列数据的样本容量可以不同)可以发现,这样一来,数据中的行不再是一一对应关系。

    MaleFemale
    7260
    6286
    7083
    6053
    7575
    5565
    7189
    4856

    我们将两列数据合在一起,进行从小到大的排序,求出它们的秩(秩的英文为rank,也可以翻译为排名)。

    Rank(Male)Rank(Female)
    115.5
    714
    913
    5.52
    12.512.5
    38
    1015
    14

    需要注意的是,当出现多个样本值相同时,它们的秩应当等于它们占用的秩的位置的平均值。接下来我们来构造统计量,首先我们将每一列元素的秩进行求和:
    S u m 1 = ∑ i n 1 R 1 Sum1 = \sum_i^{n_1}{R_1} Sum1=in1R1 S u m 2 = ∑ i n 2 R 2 Sum2 = \sum_i^{n_2}{R_2} Sum2=in2R2
    设两个变量的样本容量分别是 n 1 n_1 n1, n 2 n_2 n2,我们构造下面的统计量:
    W = S u m 1 − n 1 ∗ ( n 1 + 1 ) 2 W=Sum1 - \frac{n_1*(n_1+1)}{2} W=Sum12n1(n1+1)
    同样的,利用 S u m 2 Sum2 Sum2也可以构造一个这样的统计量,但实际上检验一个即可。我们同样避开直接寻找 W W W的分布,我们选择再构造一个统计量:
    Z = W − n 1 n 2 / 2 n 1 n 2 ( n 1 + n 2 + 1 ) / 12 Z=\frac{W-n_1n_2/2}{\sqrt{n_1n_2(n_1+n_2+1)/12}} Z=n1n2(n1+n2+1)/12 Wn1n2/2
    同样的, Z Z Z~ N ( 0 , 1 ) N(0,1) N(0,1),接下来我们就可以在标准正态分布中查找到 P − v a l u e P-value Pvalue,从而做出是否拒绝零假设的判断。

    在上面这个例子中,我们计算得到:
    W = 23 W=23 W=23 Z = − 0.945 Z=-0.945 Z=0.945
    查表得到对应的p值为:
    p − v a l u e = 2 ∗ ( 1 − 0.8289 ) = 0.3422 > 0.05 p-value=2*(1-0.8289)=0.3422>0.05 pvalue=2(10.8289)=0.3422>0.05所以我们应当接受零假设,成绩与性别无关。

    斯皮尔曼相关性检验

    在参数统计中,我们学习过一个相关系数 ρ x y \rho_{xy} ρxy,它的定义如下: ρ x y = C o v ( X , Y ) S X S Y \rho_{xy}=\frac{Cov(X,Y)}{S_XS_Y} ρxy=SXSYCov(X,Y)实际上,我们把这个相关系数称为皮尔逊相关系数(Pearson Correlation),而接下来我要介绍的是另一个相关系数,称为斯皮尔曼相关系数(Spearman Correlation)。

    首先举一个例子,假设我们研究的课题是学生考试分数与课堂满意度是否相关,我们采集到了这样一组数据:

    ScoreHappiness
    30不满意
    40一般
    50不满意
    60一般
    70满意
    80满意
    90满意
    100满意

    可以看到,这里的Happiness数据是定序变量,我们没有办法计算它的方差和它与定距变量的协方差,但我们可以对它们进行排序,参考前两种方法,我们这两列数据分别排序并求出它们的秩。

    Rank(Score)Rank(Happiness)
    11.5
    23.5
    31.5
    43.5
    56.5
    66.5
    76.5
    86.5

    同样的,对于相同的样本值,我们也要采用取平均值的方法求它们的秩。接下来我们对这两列秩求它们的皮尔逊相关系数,得到的就是原数据的斯皮尔曼相关系数:
    ρ = C o v ( R 1 , R 2 ) S R 1 S R 2 \rho=\frac{Cov(R_1,R_2)}{S_{R_1}S_{R_2}} ρ=SR1SR2Cov(R1,R2)另外还有一个简便计算公式,设样本容量为 n n n
    ρ = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) \rho=1-\frac{6\sum{d_i^2}}{n(n^2-1)} ρ=1n(n21)6di2然后,与参数方法中的皮尔逊相关性检验类似,有:
    ρ 1 − ρ 2 / n − 2 ∼ t ( n − 2 ) \frac{\rho}{\sqrt{1-\rho^2}/\sqrt{n-2}}\sim t(n-2) 1ρ2 /n2 ρt(n2)
    然后在 t t t分布中计算 p − v a l u e p-value pvalue,做出判断。

    Bootstrap

    Bootstrap简单的来说,我们已有一个容量为 n n n的原始样本,利用随机数等方式进行放回抽样得到一个容量同样为 n n n的样本,这种样本就称为Bootstrap样本或自助样本。

    我们反复地、独立地从原始样本中抽取很多很多个Bootstrap样本(通常不少于1000个),利用这些样本对总体进行统计推断,这种方法被称为非参数Bootstrap方法,又称为自助法。

    我们使用成绩与性别关系的数据:

    MaleFemale
    7260
    6286
    7083
    6053
    7575
    5565
    7189
    4856

    我们对两列数据进行有放回抽样,得到了1000个Bootstrap样本,记作 D 1 D_1 D1- D 1000 D_{1000} D1000。我们需要分析的是两个样本之间的中位数是否有差异,因此我们将每一个Bootstrap样本的中位数差值求出来,用这1000个数据的中位数差构成一个统计分布,用直方图表示:
    在这里插入图片描述
    然后我们再根据已知的中位数差值,在这个统计分布中计算p值、置信区间等,做出统计推断。

    Bootstrap是一种非常重要的方法,常常应用于各种玄学建模 。需要注意的是Bootstrap方法也有参数版本的方法,在这里并不讨论。

    Bootstrap实现的Python代码如下:

    # -*- coding: UTF-8 -*-
    import numpy as np
    import matplotlib.pyplot as plt
    def bootstrap(data):
        temp = []
        while len(temp) != len(data):
            r = np.random.randint(0,len(data))
            temp.append(data[r])
        temp = np.array(temp)
        return temp
    
    
    if __name__ == "__main__":
        male = np.array([72,62,70,60,75,55,71,48])
        female = np.array([60,86,83,53,75,65,89,56])
        v = []
        for i in range(2000):
            mbootstrap = bootstrap(male)
            fbootstrap = bootstrap(female)
            v.append(np.median(mbootstrap) - np.median(fbootstrap))
        v = np.array(v)
        plt.hist(v,bins=50)
        plt.show()
    

    Permutation

    Permutation,翻译为中文就是排列、置换的意思。在参数方法中进行假设检验,我们一般是假设或者已知总体的分布,然后构造统计量,得到这个统计量在零假设为真时的抽样分布,然后在抽样分布中计算p值,做出推断。而Permutation使得我们可以得到对任意统计量在零假设为真时的抽样分布,从而进行统计推断。接下来我们举例说明Permutation的过程。

    我们仍然使用成绩与性别的关系数据:

    MaleFemale
    7260
    6286
    7083
    6053
    7575
    5565
    7189
    4856

    H 0 : 男 女 成 绩 中 位 数 没 有 差 异 H_0:男女成绩中位数没有差异 H0: H 1 : 男 女 成 绩 中 位 数 有 差 异 H_1:男女成绩中位数有差异 H1:
    Permutation与Bootstrap类似,我们也需要将以下的步骤重复1000次以上:

    1. 把所有数字随机分配给Male( n 1 = 8 n_1=8 n1=8)和Female( n 2 = 8 n_2=8 n2=8)
    2. 计算Male和Female的中位数
    3. 计算并保存median(M)-median(F)

    重复1000次以上之后,我们就可以得到两组数据中位数差的近似分布,用直方图表示:
    在这里插入图片描述
    这样我们就获得了中位数差统计量的统计分布,然后我们根据这个分布和实际的中位数差,我们就可以计算出p值,从而进行统计推断。
    Permutation的Python代码如下:

    # -*- coding: UTF-8 -*-
    import numpy as np
    import matplotlib.pyplot as plt
    
    
    def permutation(data):
        perm = []
        num = set([])
        while len(perm) != len(data):
            r = np.random.randint(0, 16)
            if r not in num:
                perm.append(data[r])
                num.add(r)
        perm = np.array(perm)
        return perm
    
    
    if __name__ == "__main__":
        data = np.array([72, 62, 70, 60, 75, 55, 71, 48, 60, 86, 83, 53, 75, 65, 89, 56])
        diff = []
        for i in range(3000):
            temp = permutation(data)
            df = np.median(temp[:8]) - np.median(temp[8:])
            diff.append(df)
        diff = np.array(diff)
        plt.hist(diff, bins=50)
        plt.show()
    

    小结

    在这一篇博文中,我主要介绍以下几种非参数统计方法:

    • Wilcoxon符号秩检验
    • Wilcoxon秩和检验
    • Spearman相关性检验
    • Bootstrap
    • Permutation

    但无论是参数方法还是非参数方法都属于频率论的范畴,它们都存在着一个致命的缺陷:它们的检验过程是在假定零假设成立的情况下进行的,为了解决这个问题,需要把目光投向另一个统计学领域——贝叶斯统计。

    展开全文
  • 语音识别是完成语音到文字的转换。自然语言理解是完成文字到语义的转换。语音合成是用语音方式输出用户想要的信息...而语音识别系统的输入是语音,其复杂度要大得多,特别是口语 很多的不确定性。人与人交流时,往...
     语音识别是完成语音到文字的转换。自然语言理解是完成文字到语义的转换。语音合成是用语音方式输出用户想要的信息,用语音实现人与计算机之间的交互,主要包括语音识别、自然语言理解和语音合成。
           相对于机器翻译,语音识别是更加困难的问题。机器翻译系统的输入通常是印刷文本,计算 机能清楚地区分单词和单词串。而语音识别系统的输入是语音,其复杂度要大得多,特别是口语 有很多的不确定性。人与人交流时,往往是根据上下文提供的信息猜测对方所说的是哪一个单 词,还可以根据对方使用的音调、面部表情和手势等来得到很多信息。特别是说话者会经常更正所说过的话,而且会使用不同的词来重复某些信息。显然,要使计算机像人一样识别语音是很困难的。
            语音识别过程包括从一段连续声波中采样,将每个采样值量化,得到声波的压缩数字化表 示。采样值位于重叠的帧中,对于每一帧,抽取出一个描述频谱内容的特征向量。然后,根据语音信号的特征识别语音所代表的单词,语音识别过程主要分为五步,如下:
            1.语音信号采集
              语音信号采集是语音信号处理的前提。语音通常通过话筒输入计算机。话筒将声波转换为 电压信号,然后通过A/D装置(如声卡)进行采样,从而将连续的电压信号转换为计算机能够处理的数字信号。
             目前多媒体计算机已经非常普及,声卡、音箱、话筒等已是个人计算机的基本设备。其中声 卡是计算机对语音信进行加工的重要部件,它具有对信号滤波、放大、A/D和D/A转换等功 能。而且,现代操作系统都附带录音软件,通过它可以驱动声卡采集语音信号并保存为语音文件。
              对于现场环境不好,或者空间受到限制,特别是对于许多专用设备,目前广泛采用基于单片机、DSP芯片的语音信号采集与处理系统。
            2.语音信号预处理
            语音信号号在采集后首先要进行滤波、A/D变换,预加重(Preemphasis)和端点检测等预处理, 然后才能进入识别、合成、增强等实际应用。
           滤波的目的有两个:一是抑制输入信号中频率超出//2的所有分量(/:为采样频率),以防止 混叠干扰;二是抑制50 Hz的电源工频干扰。因此,滤波器应该是一个带通滤波器。
           A/D变换是将语音模拟信号转换为数字信号。A/D变换中要对信号进行量化,量化后的信 号值与原信号值之间的差值为量化误差,又称为量化噪声。
           预加重处理的目的是提升高频部分,使信号的频谱变得平坦,保持在低频到高频的整个频带 中,能用同样的信噪比求频谱,便于频谱分析。
           端点检测是从包含语音的一段信号中确定出语音的起点和终点。有效的端点检测不仅能减 少处理时间,而且能排除无声段的噪声干扰。目前主要有两类方法:时域特征方法和频域特征方 法。时域特征方法是利用语音音量和过零率进行端点检测,计算量小,但对气音会造成误判,不 同的音量计算也会造成检测结果不同。频域特征方法是用声音的频谱的变异和熵的检测进行语 音检测,计算量较大。
            3.语音信号的特征参数提取
            人说话的频率在10 kHz以下。根据香农采样定理,为了使语音信号的采样数据中包含所需单词的信息,计算机的采样频率应是需要记录的语音信号中包含的最高语音频率的两倍以上。 一般将信号分割成若干块,信号的每个块称为帧,为了保证可能落在帧边缘的重要信息不会丢 失,应该使帧有重叠。例如,当使用20 kH*的采样麵率时,标准的一帧为10 ms,包含200个采样值。
            话筒等语音输入设备可以采集到声波波形,如囫10.4所示。虽然这些声音的波形包含了所 需单词的信息,但用肉眼观察这些波形却得不到多少信息因此,需要从采样数据中抽取那些能 够帮助辨别单词的特征信息。在语音识别中,常用线性预测编码 技术抽取语音特征。
            线性预测编码的基本思想是:语音信号采样点之间存在相关性,可用过去的若干采样点的线 性组合预测当前和将来的采样点值。线性預测系数埽以通过使预测信号和实际信号之间的均方误差最小来唯一确定。
            语音线性预测系数作为语音信号的一种特征参数,已经广泛应用于语音处理各个领域。
            4.向置量化
              向量量化(Vector Quantization,VQ)技术是20世纪W年代后期发展起来的一种数据压缩和 编码技术。经过向量量化的特征向量也可以作为后面隐马尔可夫模型中的输入观察符号。
              在标量量化中整个动态范围被分成若干个小区间,每个小区间有一个代表值,对于一个输入 的标量信号,量化时落入小区间的值就用这个代表值>[戈替。因为这时的信号量是一维的标量,所 以称为标量量化。
              向量量化的概念是用线性空间的观点[,把标量改为一维的向量,对向量进行量化。和标量量化一样,向量量化是把向量空间分成若干个小区域,每个小区域寻找一个代表向量,量化时落入 小区域的向量就用这个代表向量代替。
              向量量化的基本原理是将若干个标量数据组成一个向量(或者是从一帧语音数据中提取的 特征向量)在多维空间给予整体量化,从而可以在信息量损失较小的情况下压缩数据量。
              语音识别
             当提取声音特征集合以后,就可以识别这些特征所代表的单词。本节重点关注单个单词的 识别。识别系统的输入是从语音信号中提取出的特征参数,如LPC预测编码参数,当然,单词对 应于字母序列。语音识别所采用的方法一般有模板匹配法、随机模型法和概率语法分析法三种。 这三种方法都是建立在最大似然决策贝叶斯(Bayes)判决的基础上的。
            (1)模板(template)匹配法
                  在训练阶段,用户将词汇表中的每一个词依次说一遍,并且将其特征向量作为模板存入模板 库。在识别阶段,将输入语音的特征向量序列,依次与模板库中的每个模板进行相似度比较,将 相似度最高者作为识别结果输出。
             (2)随机模型法
                 随机模型法是目前语音识别研究的主流。其突出的代表是隐马尔可夫模型。语音信号在足 够短的时间段上的信号特征近似于稳定,而总的过程可看成是依次相对稳定的某一特性过渡到 另一特性。隐马尔可夫模型则用概率统计的方法来描述这样一种时变的过程。
             (3)概率语法分析法
                 这种方法是用于大长度范围的连续语音识别。语音学家通过研究不同的语音语谱图及其变 化发现,虽然不同的人说同一些语音时,相应的语谱及其变化有种种差异,但是总有一些共同的 特点足以使他们区别于其他语音,也即语音学家提出的“区别性特征”。另一方面,人类的语言 要受词法、语法、语义等约束,人在识别语音的过程中充分应用了这些约束以及对话环境的有关 信息。于是,将语音识别专家提出的“区别性特征”与来自构词、句法、语义等语用约束相互结 合,就可以构成一个“自底向上”或“自顶向下”的交互作用的知识系统,不同层次的知识可以用 若干规则来描述。
             除了上面的三种语音识别方法外,还有许多其他的语音识别方法。例如,基于人工神经网络 的语音识别方法,是目前的一个研究热点。目前用于语音识别研究的神经网络有BP神经网络、 Kohcmen特征映射神经网络等,特别是深度学习用于语音识别取得了长足的进步。

             通过语音实现人与计算机实现沟通交流,主要包括语音合成、自然语言处理,语音识别是模式识别一个应用领域,为大家脑补几篇,科谱好文,如下:

    1. 什么是自然语言处理,主要存在哪些难点?
    2. 自然语言理解过程主要有哪些层次,各层次的功能是怎么样?
    3. 模式识别具体是怎么定义的,主要研究方向是什么?

         聚焦多智时代,引领智能变革,多智时代为人工智能科谱呐喊!

    展开全文
  • 16常用的数据统计分析方法汇总

    万次阅读 2019-04-24 16:43:00
    经常会有朋友问到一个朋友,数据分析常用的分析方法有哪些,我需要学习哪个等等之类的问题,今天数据分析精选给大家整理了十六常用的数据分析方法,供大家参考学习。 (注:这些统计分析方法基本都是统计学的方法...
  • 参数统计

    千次阅读 2017-08-23 21:56:39
    参数统计 出自 MBA智库百科(http://wiki.mbalib.com/) 非参数统计(Nonparametric statistics) 目录 [隐藏] 1 什么是非参数统计2 非参数统计的适用范围3 非参数统计的特点4 非参数统计...
  • 参数估计方法整理

    万次阅读 多人点赞 2018-08-06 10:33:27
    参数估计:是根据从总体中抽取的样本估计总体分布中包含的未知参数方法参数估计包括点估计和区间估计。 常见点估计方法:矩估计、最小二乘估计、极大似然估计、贝叶斯估计 区间估计:利用已知的抽样分布、...
  • tapply(salarys$SALARY, INDEX=salarys$SEX, FUN=sum)如果出现参数的长度不一致的错误,如下:Error in tapply(salarys$SALARY, INDEX = salarys$SEX, FUN = max) : 参数的长度必需相同请仔细检查salarysSALARY、sa
  • 假设检验之几种检验方法的比较

    万次阅读 多人点赞 2017-11-23 11:11:24
    假设检验是用来判断样本与样本,样本与总体的差异是由抽样误差引起还是本质差别造成的统计推断方法。其基本原理是先对总体的特征作出某种假设,然后通过抽样研究的统计推理,对此假设应该被拒绝还是接受作出推断。 ...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    从图1中可以看到,笔者系统中可以使用的Shellbash(缺省)、csh、sh、tcsh四。 exit 1.作用 exit命令的作用是退出系统,它的使用权限是所有用户。 2.格式 exit 3.参数 exit命令没有参数,运行后退出系统...
  • print sys.argv 输出整个命令行,以list的格式,所以时候可以通过判断这个list的长度来判断是否有参数值输入。 print sys.argv[0] print sys.argv[1] print sys.argv[2] 上面这些都是后面的参数值了,在函数主体内...
  • Linux 面试题 1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?... 可以带哪些参数什么区别? 5、建立软链接(快捷方式),以及硬链接的命令。 6、目录创...
  • 图像分割综述

    万次阅读 多人点赞 2019-07-09 22:03:48
    基于区域的分割方法是以直接寻找区域为基础的分割技术,基于区域提取方法有基本形式:一是区域生长,从单个像素出发,逐步合并以形成所需要的分割区域;另一是从全局出发,逐步切割至所需的分割区域。 ...
  • python中统计计数的几种方法和Counter的介绍

    万次阅读 多人点赞 2018-04-30 10:07:53
    Counter()对象还有个可以调用的方法,代码里面分别进行了说明 from collections import Counter lists = [ 'a' , 'a' , 'b' , 5 , 6 , 7 , 5 ] a = Counter(lists) print( a ) # Counter({'a': 2, 5: ...
  • 卡尔曼滤波系列——(二)扩展卡尔曼滤波

    万次阅读 多人点赞 2019-04-06 16:33:48
    扩展卡尔曼滤波(Extended Kalman Filter,EKF)是标准卡尔曼滤波在非线性情形下的一扩展形式,它是一高效率的递归滤波器(自回归滤波器)。 EKF的基本思想是利用泰勒级数展开将非线性系统线性化,然后采用...
  • 10个统计分析方法

    万次阅读 2018-06-01 15:42:14
    其次,当你想准确地评估一分析方法的效果时,你得知道其运行的多好或者多么不好;第三,这是一个令人兴奋的研究领域,在科学、业界和金融领域重要的应用。最后,统计学习也是一名现代数据科学家的重要素养。1)...
  • Hibernate有哪几种查询数据的方式

    千次阅读 2017-05-20 18:07:47
    hql查询,sql查询,条件查询 ...、 参数查询、命名参数查询 3 、 关联查询 4 、 分页查询 5 、 统计函数 HQL和SQL的区别 HQL是面向对象查询操作的,SQL是结构化查询语言 是面向数据库表结构的
  • 面板回归指南

    万次阅读 多人点赞 2018-12-26 12:50:18
    随机效应模型估计:3.Hausman检验附录:stata中面板回归的主要命令与参数 面板数据 面板数据两个下脚标: 不同个体i 不同时间t 其形式如下: 面板回归包含不可观测的个体异质性αi\alpha_iαi​ 根据αi\alpha_...
  • 推断统计参数估计和假设检验

    千次阅读 多人点赞 2020-03-03 00:35:24
    目录   1、总体、个体、样本和样本容量 ...   1)参数估计、点估计和区间统计的概念    2)点估计说明    3)区间估计说明   4、中心极限定理    1)中心极限定理的概念    2...
  • 特征选择的几种方法

    千次阅读 多人点赞 2020-02-08 23:53:56
    目录 1 过滤法(Filter) 1.1 方差选择法 1.2 相关系数法 1.3 卡方检验 1.4 互信息法 1.5 relief算法 2 包裹法(Wrapper) 2.1 递归特征消除法 2.2 特征干扰法 3 嵌入法(Embedded) ...4 特征选择方法的优...
  • 常用的参数和非参数检验方法

    千次阅读 2016-11-26 09:46:40
    常用的参数检验方法:  1.正态总体均值的假设检验(t检验)  检验1组数据样本的均值是否等于,大于或小于某个值,或者检验两组数据样本的均值的大小情况。其中的统计量Z一般服从t分布。  2.正态总体方差...
  • 几种常见的参数估计

    千次阅读 2015-04-29 09:29:15
    参数估计有点估计(point estimation)和区间估计(interval estimation)两。 点估计是依据样本估计总体分布中所含的未知参数或未知参数的函数。通常它们是总体的某个特征值,如数学期望、方差和相关系数等。点...
  • 统计方法的选择

    千次阅读 2017-03-23 13:58:28
    统计方法的选择,应该考虑的问题以及应该如何考虑
  • 几种线性回归方法的简介

    千次阅读 2018-12-09 19:11:37
    在给定一列数据(x1,y1),...,(xn,yn)(x_1, y_1), ...,(x_n, y_n)(x1​...则可以用不同方法估计参数来拟合直线。 1. 最小二乘法(OLS)回归 最小二乘法是大家平时用的最多的拟合线性模型的方法,它使: RSS(a,b)=∑...
  • 队列的几种实现方式

    万次阅读 2018-09-20 10:29:49
    队列简介: 队列是一特殊的线性表,特殊之处在于...队列是一最常用的数据结构,也是最重要的一数据结构,这里介绍三实现队列的方法: 1.基于链表来实现队列。 2.使用linkedList来实现队列。 3.使用两个...
  • 几种常用的特征选择方法

    万次阅读 多人点赞 2016-12-14 16:33:38
    几种常用的特征选择方法
  • 事务的隔离级别

    万次阅读 多人点赞 2019-05-20 20:22:47
    幻读和不可重复读都是在同一个事务中多次读取了其他事务已经提交的事务的数据导致每次读取的数据不一致,所不同的是不可重复读读取的是同一条数据,而幻读针对的是一批数据整体的统计(比如数据的个数) 以MYSQL数据库...
  • 16常用统计分析软件介绍

    千次阅读 2020-03-20 18:50:46
    1SAS统计软件 SAS 是英文Statistical Analysis System的缩写,翻译成汉语是统计分析系统,最初由美国北卡罗来纳州立大学两名研究生开始研制,1976 年创立SAS公司, 2003年全球员工总数近万人,统计软件采用按年租用...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 305,855
精华内容 122,342
关键字:

参数统计方法有哪几种