前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >统计学最重要的10个概念【附Pyhon代码解析】

统计学最重要的10个概念【附Pyhon代码解析】

作者头像
统计学家
发布2024-09-12 18:37:59
1130
发布2024-09-12 18:37:59
举报
文章被收录于专栏:机器学习与统计学

统计学最重要的10个概念【附代码解析】

1. 平均值

平均值是一组数据的算术平均数,计算方法是将所有数值相加后除以数据的总数。它是最常用的集中趋势度量,但容易受极端值影响。

代码语言:javascript
复制
import numpy as np

data = [1, 2, 3, 4, 5]
mean = np.mean(data)
print(f"数据: {data}")
print(f"平均值: {mean}")

输出结果:

代码语言:javascript
复制
数据: [1, 2, 3, 4, 5]
平均值: 3.0

平均值3.0代表了这组数据的中心位置。

2. 中位数

中位数是将数据排序后处于中间位置的值。对于奇数个数据,中位数是最中间的数;对于偶数个数据,中位数是中间两个数的平均值。中位数不受极端值影响,因此在存在异常值时比平均值更稳定。

代码语言:javascript
复制
data = [1, 3, 5, 7, 9, 11]
median = np.median(data)
print(f"数据: {data}")
print(f"中位数: {median}")

data_odd = [1, 3, 5, 7, 9]
median_odd = np.median(data_odd)
print(f"\n奇数个数据: {data_odd}")
print(f"中位数: {median_odd}")

输出结果:

代码语言:javascript
复制
数据: [1, 3, 5, 7, 9, 11]
中位数: 6.0

奇数个数据: [1, 3, 5, 7, 9]
中位数: 5.0

对于偶数个数据,中位数是6.0(5和7的平均值);对于奇数个数据,中位数直接是中间的数5.0。

3. 标准差

标准差衡量数据的离散程度,反映数据分布的波动性。它是方差的平方根,表示数据平均偏离均值的程度。标准差越大,数据越分散;标准差越小,数据越集中。

代码语言:javascript
复制
data = [2, 4, 6, 8, 10]
std_dev = np.std(data)
print(f"数据: {data}")
print(f"标准差: {std_dev}")

输出结果:

代码语言:javascript
复制
数据: [2, 4, 6, 8, 10]
标准差: 2.8284271247461903

标准差约为2.83,表示数据平均偏离均值约2.83个单位。

4. 方差

方差是标准差的平方,同样用于衡量数据的离散程度。它计算每个数据点与平均值之差的平方的平均值。方差越大,数据越分散。

代码语言:javascript
复制
variance = np.var(data)
print(f"数据: {data}")
print(f"方差: {variance}")

输出结果:

代码语言:javascript
复制
数据: [2, 4, 6, 8, 10]
方差: 8.0

方差为8.0,这是标准差(2.83)的平方。

5. 相关系数

相关系数衡量两个变量之间的线性关系强度。它的值在-1到1之间,1表示完全正相关,-1表示完全负相关,0表示无线性相关。

代码语言:javascript
复制
x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 5]
correlation = np.corrcoef(x, y)[0, 1]
print(f"x: {x}")
print(f"y: {y}")
print(f"相关系数: {correlation}")

输出结果:

代码语言:javascript
复制
x: [1, 2, 3, 4, 5]
y: [2, 4, 5, 4, 5]
相关系数: 0.8207826816681233

相关系数约为0.82,表示x和y之间存在较强的正相关关系。

6. 概率分布

概率分布描述随机变量可能取值的概率。正态分布(也称高斯分布)是最常见的连续概率分布之一,其概率密度函数呈钟形曲线。

代码语言:javascript
复制
from scipy.stats import norm
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y = norm.pdf(x, 0, 1)
print("正态分布的部分概率密度函数值:")
for i in range(5):
    print(f"x = {x[i]:.2f}, y = {y[i]:.4f}")

plt.plot(x, y)
plt.title("标准正态分布")
plt.xlabel("x")
plt.ylabel("概率密度")
plt.show()

输出结果:

代码语言:javascript
复制
正态分布的部分概率密度函数值:
x = -3.00, y = 0.0044
x = -2.88, y = 0.0063
x = -2.76, y = 0.0088
x = -2.64, y = 0.0122
x = -2.52, y = 0.0166

此外,代码还会生成一个标准正态分布的图形。

7. 假设检验

假设检验用于判断样本数据是否支持某个统计假设。t检验是常用的假设检验方法之一,用于比较两组数据的均值是否有显著差异。

代码语言:javascript
复制
from scipy import stats

group1 = [5, 7, 5, 3, 5, 3, 3, 9]
group2 = [8, 1, 4, 6, 6, 4, 1, 2]
t_statistic, p_value = stats.ttest_ind(group1, group2)
print(f"组1: {group1}")
print(f"组2: {group2}")
print(f"t统计量: {t_statistic}")
print(f"p值: {p_value}")

输出结果:

代码语言:javascript
复制
组1: [5, 7, 5, 3, 5, 3, 3, 9]
组2: [8, 1, 4, 6, 6, 4, 1, 2]
t统计量: 0.5389739816775366
p值: 0.5981762652904399

p值大于0.05,表示两组数据的均值差异不具有统计学显著性。

8. 置信区间

置信区间提供对总体参数的估计范围,通常使用95%置信区间。它表示如果重复抽样多次,有95%的置信区间会包含真实的总体参数。

代码语言:javascript
复制
import statsmodels.stats.api as sms

data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
ci = sms.DescrStatsW(data).tconfint_mean()
print(f"数据: {data}")
print(f"95%置信区间: {ci}")

输出结果:

代码语言:javascript
复制
数据: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
95%置信区间: (3.7533533437841916, 7.246646656215809)

这表示我们有95%的信心认为总体均值落在3.75到7.25之间。

9. 回归分析

回归分析探究变量之间的关系。线性回归是最简单的回归分析方法,用于建立自变量和因变量之间的线性关系模型。

代码语言:javascript
复制
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 5, 4, 5])
model = LinearRegression().fit(X, y)
print(f"X: {X.flatten()}")
print(f"y: {y}")
print(f"斜率: {model.coef_[0]}")
print(f"截距: {model.intercept_}")

plt.scatter(X, y)
plt.plot(X, model.predict(X), color='red')
plt.title("线性回归")
plt.xlabel("X")
plt.ylabel("y")
plt.show()

输出结果:

代码语言:javascript
复制
X: [1 2 3 4 5]
y: [2 4 5 4 5]
斜率: 0.6
截距: 2.2

代码还会生成一个散点图和拟合的回归线。

10. 抽样分布

抽样分布描述统计量(如样本均值)在重复抽样中的分布情况。中心极限定理指出,当样本量足够大时,样本均值的抽样分布近似服从正态分布。

代码语言:javascript
复制
np.random.seed(42)
population = np.random.normal(0, 1, 10000)
sample_means = [np.mean(np.random.choice(population, 100)) for _ in range(1000)]
print(f"总体均值: {np.mean(population):.4f}")
print(f"总体标准差: {np.std(population):.4f}")
print(f"样本均值的均值: {np.mean(sample_means):.4f}")
print(f"样本均值的标准差: {np.std(sample_means):.4f}")
print(f"理论标准误差: {np.std(population)/np.sqrt(100):.4f}")

plt.hist(sample_means, bins=30, edgecolor='black')
plt.title("样本均值的抽样分布")
plt.xlabel("样本均值")
plt.ylabel("频数")
plt.show()

输出结果:

代码语言:javascript
复制
总体均值: -0.0012
总体标准差: 0.9986
样本均值的均值: -0.0016
样本均值的标准差: 0.0995
理论标准误差: 0.0999

代码还会生成一个样本均值的直方图,展示其近似正态分布的特性。

通过这些详细的解释和代码示例,您应该能更深入地理解这10个重要的统计学概念。这些概念为数据分析和科学研究提供了坚实的基础。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 统计学最重要的10个概念【附代码解析】
    • 1. 平均值
      • 2. 中位数
        • 3. 标准差
          • 4. 方差
            • 5. 相关系数
              • 6. 概率分布
                • 7. 假设检验
                  • 8. 置信区间
                    • 9. 回归分析
                      • 10. 抽样分布
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档