数据会说谎?三大推断方法帮你“审问”数据真相

news/2025/12/8 20:38:02/文章来源:https://www.cnblogs.com/wang_yb/p/19323547

很多刚入行甚至想入行数据分析的朋友,往往会陷入一个误区:以为数据分析就是不停地做报表画饼图

其实,数据分析的核心魅力在于 “推断”——即见微知著

在现实生活中,我们很难获取“全量数据”(比如你不可能调查全国每一个人的身高),那么,如何通过手中的“小样本”去推测“大总体”的规律?

这就需要用到统计学中的推断分析

本文将结合代码来介绍推断分析中最常用的三大方法:参数估计假设检验非参数检验

1. 参数估计

想象你在煮一锅排骨汤。你想知道汤咸不咸,你不会把整锅汤都喝完,而是舀起一勺尝一尝。

  • 那一勺汤就是样本
  • 那一勺的咸度就是样本统计量
  • 整锅汤的咸度就是我们要猜的总体参数

参数估计就是:根据样本的特征(比如样本均值),去估计总体的特征(比如总体均值)。

它通常分为两种:

  • 点估计:直接说“这锅汤是1.5%的盐度”。(但这很容易被打脸,因为太绝对)
  • 区间估计:说“这锅汤的盐度在1.4%到1.6%之间,我有95%的把握”。(这就是置信区间,更科学)

区间估计是最常使用的方式,下面通过一个示例来演示参数估计的具体使用。

import numpy as np
from scipy import stats# 1. 模拟数据
np.random.seed(42)
true_mean = 15  # 上帝视角的真实均值
sample_salaries = np.random.normal(loc=true_mean, scale=3, size=100)  # 模拟100个样本# 2. 计算统计量
sample_mean = np.mean(sample_salaries)
sample_std = np.std(sample_salaries, ddof=1)
n = len(sample_salaries)# 计算95%置信区间
# 这里的 scale 使用的是标准误 (Standard Error) = 样本标准差 / sqrt(n)
conf_int = stats.t.interval(confidence=0.95, df=n - 1, loc=sample_mean, scale=sample_std / np.sqrt(n)
)
lower_bound, upper_bound = conf_intprint(f"样本均值: {sample_mean:.2f}k")
print(f"95%置信区间: [{lower_bound:.2f}k, {upper_bound:.2f}k]")# 运行结果:
'''
样本均值: 14.69k
95%置信区间: [14.15k, 15.23k]
'''

图形化之后的结果如下:

从图中可以看出:

  1. 灰色的散点:是你调研的那100个数据分析师的工资。你会发现有的高有的低,散落在各地。
  2. 蓝色的点和横线
  • 蓝点是你算出来的样本均值(约14.67k),虽然不完全等于真实的15k,但很接近。
  • 蓝色的横线就是置信区间。它的含义是:“虽然我不知道确切数字,但我敢打赌,真实数字就在这根蓝线的范围内。”
  1. 红色的虚线:这是真实的总体均值(15k)。
  2. 结论:你可以清楚地看到,红色的虚线确实穿过了蓝色的横线。恭喜你!这次“参数估计”成功捕获了真理!

数据分析不是算命,算出来的不是一个死的数字,而是一个科学的范围。

我们就是用参数估计的方法,在不确定性中寻找确定性。

2. 假设检验

假设检验是数据分析中最常用的决策工具。它的逻辑是:先立一个Flag(假设),然后看证据(数据)是否打脸

  • 原假设 :通常代表“无事发生”、“没有变化”、“运气好”。
  • 备择假设:通常代表“有事发生”、“真的有效果”。
  • P值:表示原假设成立时,出现当前数据的概率。P值越小,说明原假设越不靠谱(通常以0.05为界限)。

下面通过一个电商APP的A/B测试场景,来演示假设检验的使用。

假设某电商APP想把 “购买” 按钮从 蓝色 改成 红色

  • 原假设:红色按钮和蓝色按钮的转化率没区别(差别纯属偶然)。
  • 备择假设:红色按钮的转化率显著高于蓝色按钮。

我们采集了两组用户的消费金额数据来进行T检验。

# 1. 模拟AB测试数据
# 蓝色按钮组(对照组):平均消费 100元
group_blue = np.random.normal(loc=100, scale=20, size=1000)
# 红色按钮组(实验组):平均消费 105元 (我们要检验这个提升是否显著)
group_red = np.random.normal(loc=105, scale=25, size=1000)# 2. 进行独立样本T检验 (T-test)
t_stat, p_val = stats.ttest_ind(group_blue, group_red)print(f"P值: {p_val:.5f}")# 3. 判断结论
alpha = 0.05
if p_val < alpha:print("结论:拒绝原假设。红色按钮带来的消费提升是【统计显著】的,建议全量上线!")
else:print("结论:无法拒绝原假设。两组差异可能是误差导致的,建议维持原状。")# 运行结果:
'''
P值: 0.00000
结论:拒绝原假设。红色按钮带来的消费提升是【统计显著】的,建议全量上线!
'''

图形化结果如下:

从图中,我们可以看出,两条曲线(红色和蓝色)其实重叠度很高。

对于新手,看到这个图,可能会陷入一个误区,觉得“这两座山峰看起来差不多嘛,没啥区别”。

但在统计学上,两座山峰的 “重心” (均值)发生了 显著偏移 。这就是假设检验的威力--在重叠的噪声中识别出偏移的信号。

3. 非参数估计

前面的 “参数估计”“T检验” 都有一个娇气的脾气:它们通常假设数据是服从 “正态分布” 的(也就是漂亮的钟形曲线)。

但在现实生活中,很多数据并不正态,或者数据甚至是定序的(比如:非常满意、满意、一般、不满意)。

这时候,传统的 T检验 就失效了,我们需要请出 非参数检验

它不依赖数据的分布形状,非常抗造。

假设我们要对比两款手游《王者荣耀》和《原神》玩家每天的游玩时长。

由于《原神》玩家可能存在大量的“长尾”用户(玩特别久),数据往往是严重右偏的,不符合正态分布。

这时候对比两组数据差异,就不能用T检验,我们使用非参数估计中的一种方式:曼-惠特尼U检验 (Mann-Whitney U test)。

# 1. 模拟非正态分布数据 (使用指数分布模拟由偏数据)
# 游戏A:平均时长较短
game_a_hours = np.random.exponential(scale=1.0, size=100)
# 游戏B:平均时长较长
game_b_hours = np.random.exponential(scale=1.5, size=100)# 2. 首先,检查一下正态性 (Shapiro-Wilk检验)
# 如果P < 0.05,说明不是正态分布
_, p_norm_a = stats.shapiro(game_a_hours)
print(f"游戏A正态性检验P值: {p_norm_a:.4f} (小于0.05则非正态)")# 3. 使用非参数检验:Mann-Whitney U检验
# 它可以比较两个独立样本的分布是否存在差异(侧重于中位数/秩次的比较)
u_stat, p_val_nonparam = stats.mannwhitneyu(game_a_hours, game_b_hours, alternative='two-sided')print(f"Mann-Whitney U检验 P值: {p_val_nonparam:.5f}")if p_val_nonparam < 0.05:print("结论:两款游戏的玩家游玩时长分布存在显著差异。")
else:print("结论:两款游戏玩家游玩时长无显著差异。")# 运行结果:
'''
游戏A正态性检验P值: 0.0000 (小于0.05则非正态)
Mann-Whitney U检验 P值: 0.00003
结论:两款游戏的玩家游玩时长分布存在显著差异。
'''

可视化结果如下:

尽管数据长得歪瓜裂枣(严重右偏),U检验依然稳健地告诉我们:这两组数据不一样

U检验比较的不仅仅是平均值,它更多是在比较 “秩次”Ranking)。

通俗点说,它发现如果我们把两组玩家混在一起排名,Game B的玩家即使不看具体时长,排名也普遍比Game A的玩家靠前。

从图中来看,你会看到橙色(Game B)的尾巴明显比蓝色(Game A)拖得更长、更厚实。

这说明Game B(比如《原神》)更容易让玩家沉浸更久,或者拥有更多的重度玩家。

4. 总结

恭喜你!你已经掌握了数据推断分析的核心逻辑:

  1. 参数估计:当你只有样本,想知道总体的数值范围时使用。(比如估算平均薪资)
  2. 假设检验:当你数据比较“完美”(正态分布),想判断差异是不是真的时使用。(比如A/B测试)
  3. 非参数检验:当你数据分布奇怪、或者只有排名/等级数据时使用。(比如评分对比、长尾数据分析)

三板斧是数据分析师行走江湖的必备技能。掌握了它们,你就不仅仅是一个“做表的”,而是一个能从数据中挖掘真相的“侦探”!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/993504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

argocd--app

argocdApplication:同步策略:project:目标descination:sources:- repoURL:分支路径:helm:

京城信德斋官方服务及回收电话信息声明公示

为保障广大字画藏家、企业及个人客户的合法权益,确保字画交易、回收服务的规范性、专业性与安全性,京城信德斋(以下简称“我单位”)就官方服务电话、核心业务及商标保护等信息郑重声明并公示如下,以杜绝虚假信息干…

【Agent】MemOS 源码笔记---(3)---搜索

【Agent】MemOS 源码笔记---(3)---搜索 目录【Agent】MemOS 源码笔记---(3)---搜索0x00 摘要0x01 分类0x02 混合搜索(Hybrid Search)--- Searcher2.1 定义2.2 核心函数2.3 依赖关系和关联关系2.3.1 依赖项(Searcher…

京城爱加陪诊官方服务电话信息声明公示

为保障广大患者及家属的合法权益,确保陪诊服务的规范性、透明性与便捷性,京城爱加陪诊(以下简称“我机构”)就官方服务电话及相关服务信息郑重声明并公示如下,以杜绝虚假信息干扰,为您的就医之路保驾护航。 一、…

京城信德斋官方公告|认准正品,谨防仿冒

尊敬的藏家与朋友们: 大家好!这里是 「京城信德斋」 授权发布的声明。 我们专注于 名家字画经营、专业字画回收、上门回收名家字画 等服务,致力于为您提供安全、专业、便捷的艺术品流通体验。 ⚠️ 重要提示: 我方…

2025年如何选择适合的二次元测量仪品牌?

在选择合适的二次元测量仪时,了解市场上的不同产品和品牌非常重要。一键式二次元测量仪因其便捷性而受到广泛欢迎,特别适合需要快速操作的环境。相对而言,激光二次元测量仪在精度上表现突出,适合对数据要求极高的行…

信息论(12):Jensen不等式

Jensen不等式:如果 f 是一个凸函数,X 是一个随机变量,那么: $ f(\mathbb{E}[X]) \leq \mathbb{E}[f(X)] $ 它的含义是,对于凸函数 f 而言:平均值的函数 ≤ 函数的平均值,如果 f 是凹函数,则不等式取反。 想象一…

信息论(12):Jensen不等式

Jensen不等式:如果 f 是一个凸函数,X 是一个随机变量,那么: $ f(\mathbb{E}[X]) \leq \mathbb{E}[f(X)] $ 它的含义是,对于凸函数 f 而言:平均值的函数 ≤ 函数的平均值,如果 f 是凹函数,则不等式取反。 想象一…

2025年微信公众号排版工具权威评测:哪款编辑器更适合你?

根据《2025新媒体工具生态发展报告》数据显示,目前市面上有超过50款主流公众号排版工具,但用户满意度差距显著。本次评测基于功能完整性、操作效率、AI智能水平、模板丰富度、团队协作及安全性6大核心维度,结合3000…

Beyond Translation: LLM-Based Data Generation for Multilingual Fact-Checking

3 多语言数据集生成(Multilingual Dataset Generation)方法 一、核心目标构建可扩展、高效的自动化流程,生成高质量多语言事实核查数据集,支持英语、西班牙语、德语及低资源语言,包含 “支持(Supports)”“反驳…

道2:汉语和英语是互相独立的系统,学习英语就是学习“切换系统”

……汉语系统VS英语系统 语音: 1、元音的“松紧不分”,/i/和/i:/ 2、辅音的“画蛇添足” 3、音的“缺失替代” 4、节奏混淆,英语重音计时,汉语音节计时 语法: 英语是屈折语,通过单词形态变化传递很多信息。 汉语是…

go缓存设计 redis 发布订阅

go缓存设计 redis 发布订阅一般缓存 有内存缓存, 没有就读redis, redis没有就读tidb;如何防止缓存穿透,这里我们用golang.org/x/sync/singleflight解决,还有缓存更新,比如多个节点如何更新,这里借用redis 发布订…

npm几个实用命令

现在前端开发基本每天都会用到npm命令,最近在解决安全团队报告的安全风险时,发现了几个npm非常实用的命令,特记录下来...前言 最近接到公司安全团队的项目风险表格,列出了当前前端项目的一些安全风险,大概有190多…

产品研发管理 : 构建世界一流的产品研发管理体系

针对大部分客户分不清R&D 中R( 技术开发) 和D( 产品开发) 的区别,面临着研发周期长,需求不清晰,公司越做越大,却越来越不赚钱,越来越缺少核心竞争能力,研发人员越来越多,越来越难管理等问题。中国的大部分技…

iOS 知识点 - 多线程总结(GCD/Operation/Swift Concurrency/线程安全/线程通信)

前景回顾 简单回顾四个概念:进程 vs 线程进程:是操作系统资源分配的最小单位每个 App 通常就是一个进程,进程之间相互隔离,拥有各自的虚拟内存空间、文件描述符、沙盒目录。线程:是 CPU 任务调度的最小单位每个进…

前端实现页面截图及截图内容包含跨域图片时的处理

项目中遇到需要实现指定位置的截图,采取使用依赖 html2canvas 实现。 参考:https://html2canvas.hertzen.com/ 一、实现步骤: 1、下载依赖或者使用官方js文件链接,本文使用的js链接; 2、代码 style .screen-box {…

2025.12.8

今天练习了前后端的连接一起的增删改查

(最新)2025实测!这11款免费降AI率工具,哪款能救你论文?

(最新)2025实测!这11款免费降AI率工具,哪款能救你论文?一篇AI率高达92%的论文摘要,经过专业工具处理后竟能降至个位数,而某些免费工具却可能把它改得“面目全非”。选择正确的降AI工具,关乎你的论文命运。 凌晨…

LLM应用剖析: 小红书AI图文生成器-红墨

本文介绍了小红书的一键图文生成平台,并提供了系统的基本执行流程及原理。同时分享了本人基于本地部署后,生成的图文效果,眼过千遍不如手过一遍,实践方能出真知。1. 背景花了近一周时间,深入研究了Github近几天比…

openSIS 8.0 SQL注入漏洞技术分析与利用

本文详细分析了openSIS社区版8.0中存在的SQL注入漏洞(CVE-2021-40617),提供了完整的漏洞利用证明和复现步骤,涉及通过ForgotPassUserName.php参数注入的具体攻击向量。漏洞标题: openSIS Community Edition 8.0 - …