大数跨境
0
0

【Stata神技】Winsor2缩尾处理:3分钟拯救被"土豪"带偏的数据!

【Stata神技】Winsor2缩尾处理:3分钟拯救被"土豪"带偏的数据! Stata and Python数据分析
2025-05-09
2
导读:In me the tiger,sniffs the rose.

本文作者:王宇新,河南大学经济学院

本文编辑:崔雨晨

技术总编:马梦杰

Stata and Python 数据分析

爬虫俱乐部Stata基础课程Stata进阶课程Python课程可在小鹅通平台查看,欢迎大家多多支持订阅!如需了解详情,可以通过课程链接(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或课程二维码进行访问哦~


 

导读

你的数据是否也遇到过这些"戏精"?
• 年薪一个小目标的"打工皇帝",让平均工资直冲云霄
• 月消费999万的"剁手狂魔",把消费数据拉成过山车
• 年龄-1岁的"时空穿越者",在数据里玩起了时空扭曲

         别慌!今天教你用Stata的winsor2命令,像美颜滤镜一样,一键磨平数据中的"尖刺",让分析结果重回颜值巅峰!这可不是简单的"数据整容",而是科学的数据清洗方法,能帮你保住珍贵的样本量,同时消除异常值的干扰。


一、异常值:数据界的"害群之马"

最近隔壁实验室小王差点被数据坑哭——明明做了100份问卷,结果因为两个"土豪"年收入填了9个9,导致全组平均收入直接突破天际!导师的死亡凝视.jpg

异常值的三大罪状:
1️⃣ 均值刺客:就像班上来个奥数冠军,能把全班平均分拉高20分。1个极端值能让平均值暴涨300%,完全掩盖真实情况。
2️⃣ 模型杀手:回归分析时,这些"数据霸王龙"会强行带节奏,让系数估计严重失真。
3️⃣ 检验骗子:它们会伪造显著性,让本不显著的结果变得"星光熠熠"。


二、什么是缩尾处理(Winsorization)?

缩尾处理是一种统计学上的数据调整方法,其核心思想是将极端值“拉回”到设定的分位数范围内,而不是直接删除。具体来说:
  缩尾处理是将超出指定分位数(如1%和99%)的观测值替换为该分位数的值。例如,某变量的99%分位数是100,但有一个观测值是200,那么该值会被调整为100。

Stata中的winsor2命令
winsor2并非Stata自带命令,而是由社区贡献的外部命令,需先安装:

ssc install winsor2, replace

基本语法

winsor2 varlist [if] [in][cuts(low high) suffix(string) trim replace label]
• cuts(low high):指定缩尾的分位数,默认为cuts(1 99)(即1%和99%分位数)。
• suffix(string):为缩尾后的变量添加后缀,如suffix(_w)。
• trim:改为截尾处理(删除极端值)。
• replace:直接替换原变量(慎用!建议先用suffix生成新变量)。
• label:为新变量添加标签。

三、实战演示:工资&教育年限的"瘦身计划"

拿经典的工资数据开刀!我们使用美国国家纵向调查(NLSW88)的工资数据,人工插入极端值进行演示。

Step 1:数据"体检"

sysuse nlsw88, clear  // 调用Stata内置数据keep wage grade  //保存工资、教育等级主要数据gsort -wage  //按工资降序排列set seed 12345  //设置随机数生成器的种子值replace wage=runiform(50,100) in 1/5  //在前五行人工插入异常值list in 1/10  //插入异常值后,展示前十行数据
插入异常值后前十行的数据显示为
接下来,查看工资分布
sum wage grade, detail  // 看看工资和受教育年限
hist wage, title("震惊!工资分布惊现长尾巨兽"

诊断结果让人大跌眼镜:

  • 平均工资$7.85/小时,还算正常
  • 但有个大佬工资$84.47/小时(疑似马云兼职做调研)
  • 右尾长得像彗星尾巴💫,明显被个别值拉长

这就像班级里99个同学考60-80分,突然来了个150分的学霸(满分100),平均分瞬间失去意义。

Step 2:施展"缩尾大法"

winsor2 wage, cuts(1 99) suffix(_w)  // 把头和尾各砍1%
效果对比分析
图形对比:

用 winsor2 处理后,工资数据的分布变得平滑多了,极端值不再那么扎眼,分析结果也更靠谱啦!这样一来,我们的统计分析就稳如泰山,不怕那些离群点捣乱了。

统计量对比:

sum wage wage_w1 
效果对比令人惊喜:

缩尾后,数据最大值由原来的84.46917,调整为为38.70926,数据最小值由1.0049552调整为1.930993,整体数据被削峰填谷,标准差由原来的6.415369变为5.686979,数据更紧凑了。就像给照片开了瘦脸功能,轮廓更清晰自然,但绝对没有换头——数据真实性丝毫未损!

展示前、后十行数据:

list in 1/10list in -10/-1

Step 3:回归模型"卸妆前后"

  • 处理前:被土豪支配的恐惧
reg wage gradeestimates store original
  • 处理后:真相浮出水面
reg wage_w1 grade estimates store winsorized
  • 回归结果对比
esttab original winsorized,b(3) se(3) mtitle

哇塞,缩尾处理简直是给回归分析打了一针强心剂!处理后,grade系数从0.751降到了0.742,标准误也从0.051降到了0.045,下降了12.75%!这表明模型的稳定性更强了,不再那么受异常值的干扰。而且,grade的系数依然显著为正,说明教育水平对工资的正向影响是板上钉钉的事,缩尾处理后这个结论依然坚如磐石。总的来说,缩尾处理让回归分析更加靠谱,结果更加可信,真是棒棒哒!


四、避坑指南:这些雷千万别踩

1️⃣ 无脑1%-99%

  • 金融数据要用0.5%-99.5%(极端值就像韭菜,割一茬长一茬)
  • 小样本用5%-95%(就像小班级,去掉一个最高分影响很大)

2️⃣ 乱杀"无辜"

错误示范:对性别变量缩尾(黑人问号脸?)

winsor2 gender, cuts(1 99)  // 性别咋缩尾?男变女?!

离散变量、虚拟变量千万别碰!

3️⃣ 闷头硬干不检查

  • 必须画图对比!眼见为实
  • 要做不同分位数的稳健性检验,就像买衣服要试不同尺码

五、终极总结:让Winsor2成为你的"数据美容师"

数据分析就像给照片修图——不过度美颜,但必须祛痘磨皮!
• 祛痘(异常值):用winsor2精准点掉数据"痘痘",不伤及无辜
• 磨皮(分布修正):平滑极端值,让数据呈现最自然的"素颜美"
• 保真(样本保留):绝不粗暴删除,留住每一份珍贵数据

记住这个万能公式
📌 诊断 → 处理 → 验证 = 靠谱结果 + 导师微笑

下次再遇"数据土豪",别慌!
三行代码甩过去,还你一个清朗的数据世界:

ssc install winsor2winsor2 你的变量, cuts(1 99)sum 你的变量, detail

现在轮到你啦!
快去给数据做个"SPA",回来告诉我:
你最想用Winsor2"收拾"哪个变量?
(工资?股票收益?还是...男/女朋友的身高数据?)


声明:代码仅供学习使用,请勿用做任何商业行为!

重磅福利!为了更好地服务各位同学的研究,爬虫俱乐部将在小鹅通平台上持续提供金融研究所需要的各类指标,包括上市公司十大股东、股价崩盘、投资效率、融资约束、企业避税、分析师跟踪、净资产收益率、资产回报率、国际四大审计、托宾Q值、第一大股东持股比例、账面市值比、沪深A股上市公司研究常用控制变量等一系列深加工数据,基于各交易所信息披露的数据利用Stata在实现数据实时更新的同时还将不断上线更多的数据指标。我们以最前沿的数据处理技术、最好的服务质量、最大的诚意望能助力大家的研究工作!相关数据链接,请大家访问:(https://appbqiqpzi66527.h5.xiaoeknow.com/homepage/10)或扫描二维码:


对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!







往期推文推荐
Stata矩阵 —— 开启高效数据分析的魔法之门

当川普遇到GPT——TimeGPT对川普币价格的时间序列预测分析

一图解千言:从理性函数到浪漫曲线
爬虫实战:中基协私募基金数据爬取与可视化分析
Stata绘图秘籍:代码打造极简时钟

DeepSeek霸榜微博?用爬虫解读微博用户的情感密码

一图读懂:中国各省金融许可证地理分布

用Stata破解百年诅咒!每年到底有多少个"黑色星期五"?

利用Deepseek结合Stata创意绘图——多元素同心圆标识设计与实现
对中国知网高被引学者数据的评估探讨
Stata中reclink命令全解析,必学干货来袭!
【爬虫实战】文献阅读小助手

爬虫实战——stata抓取教育部文件(二)

除夕烟火映征程,回顾这一年的奋斗足迹
“巳升升”送如意!

爬虫实战——Stata抓取国家公务员局工作动态信息

别让 “害虫” 毁了你的电脑!Stata 命令来救场
Stata的DOS命令批量处理文件

【爬虫实战】 人工智能机器人概念股投资策略——以“300024.SZ”机器人公司为例



【声明】内容源于网络
0
0
Stata and Python数据分析
爬虫俱乐部,新的启航
内容 1337
粉丝 0
Stata and Python数据分析 爬虫俱乐部,新的启航
总阅读396
粉丝0
内容1.3k