← 返回首页

第11章 · 数据分析与统计方法

数据分析与统计方法

统计分析是数据科学的核心,帮助我们从数据中提取有意义的洞察。本章涵盖从描述性统计到推断性统计,从数据分组到相关回归分析的全套统计方法。

学习目标:掌握描述性和推断性统计分析,理解数据分组与聚合技术,学会相关与回归分析,并能运用这些方法解决实际问题。

本章内容概览

描述性统计分析

import pandas as pd
import numpy as np

# 创建示例数据
data = {
    '年龄': np.random.normal(35, 8, 100),
    '收入': np.random.normal(50000, 15000, 100)
}
df = pd.DataFrame(data)

// 描述性统计
print(df.describe())

// 偏度和峰度
print(f"年龄偏度: {df['年龄'].skew():.3f}")
print(f"收入峰度: {df['收入'].kurtosis():.3f}")

推断性统计

from scipy import stats

// 创建两组样本
group_a = np.random.normal(75, 10, 50)
group_b = np.random.normal(72, 12, 50)

// 独立样本t检验
t_stat, p_value = stats.ttest_ind(group_a, group_b)
print(f"t统计量: {t_stat:.3f}, p值: {p_value:.3f}")

if p_value < 0.05:
    print("两组均值有显著差异")

数据分组与聚合

// 创建含分类变量的数据
data = {
    '地区': np.random.choice(['东部', '西部', '南部'], 100),
    '销售额': np.random.uniform(1000, 50000, 100)
}
df = pd.DataFrame(data)

// 分组统计
region_stats = df.groupby('地区')['销售额'].agg(['mean', 'sum', 'count'])
print(region_stats)

// 透视表
pivot = pd.pivot_table(df, values='销售额', index='地区', aggfunc='mean')
print(pivot)

相关与回归分析

from scipy.stats import pearsonr
from sklearn.linear_model import LinearRegression

// 创建示例数据
X = np.random.normal(50, 15, 100)  // 广告投入
Y = 2 * X + 30 + np.random.normal(0, 10, 100)  // 销售额

// 相关分析
corr, p_value = pearsonr(X, Y)
print(f"相关系数: {corr:.3f}")

// 线性回归
X_reshaped = X.reshape(-1, 1)
model = LinearRegression()
model.fit(X_reshaped, Y)

print(f"系数: {model.coef_[0]:.3f}, 截距: {model.intercept_:.3f}")

案例分析

// 电商数据分析案例
data = {
    '年龄': np.random.normal(35, 10, 200),
    '收入': np.random.normal(50000, 20000, 200),
    '访问频率': np.random.poisson(8, 200),
    '地区': np.random.choice(['东部', '西部', '南部'], 200)
}

df = pd.DataFrame(data)

// 地区分组分析
region_analysis = df.groupby('地区').agg({
    '收入': 'mean',
    '访问频率': 'mean'
})
print(region_analysis)

方法应用指南

// 数据分析方法选择指南
methods_guide = {
    "了解数据特征": "描述性统计",
    "比较组间差异": "t检验/方差分析",
    "分析变量关系": "相关分析",
    "预测建模": "回归分析",
    "分类分析": "分组聚合"
}

for scenario, method in methods_guide.items():
    print(f"{scenario}{method}")

子页面导航