辛普森悖论:从数据陷阱到决策智慧(实例拆解与可视化实战)

R语言列联表实战:从卡方检验到关联强度量化 列联表是分析分类变量间关系的基础统计工具,其核心在于通过频数矩阵构建联合分布估计,并基于独立性假设开展推断。卡方检验作为最常用方法,依赖期望频数≥5的渐近条件;当不满足时,需切换至Fisher精确检验或G-test以保障可靠性;而面对混杂因素,则须借助CMH检验实现分层控制。关联强度不能仅看p值,Cramer’s V衡量整体偏离程度,Lambda则反映方向性预测增益——二者协同才能回答‘是否相关’与‘值不值得投入’两个关键业务问题。本文聚焦R语言实操,覆盖table()与ftable()构建、prop.ta 阅读详情

1. 辛普森悖论:一个让数据“说谎”的经典陷阱

我刚开始做数据分析那会儿,就踩过一个大坑。当时我们团队在评估一个产品新功能的用户留存效果,分城市看数据,每个城市里新功能的留存率都比旧版本高,大家还挺高兴。结果把全国数据一汇总,傻眼了,新功能的整体留存率居然比旧版本还低。整个会议室都沉默了,项目经理盯着我问:“你这数据是不是算错了?” 我反复核对了好几遍,代码没错,数据源也没错,但结果就是反过来了。后来我才知道,这就是传说中的“辛普森悖论”。它就像一个数据魔术,在你眼皮子底下把结论给颠倒了。

简单来说,辛普森悖论描述的就是这样一种现象:当你把数据分成几个小组来看时,每个小组都显示A比B好;但一旦你把所有小组的数据混合在一起,从整体上看,结论却变成了B比A好。这听起来很反直觉,对吧?数据怎么会自己“打架”呢?但它在现实世界中非常普遍,从医疗试验、教育评估到商业决策,到处都可能藏着这个陷阱。它之所以危险,是因为它披着“客观数据”的外衣,很容易让人信以为真,从而做出完全错误的决策。理解它,不是为了炫技,而是为了在关键时刻,能一眼看穿数据背后的真相,避免被表面的数字牵着鼻子走。

2. 为什么数据会“集体叛变”?拆解悖论背后的两大元凶

辛普森悖论的出现,绝不是偶然的统计误差,其背后有深刻的、可追溯的原因。我把它归结为两个核心的“元凶”:混杂变量和不平衡的权重分布。这两个家伙经常联手,给数据分析师挖坑。

2.1 元凶一:潜伏的“第三者”——混杂变量

你可以把数据分析想象成在破案。我们想搞清楚“治疗方法”(自变量)和“治愈率”(因变量)之间有没有因果关系。但现场可能还潜伏着一个“第三者”,它既和“治疗方法”有关联,也和“治愈率”脱不了干系。这个“第三者”就是混杂变量。

我举个真实的例子。有一家互联网公司想分析“用户每日使用时长”对“付费转化率”的影响。初步数据发现,使用时长越长的用户,付费率越高。这似乎很合理,用得久自然更可能付费嘛。于是产品经理就想大力优化功能,提升用户停留时间。但这里有个巨大的混杂变量——“用户类型”。新用户可能因为好奇而长时间浏览,但付费意愿低;而核心老用户可能每天就用那么一会儿,但付费意愿极高。如果你不把“用户类型”这个因素分开看,就会错误地认为“延长所有用户的使用时长”就能提升收入。实际上,对于新用户,关键可能是引导他们发现核心价值,而不是盲目延长无效使用时间。

混杂变量就像一块磁铁,它能同时吸引自变量和因变量,扭曲它们之间真实的联系。忽视它,你的结论就可能完全跑偏。识别混杂变量,没有固定的公式,更多依赖你对业务背景的深刻理解。每次分析时,都要多问一句:“还有没有其他因素,既能影响原因,也能影响结果?”

2.2 元凶二:沉默的“音量旋钮”——权重分布

如果说混杂变量是改变了故事的“情节”,那么权重分布就是改变了故事的“音量”。即使每个小组内部A都比B好,但如果那些B表现“相对不那么差”的小组,数据量特别大,它们在计算整体平均值时嗓门就特别大,最终可能把整体结果“喊”成了B更好。

这就像一场歌唱比赛,有两个评委组。专业评委组(小组1)里,歌手A的得分普遍比歌手B高;大众评审组(小组2)里,歌手A的得分也比歌手B高。但是,大众评审组有1000人,专业评委组只有10人。计算总平均分时,大众评审组的分数占了绝对主导。如果歌手B在大众评审组里的分数只是略低于A,而歌手A在专业组的高分又被人数稀释了,那么最终的总分完全可能出现B反超A的情况。你能说B唱得更好吗?不能,这只是评审权重的游戏。

在实际业务中,这种权重差异无处不在:不同地区的用户数量天差地别,不同产品线的销量规模不在一个量级,不同病情程度的患者样本数也相差巨大。当我们粗暴地求一个“整体平均值”时,就相当于给了那些数据量大的组一个巨大的“音量旋钮”,它们的声音会淹没掉其他组真实的趋势。

3. 经典案例实战:亲手用Python拆解数据陷阱

光讲理论有点干,我们直接上代码和案例,亲手把悖论“揪”出来。我会用Python的pandas和plotly库来演示,这两个工具在数据处理和可视化上非常强大,而且做出来的图是交互式的,能看得更清楚。

3.1 案例一:肾结石治疗数据的再审视

这是统计学教材里最经典的例子,我们让它“活”起来。假设我们拿到了这样一份数据:

import pandas as pd

# 构建肾结石治疗数据
data = {
    '结石大小': ['小结石', '小结石', '大结石', '大结石'],
    '治疗方法': ['A', 'B', 'A', 'B'],
    '成功案例': [81, 234, 192, 55],
    '失败案例': [6, 36, 78, 28]
}
df = pd.DataFrame(data)
df['总案例'] = df['成功案例'] + df['失败案例']
df['成功率'] = df['成功案例'] / df['总案例']
print(df)

运行这段代码,你会看到一个清晰的表格。我们首先来计算分组成功率:

# 分组计算成功率
group_success = df.groupby(['结石大小', '治疗方法'])['成功率'].mean().unstack()
print("分组成功率:")
print(group_success)

输出会明确显示,无论是小结石组还是大结石组,治疗方法A的成功率(93.1%, 71.1%)都高于方法B(86.7%, 66.3%)。现在,我们来看看如果医生不看结石大小,直接看整体数据会怎样:

# 计算整体成功率
overall = df.groupby('治疗方法').agg({'成功案例':'sum', '总案例':'sum'})
overall['整体成功率'] = overall['成功案例'] / overall['总案例']
print("\n整体成功率:")
print(overall[['整体成功率']])

悖论出现了!整体上,方法B的成功率(约81.9%)竟然超过了方法A(约76.4%)。为什么?让我们用可视化来揭示权重的影响:

import plotly.express as px
import plotly.graph_objects as go

# 创建分组条形图
fig = px.bar(df, x='结石大小', y='成功率', color='治疗方法',
             barmode='group', text='成功率',
             title='按结石大小分组:治疗方法成功率对比')
fig.update_traces(texttemplate='%{text:.1%}', textposition='outside')
fig.update_layout(yaxis_tickformat='.0%')

# 添加整体成功率作为参考线
fig.add_trace(go.Scatter(
    x=['小结石', '大结石'],
    y=[overall.loc['A', '整体成功率'], overall.loc['A', '整体成功率']],
    mode='lines',
    line=dict(dash='dash', color='blue'),
    name='A方法整体成功率',
    showlegend=True
))
fig.add_trace(go.Scatter(
    x=['小结石', '大结石'],
    y=[overall.loc['B', '整体成功率'], overall.loc['B', '整体成功率']],
    mode='lines',
    line=dict(dash='dash', color='red'),
    name='B方法整体成功率',
    showlegend=True
))
fig.show()

这张图会非常直观:两个实体的分组柱子显示A更高,但两条虚线(整体成功率)却显示B更高。关键在于,方法B的病例大量集中在成功率“天生”较高的小结石组(样本量270 vs 83),而方法A则更多面对难度大的大结石。权重分布扭曲了整体印象。

3.2 案例二:电商广告投放的“虚假”胜利

我们看一个更贴近互联网的场景。假设你在两个渠道(搜索引擎广告和社交媒体广告)测试两种创意文案(文案X和文案Y)的点击率(CTR)。

# 电商广告投放数据
ad_data = {
    '渠道': ['搜索', '搜索', '社交', '社交'],
    '文案': ['X', 'Y', 'X', 'Y'],
    '点击量': [800, 300, 50, 200],
    '曝光量': [10000, 2000, 1000, 4000]
}
ad_df = pd.DataFrame(ad_data)
ad_df['CTR'] = ad_df['点击量'] / ad_df['曝光量']
print(ad_df)

先看分组情况:在搜索渠道,文案X的CTR(8.0%)高于文案Y(15.0%?等等,这里算一下:300/2000=15%,哦,那在搜索渠道Y更高)。等一下,我们重新审视:在搜索渠道,文案Y的CTR是15%,X是8%,Y更好。在社交渠道,文案X的CTR是5%,Y是5%,两者持平。那么分组看,文案Y在搜索渠道胜出,在社交渠道打平,似乎Y整体应该更好?我们来算整体:

overall_ad = ad_df.groupby('文案').agg({'点击量':'sum', '曝光量':'sum'})
overall_ad['整体CTR'] = overall_ad['点击量'] / overall_ad['曝光量']
print(overall_ad[['整体CTR']])

整体计算发现,文案X的CTR大约是7.7%,而文案Y的CTR是10.0%。结论和分组分析一致,Y更好。这看起来没悖论?别急,我故意先设了个“陷阱”。现在,我们修改一下数据,制造一个真实的悖论:

# 修改后的数据,制造悖论
ad_data_paradox = {
    '渠道': ['搜索', '搜索', '社交', '社交'],
    '文案': ['X', 'Y', 'X', 'Y'],
    '点击量': [120, 960, 980, 200],  # 修改了点击量
    '曝光量': [1000, 2000, 2000, 1000]  # 修改了曝光量
}
ad_df_p = pd.DataFrame(ad_data_paradox)
ad_df_p['CTR'] = ad_df_p['点击量'] / ad_df_p['曝光量']

print("修改后的分组数据:")
print(ad_df_p[['渠道', '文案', 'CTR']])

overall_ad_p = ad_df_p.groupby('文案').agg({'点击量':'sum', '曝光量':'sum'})
overall_ad_p['整体CTR'] = overall_ad_p['点击量'] / overall_ad_p['曝光量']
print("\n修改后的整体CTR:")
print(overall_ad_p[['整体CTR']])

这次,在搜索渠道(高价值渠道),文案X的CTR为12%,文案Y为48%,Y完胜。在社交渠道,文案X的CTR为49%,文案Y为20%,X完胜。每个渠道内部都有明确的优胜者。但整体上,文案X的CTR是(120+980)/(1000+2000)=36.7%,文案Y的CTR是(960+200)/(2000+1000)=38.7%,文案Y反而以微弱优势“翻盘”了。原因就在于,表现极佳的文案X(在社交渠道49%)获得的曝光量(2000)远小于表现较差的文案Y在搜索渠道的曝光量(2000),而搜索渠道的权重(曝光量)在整体计算中占比更大。这个案例告诉我们,在评估广告效果时,如果不考虑渠道本身的流量权重和用户质量差异,可能会做出错误的创意选择。

4. 破局之道:四步实战指南,让数据回归真实

踩了这么多坑,我总结了一套应对辛普森悖论的实战方法。它不是一堆理论,而是可以马上用到你下次数据分析中的具体操作。

4.1 第一步:养成“分层分析”的肌肉记忆

这是最重要、最直接的一步。拿到任何数据集,尤其是要进行A/B测试或者分组对比时,不要第一时间去算整体平均值。我的习惯是,先问自己几个问题:数据可以按哪些关键维度拆分?比如用户画像(新/老、地域、设备)、产品维度(品类、价格带)、时间维度(工作日/周末)等。

然后,像下面这样,用pandas快速进行多维度的分层洞察:

def stratified_analysis(df, group_col, target_col, success_col, total_col):
    """
    执行分层分析
    df: 数据框
    group_col: 分层列名(如‘渠道’)
    target_col: 对比目标列名(如‘文案’)
    success_col: 成功数列名
    total_col: 总数列名
    """
    # 计算分组指标
    df['rate'] = df[success_col] / df[total_col]
    
    # 数据透视
    pivot_table = df.pivot_table(index=group_col, columns=target_col,
                                 values='rate', aggfunc='mean')
    print(f"按【{group_col}】分层后的效果对比:")
    print(pivot_table)
    print("\n" + "="*50)
    
    # 同时计算各分组的样本权重
    weight_table = df.pivot_table(index=group_col, columns=target_col,
                                 values=total_col, aggfunc='sum')
    print(f"各分组的样本量(权重)分布:")
    print(weight_table)
    
    return pivot_table, weight_table

# 使用广告悖论数据示例
pivot, weights = stratified_analysis(ad_df_p, '渠道', '文案', '点击量', '曝光量')

这个函数不仅能输出分层后的效果对比,还会给出各层的样本量,让你一眼就看清权重分布是否均衡。如果发现某个维度下的分层结果与整体结果不一致,恭喜你,你可能已经抓住了那个关键的混杂变量。

4.2 第二步:用可视化让矛盾“无处遁形”

人眼对图形比数字更敏感。好的可视化能瞬间揭示悖论。除了上面用到的分组柱状图,堆叠面积图或瀑布图是展示权重贡献的利器。

import plotly.graph_objects as go

# 绘制展示权重贡献的瀑布图(以文案Y为例)
fig = go.Figure(go.Waterfall(
    name="文案Y整体CTR构成",
    orientation="v",
    measure=["relative", "relative", "total"], # 相对值,相对值,总计
    x=["搜索渠道贡献", "社交渠道贡献", "整体CTR"],
    y=[ad_df_p.loc[1, 'CTR'] * (ad_df_p.loc[1, '曝光量']/ad_df_p['曝光量'].sum()),
       ad_df_p.loc[3, 'CTR'] * (ad_df_p.loc[3, '曝光量']/ad_df_p['曝光量'].sum()),
       overall_ad_p.loc['Y', '整体CTR']],
    connector={"line":{"color":"rgb(63, 63, 63)"}},
))
fig.update_layout(title="文案Y整体CTR的渠道贡献分解(加权平均)",
                  yaxis_tickformat='.1%')
fig.show()

这个瀑布图能清晰显示,文案Y的整体CTR是如何由两个渠道的贡献加权组成的。你可以看到,尽管在社交渠道贡献为负(因为该渠道CTR低于另一文案),但由于搜索渠道的权重和正向贡献足够大,最终依然拉高了整体值。这种图在向业务方解释“为什么局部好整体却不好”时,特别有说服力。

4.3 第三步:引入统计模型进行“加权校正”

当分层变量很多时,手动分层分析会变得繁琐。这时,统计模型就派上用场了。我们可以使用加权最小二乘法或在回归模型中直接加入交互项来校正混杂因素的影响。

import statsmodels.api as sm
import statsmodels.formula.api as smf

# 假设我们有一个更复杂的数据集,包含渠道、文案、用户类型等多个维度
# 我们可以构建一个逻辑回归模型(因变量为是否点击)
# 这里使用一个模拟数据集进行演示
import numpy as np
np.random.seed(42)
n_samples = 1000
sim_df = pd.DataFrame({
    'channel': np.random.choice(['Search', 'Social'], n_samples),
    'copy': np.random.choice(['X', 'Y'], n_samples),
    'user_type': np.random.choice(['New', 'Returning'], n_samples, p=[0.7, 0.3]),
    'exposure': np.random.randint(1, 10, n_samples) # 模拟曝光权重
})
# 模拟点击率,假设渠道和用户类型有影响
sim_df['ctr_prob'] = 0.1 + 0.3*(sim_df['channel']=='Search') + 0.2*(sim_df['user_type']=='Returning') - 0.05*(sim_df['copy']=='Y')
sim_df['clicks'] = np.random.binomial(sim_df['exposure'], sim_df['ctr_prob'])

# 使用加权最小二乘法,以曝光量为权重
model = smf.wls('clicks ~ copy + channel + user_type', data=sim_df,
                weights=sim_df['exposure']).fit()
print(model.summary().tables[1])

通过查看模型结果中copy变量的系数和显著性,我们可以得到在控制了channel和user_type的影响后,文案Y相对于文案X的真实效果估计。这种方法能更干净地剥离出我们关心的因果关系。

4.4 第四步:构建因果图,厘清分析思路

在动手分析前,画一张简单的因果图(DAG) 是极好的习惯。它不涉及复杂计算,就是把你认为的变量间关系用箭头画出来。比如,对于广告案例:

    用户意图 ──┐
                │
                ↓
    广告渠道 ───→ 点击行为 ←── 广告文案
                ↑
                │
    用户画像 ──┘

这张图告诉我们,“用户意图”和“用户画像”是混杂变量,它们同时影响用户选择哪个“广告渠道”,也影响其“点击行为”。而“广告文案”直接影响“点击行为”。我们的分析目标,是估计从“广告文案”到“点击行为”的箭头(效应),就必须想办法阻断“广告渠道”等后门路径。这直观地告诉我们,必须对“渠道”进行分层或控制。养成画因果图的习惯,能让你在分析之初就保持清醒,避免遗漏关键混杂因素。

5. 避坑清单:数据决策者的日常自查手册

根据我这些年的经验,辛普森悖论最喜欢在以下几种场景下出没。当你遇到这些情况时,请立刻在脑中拉响警报:

场景一:A/B测试结果与业务直觉严重不符。 比如,一个新功能每个细分人群的留存都在提升,但大盘留存却下降了。马上检查是不是不同人群的权重(比如活跃度、用户体量)发生了巨大变化。

场景二:比较两个不同时期或不同群体的整体指标。 比如,比较今年和去年的整体用户满意度。要警惕用户构成是否发生了变化(例如,今年新增了大量新用户,而新用户满意度普遍偏低)。

场景三:汇总来自不同部门、不同区域的数据报告。 各区域都说自己业绩增长,公司整体却下滑了。这几乎是辛普森悖论的标准公司政治剧本,问题往往出在增长快的区域基数小,而占比大的区域在衰退。

应对策略:

  1. 永远先看分布,再看整体。 拿到数据报告,第一眼不要看总计行。先看各分组的表格和图表。
  2. 追问“分母”是什么。 任何比率指标(率、占比、均值),都要明确它的分母是什么,以及这个分母在不同组间是否可比。
  3. 进行敏感性分析。 尝试用不同的方式对数据进行加权(例如,按用户价值加权,而不是简单按人头加权),看看结论是否稳健。如果结论随着加权方式剧烈变化,说明你的原始结论非常脆弱。
  4. 用业务知识做验证。 数据结论最终要能回到业务逻辑上说得通。如果一个数据结论违背了基本的业务常识,那么极有可能是有混淆变量没被考虑到。

数据本身不会说谎,但聚合数据的方式会制造幻觉。辛普森悖论给我们上的最重要的一课,就是对任何汇总数据保持一份健康的怀疑。它不是一个需要惧怕的数学怪胎,而是一个提醒我们深入数据肌理、尊重数据异质性的忠实哨兵。下次当你看到一个简单明了的整体结论时,不妨多问一句:“如果我们把它拆开来看,故事还一样吗?” 这个简单的习惯,或许就能帮你避开下一个决策深坑。

插值算法全解析:从拉格朗日到样条,连接离散与连续数据 插值算法是数值分析中的基础技术,用于根据已知离散数据点构建连续函数,从而估算未知位置的值。其核心原理是通过数学函数精确穿过所有已知点,实现从有限样本到连续信息的推断。在工程实践与科学计算中,插值技术具有重要价值,它是数据处理、图形绘制、函数逼近及数值微积分的基础。常见的应用场景包括地理信息系统中的地图绘制、图像处理中的像素插值、气象数据的补全以及信号处理等。本文深入探讨了拉格朗日插值、牛顿插值、分段线性插值和三次样条插值等主流方法,其中三次样条插值因其优异的光滑性和稳定性,成为处理大量数据时的首选方案。通过 阅读详情

相关推荐

Excel 数据分析常用函数汇总

很多传统行业的数据分析师只要求掌握 Excel 即可,会 SPSS / SAS 是加分项。哪怕在数据分析岗位很多的互联网行业,Excel 依旧是不可替代的基础工具。Excel 是数据分析最常用、最基础的工具。大量传统行业(商贸、工厂、门店进销存)的数据分析师,熟练掌握 Excel + SQL 就可以完成绝大多数日常工作。对于初学者,不用一上来就啃 Python、R 这类编程语言,Excel 自带的函数、透视表、可视化插件足够支撑大部分统计、核对、报表需求;

qq_22201881的博客 184

数据分析中相关性分析的核心原理、方法选择与实战避坑指南

相关性分析是量化变量间关联强度的基础统计方法,其核心在于衡量两个或多个变量共同变化的趋势。从原理上看,它主要分为参数方法(如皮尔逊相关系数)和非参数方法(如斯皮尔曼等级相关系数),前者要求数据满足线性、正态分布等假设,后者则基于数据排序,对异常值和分布形态更为稳健。在技术价值上,相关性分析不仅是探索性数据分析的关键步骤,更是特征筛选、共线性诊断和模型构建前的重要依据,能有效揭示数据中潜在的关联模式。其应用场景广泛,从商业分析中的市场指标关联,到科研中的变量关系探究,再到机器学习中的特征工程,都离不开对相关性

weixin_30603633的博客 301

osgearth2.10 demo功能介绍

osgearth-2.10 demo: 说明: 1、运行环境win7 x64 旗舰版,CPU i5-6400 8核,8G内存; 2、括号内是对应demo的测试参数(.earth); 3、配置OSG_FILE_PATH; 4、参数命令行可以查看各个demo需要的输入参数; 5、前缀说明:gui界面程序、cmd控制台程序、non功能未知; 6、程序后括号里的non表示不需要通过命令行输入参数; 示例: 1、gui:osgearth_3pv(simple.earth):相机与地球的投影关系,Range表示相机

rach09的专栏 2422

智能数据分析平台深度评测:主流产品优劣势与适用场景解析

智能数据分析平台的选型,核心是判断企业当前处于哪个数据阶段、下一步要解决什么问题。四款平台各有明确的能力侧重:帆软 FineBI 强在报表与指标体系的标准化,观远数据强在行业场景与决策智能,火山引擎 DataWind 强在字节生态与对话式问数,ThinkingAI 的价值在于把"分析"推进到"行动",让数据闭环真正转起来。与其纠结哪家功能更多,不如先用一个真实业务问题做验证,最快能跑通闭环的那一个,往往就是当前阶段的最优解。

效率工作研究中心 58

避坑指南:时间序列互相关分析(CCF)常见的5个误用场景

本文详细解析了时间序列互相关分析(CCF)中常见的5个误用场景,包括忽视平稳性检验、混淆同期相关与因果关联、误读滞后阶数、忽略自相关干扰以及样本量不足等问题。通过实际案例和技术建议,帮助数据分析师避免这些陷阱,确保CCF分析的准确性和可靠性。

weixin_29064009的博客 428

STM32与FreeRTOS:基于TIM6的高精度系统时间获取实践

本文详细介绍了在STM32与FreeRTOS环境下,基于TIM6定时器实现高精度系统时间获取的实践方法。通过复用FreeRTOS的TIM6硬件资源,开发者可以高效获取毫秒级和微秒级系统时间,同时解决时间溢出和中断处理等关键问题。文章还提供了CubeMX配置技巧、代码实现及性能优化建议,适用于嵌入式系统开发中的精确时间管理需求。

weixin_29169505的博客 357

企业做 AI 数据分析,该用通用办公 Agent 还是专业数据 Agent?

企业做 AI 数据分析,选型的核心判断标准是数据复杂度,而非单纯的产品偏好。当数据分析停留在单表、小数据量、口径模糊的浅层问答时,通用办公 Agent 已经足够;当数据涉及多表关联、大数据量、严格指标口径和权限治理时,通用 Agent 的生成 SQL 路线会在这四道门槛前暴露能力边界,专业数据 Agent 才是承接深度分析的可靠选择。两类 Agent 的定位决定了它们应当协同而非替代。

Leo的博客 92

Qwen3.5本地部署实战:4B模型在RTX3060上离线运行指南

大语言模型本地化部署正从云端服务转向终端设备,其核心是模型轻量化、硬件适配与推理引擎协同优化。基于INT4量化感知训练和GGUF格式支持,Qwen3.5在结构精简、Tokenizer轻量及显存友好性方面显著优于前代,使4B级别模型可在RTX 3060等中端显卡上稳定运行。该技术路径兼顾低延迟响应(<2秒)、数据隐私保障与离线可用性,广泛适用于法律文书分析、医疗文档处理、教育AI助手等对安全性与实时性双重要求的场景。本文聚焦Qwen3.5-4B量化部署全流程,涵盖llama.cpp编译调优、GPU层加载策略及

weixin_32181267的博客 365

用 Excel 完成数据分析,一套可上手实操流程

很多初学数据分析的人会陷入一个误区:把 Excel 数据分析等同于背诵、嵌套各种函数,觉得不会几十条函数,就做不了数据分析。但在商贸、门店、工厂这类传统行业的日常工作里,大量的数据工作其实不靠复杂公式,依靠 Excel 的自带功能:规范表格结构、Power Query 批量清洗、数据透视表汇总、切片器联动、条件格式预警、图表可视化,就能独立完成从杂乱原始台账,到一份可以交给领导复盘的分析报表。对于想要应聘进销存、运营数据岗的人来说,这一套能力甚至比会写复杂嵌套函数更加常用。

qq_22201881的博客 248

Mmdetection用自己的数据集训练Mask_RCNN

将自己数据的标签写入配置文件,在data前一行添加自己的标签列表,同时在train,val,test中添加classes = classes,如果不添加,模型就会默认读取coco原始数据集的80个标签,与自己的数据集对应不上就会报错。2.打开第二个文件coco_instance.py,将data_root路径改为你自己coco数据集的位置(注意一定要以/结尾),修改输出图片尺寸(根据自己的数据集决定)3.将标注完的数据转为Mask_rcnn训练所需的数据集格式。4.将数据集放到训练代码文件夹中。

m0_64298393的博客 3473

BLDC方波控制 vs. FOC:技术选型指南与未来演进

本文深入对比BLDC电机方波控制与FOC技术的核心差异,分析两者在成本、性能和应用场景上的权衡。方波控制凭借低成本和易实现性,在电动工具和家电领域优势明显;而FOC则以平滑高效控制见长,适用于高端精密应用。文章为工程师提供了实用的技术选型指南,并展望了未来技术融合的发展趋势。

yhn4567890的博客 1172

基于 Python 的汽车市场数据分析与可视化平台

本平台是一个基于 Python Flask 框架的汽车市场数据分析与可视化系统,整合了多个真实汽车市场数据集,提供数据概览、车辆检索、多维分析、价格预测、品牌对比、技术规格分析、销量统计等功能模块,适用于汽车市场趋势研究和二手车价格预测场景。所有数据源的价格在导入时已按汇率统一转换为人民币(CNY),确保跨数据集价格可比。

aiyuanma_vip的博客 313

【PointNet++】制作点云数据集使用CloudCompare进行标注

使用PointNet++复现成功后,需要训练自己的数据集。于是使用cloudcompare参照ShapeNet的数据集格式去制作,最终保存的txt文件格式为“xyz+rgb+label”,一共7列。 自己按此制作好的数据集已成功训练及推测,于是记录下来让好兄弟好姐妹们少踩坑多吃肉。

纵马踏花向自由 5714

大专商务数据分析与应用考哪些证书难度相对低?

对大专商务数据分析与应用专业的学生来说,选证书不能只看“好不好考”,还要看考试内容能否转化为实习中的具体能力:能不能整理销售明细、核对经营数据、制作分析报表,以及解释业务变化的原因。结合专业课程和常见就业方向,可以重点考虑这四类证书。其中,办公软件类更适合作为入门选择;分析类更贴近专业发展;会计类适合准备进入财务、零售经营和电商结算相关岗位的学生。

2501_93367079的博客 246

IEC 104电力规约详细解读(五) - 遥控

主站下发遥控选择命令,子站进行遥控选择返校,若成功则回答遥控选择成功报文,若失败则回答失败报文。主站下发取消遥控命令或者遥控执行命令行。子站皆以报文的镜像确认。遥控命令用来实现对一个可操作设备状态的改变。在配电自动化中,包括单点命令和双点命令。通常,单点命令用于控制单点信息对象;双点命令用于控制双点信息对象。

张二狗的博客 7352

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

基于springboot+vue+uniapp的羽毛球预约小程序(Websocket智能沟通、Echarts数据分析、会员闭环管理、灵活运营规则、全流程预约)

本系统基于B/S架构,采用前后端分离设计,集成微信小程序与管理后台,实现多角色权限管控。核心亮点包括:全流程可视化预约、灵活运营规则配置、会员闭环管理(含余额、充值、退款)、ECharts多维度数据分析及WebSocket智能客服。支持语音、图片沟通,提升服务效率。系统覆盖用户、工作人员、管理员全链路功能,实现场馆资源高效管理与用户体验优化。

paopaokaka_luck的博客 228

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

visium数据分析范例--解码调控胶质母细胞瘤可塑性的基因调控程序

visium数据分析范例--解码调控胶质母细胞瘤可塑性的基因调控程序

weixin_53637133的博客 178

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

零售交易与行为数据分析:指标口径、客群留存建模与增量验证实践

在零售消费领域的数据分析中,单纯依赖当期销量容易掩盖退货损耗与客群质量差异。本文围绕可复用的数据分析方法,系统阐述零售交易口径规范、订单退款处理机制、商品与客户多对象关联建模、分批留存观察窗口设计,以及 RFM 交易基线与行为信号的互补应用,并深入剖析算法预测概率与 A/B 实验增量(Uplift)的统计边界。

shujudang的博客 324

多工作区数据分析应用的 DuckDB 连接隔离:每工作区独立连接、同工作区单流串行

第一步是把"一个工作区的一套连接资产"收进一个结构体,而不是散落在全局状态里。daw 的做法叫/// DuckDB 内存会话;DuckLake 是该工作区视图/表的唯一持久层/// 该连接的查询超时中断句柄/// 该工作区的绝对路径(~/.daw/<工作区>),供内省与后续落盘钩子/// 单流标志:同一工作区同一时刻只允许一个数据分析任务用这个连接翻译成人话:连接本体、中断手柄、归属路径、忙闲标志,打包成一份"工作区连接档案"。conn外面套。

遇码开源社区 495

Claude 做数据分析的这两年:一份复盘与发展线索

企业一方面是继续让 AI 进入企业更多工作环节,另一方面是在使用的过程中,持续构建自己的企业知识库和语义库,让 Agent 越来越懂自己的业务。

Aloudata的博客 207

数据分析岗 Pandas 面试题 20 道(下):手写代码题

概念题能背,手写题才是分水岭。这篇给 10 道高频手写题:每组取 TopN、连续登录天数、找出重复记录、宽表⇄长表、缺失值按组填、按条件分组统计、两表对比差异、环比计算、分箱统计、一行代码做透视;每题都有题目、考察点、答案和可跑验证。 标签:Python、Pandas、面试题、数据分析、数据处理

2201_76128658的博客 319

商务数据分析与应用专业哪些证书企业比较认可?

商务数据分析与应用专业的学生,选择证书时经常面临一个问题:是先证明办公软件操作能力,还是直接学习商业分析、数据库和数据建模?答案需要从目标岗位出发。经营分析、数据运营、商业智能等岗位虽然都与数据有关,对技能的侧重点却有所不同。面向2027年的实习、求职与学习规划,可以重点考察四类证书:全国计算机等级考试证书、Microsoft Office Specialist、CDA数据分析师,以及微软Power BI数据分析师助理认证。

kaiyou2026的博客 196

京东商品采集+数据分析:Python爬虫遇到滑块怎么办!

京东的列表接口和页面结构随时可能改版,参数还可能带当次签名,我不能凭印象给你编一个域名或者 sign 算法,脚本里接口地址干脆留空,自己打开浏览器 Network 面板复制当次请求的地址和参数填进去,选择器同理从 Elements 面板复制。下面就可以接数据分析了。这是个右偏的长尾分布,只报一个均价很容易把人带偏,这是一个比较简单的实例应用。可以看到,正常页面返回 False,验证页和 403 都返回 True,退避序列按 2 秒、4 秒、8 秒往上走,四条样例数据也解析对了,这是一个比较简单的实例应用。

Z_suger7的博客 519

AI驱动技术性股市数据分析

2026年沪深A股市场中,“机构费率更低”已失效,个人新开户佣金低至万0.691–1.0,低于部分量化私募与公募分仓佣金。真正决定成本的是交易频率与综合冲击成本,单笔显性成本仅差几十元,但高频交易下滑点与门槛拖累显著放大。AI工具使用率虽达40%–50%,但深度采纳不足15%,直接下单者仅5.5%。所谓“准确率90%+”多为口径错位,真实可交易胜率仅50%–58%。测算显示,单轮成本超32bp时,即便58%准确率也无法盈亏平衡——成本先于能力决定结果。

一只懂代码不懂人情世故的源码爱好猿 445

企业智能数据分析平台落地实践:语义层、行为分析引擎与 AI 边界认知

自然语言问数工具降低了数据消费的交互门槛,但在面对用户时序行为分析、跨团队语义一致性和分析到运营的连贯执行时,这类工具有其客观的适用边界。本文从工程实践角度梳理企业级智能数据分析平台的关键技术维度,以及 AI 在分析链路中的合理定位。

shujudang的博客 311
上一篇: PostgreSQL数据库权限精细化控制:如何为特定用户分配专属数据库访问权限
下一篇: C#与倍福ADS通信:高效处理带数组成员的结构体数组
postgres8guard
博客等级 码龄4年 62粉丝 1443原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值