在数据科学领域,假设检验是决策过程中的一个重要步骤,通常由机器学习或深度学习算法驱动。统计过程中的一个流行方法是假设检验,其应用不仅限于数据科学领域,还可以在医疗保健、生物、机械等领域找到。实际上,许多生物学过程的决策都是基于假设检验的。
假设是一个尚未证明或待证明的陈述。换句话说,它是一个需要测试以检查其真伪的假设。涉及测试这些假设的测试被称为假设检验。尽管存在许多类型的假设,但通常有两种类型被广泛使用,即零假设和备择假设。这两个假设完全相反。零假设是目前认为正确的陈述。备择假设是当零假设被证明是错误的时候才为真的陈述。零假设用H0表示,备择假设用Ha表示。
从统计学上讲,它检查一个样本是否等于总体,基于总体参数,如均值、标准差等。例如,知道某个特定社会中女性的均值身高是168厘米,想要测试这个声明,即平均身高是否为168厘米。在这里,零假设是H0: μ = 168,备择假设是Ha: μ ≠ 168。
为了决定在零假设和备择假设之间采纳哪一个,需要使用假设检验。有多种测试可供选择以做出决策。测试的选择取决于多个参数,如样本大小、测试中涉及的尾部数量、样本数据类型、总体参数等。这些测试中的每一个都计算一个检验统计量。例如,Z检验计算Z分数或Z统计量,T检验计算T分数或T统计量。基于这些统计值和p值、显著性水平,决定是否能够拒绝零假设或未能拒绝零假设。假设检验的一般过程是:
记住,在假设检验中测试的是零假设。这意味着将能够拒绝零假设或未能拒绝零假设。永远不会说接受备择假设或拒绝备择假设。尽管技术上这意味着相同的事情,应该始终以零假设的术语来肯定。在本文中,将只关注Z检验并计算其统计值,或Z分数。选择正确的假设检验是最重要的部分,因为选择错误的测试会导致错误的结果,因此,人们会做出错误的决策。
Z检验是一种基于标准正态分布的假设检验。它也被称为标准正态Z检验。使用这个测试,计算Z分数或Z统计量值。Z检验用于测试以下内容:
Z检验有几个假设需要在使用之前满足。假设如下:
Z统计量值可以使用以下公式计算:
Z = (x̄ - μ) / (σ / √n)
其中,x̄是样本均值,μ是总体均值,σ是样本标准差,n是样本大小。注意:这个公式是用于单样本Z检验的。
现在将创建Z检验计算器。为此,需要导入所需的库,首先是:
import streamlit as st
import numpy as np
接下来,将从用户那里接受样本数据。使用Streamlit的.text_input()方法接受用户输入的样本数据,默认值为0,因为.text_input()接受字符串类型的值。然后,为了在下一步将所有输入值转换为浮点值,首先需要确保数据之间没有空字符串,因为它不会被解析为浮点值。
raw_data = st.text_input('Enter the Data', value = 0)
raw_data = raw_data.strip()
data = raw_data.replace(" , " , " ").replace(", " , " ").replace(" ," , " ").replace(" " , ',').split(',')
x = [float(i) for i in data]
接下来,将接受用户输入的已知总体均值。使用Streamlit方法.text_input()接受用户输入,并将其转换为浮点值,因为.text_input()接受字符串类型的值。value = 0参数表示当用户没有填写数据时,此字段的默认值为0。
mu = st.text_input('Enter Population Mean', value = 0)
mu = float(mu)
xbar = np.mean(x)
sigma = np.std(x, ddof = 1)
n = len(x)
z_cal = (xbar - mu) / (sigma / np.sqrt(n))
st.write("Your z - statistic value is: ", np.round(z_cal, 3))