在许多不同的统计方法中,存在“正态假设”。什么是“常态”,我如何知道是否存在常态?
什么是常态?
机器算法验证
分布
正态假设
2022-01-24 21:12:19
4个回答
注意:正态性假设通常不是关于你的变量,而是关于由残差估计的误差。例如,在线性回归中;没有假设是正态分布的,只有是。
一个相关的问题可以在这里找到关于错误的正常假设(或者如果我们没有关于数据的先验知识,则更一般地假设数据)。
基本上,
- 使用正态分布在数学上很方便。(它与最小二乘拟合有关,很容易用伪逆求解)
- 由于中心极限定理,我们可以假设有许多影响过程的潜在事实,并且这些单独影响的总和将倾向于表现得像正态分布。在实践中,似乎是这样。
此处的一个重要说明是,正如 Terence Tao在这里所说,“粗略地说,这个定理断言,如果一个统计量是许多独立且随机波动的成分的组合,没有一个成分对整体具有决定性影响,那么该统计量将根据称为正态分布的规律近似分布”。
为了清楚起见,让我写一个 Python 代码片段
# -*- coding: utf-8 -*-
"""
Illustration of the central limit theorem
@author: İsmail Arı, http://ismailari.com
@date: 31.03.2011
"""
import scipy, scipy.stats
import numpy as np
import pylab
#===============================================================
# Uncomment one of the distributions below and observe the result
#===============================================================
x = scipy.linspace(0,10,11)
#y = scipy.stats.binom.pmf(x,10,0.2) # binom
#y = scipy.stats.expon.pdf(x,scale=4) # exp
#y = scipy.stats.gamma.pdf(x,2) # gamma
#y = np.ones(np.size(x)) # uniform
y = scipy.random.random(np.size(x)) # random
y = y / sum(y);
N = 3
ax = pylab.subplot(N+1,1,1)
pylab.plot(x,y)
# Plotting details
ax.set_xticks([10])
ax.axis([0, 2**N * 10, 0, np.max(y)*1.1])
ax.set_yticks([round(np.max(y),2)])
#===============================================================
# Plots
#===============================================================
for i in np.arange(N)+1:
y = np.convolve(y,y)
y = y / sum(y);
x = np.linspace(2*np.min(x), 2*np.max(x), len(y))
ax = pylab.subplot(N+1,1,i+1)
pylab.plot(x,y)
ax.axis([0, 2**N * 10, 0, np.max(y)*1.1])
ax.set_xticks([2**i * 10])
ax.set_yticks([round(np.max(y),3)])
pylab.show()
从图中可以看出,无论个体分布类型如何,所得分布(总和)都趋于正态分布。因此,如果我们没有足够的关于数据潜在影响的信息,正态性假设是合理的。
你不知道是否存在常态,这就是为什么你必须做出一个假设。您只能通过统计检验证明不存在正态性。
更糟糕的是,当您使用真实世界的数据时,几乎可以肯定您的数据中不存在真正的正态性。
这意味着您的统计测试总是有点偏颇。问题是你是否能忍受它的偏见。要做到这一点,您必须了解您的数据以及您的统计工具所假设的常态。
这就是频率工具与贝叶斯工具一样主观的原因。您无法根据其正态分布的数据来确定。你必须假设正常。
其它你可能感兴趣的问题