在数据分析中,转换是将一个变量替换为该变量的某个函数的过程,例如将变量x替换为其平方根或对数。更严格地说,转换是一种改变分布或关系形态的替代。
①反双曲正弦变换Inverse hyperbolic sine transformation:gen new_y = asinh(y) ②立方根转换cube root transformation:gen curt_y = cond(y < 0 , -(-y)^(1/3), y^(1/3)) ③neglog转换neglog transformation:gen neglog_y = sign(y) * log(1 + abs(y)) ④Box-cox转换box-cox transformaiton: boxcox
下面简要整理一下数据转换指南(从低阶到高阶再到更高阶),读罢,会让我们对数据的转换有一个更为系统的认识。
使用转换的原因
最常见转换的回顾
心理评论 - 针对困惑的人
如何在Stata中进行转换
用于比例和百分比的转换
转换作为一个家族
用于既有正值又有负值的变量的转换
方便
减少偏斜
等间距
线性关系
加法关系
方便
一个转换后的比例可能与原比例一样自然,但对于特定目的可能更方便(例如百分比而不是原始数据,正弦而不是度数)。
一个重要的例子是标准化,通过调整值以适应不同的水平。一般来说:
标准化后的值 = (value - level) / spread
标准化后的值具有0-1取值:因此,标准化对于比较以不同单位表示的变量非常有用。通常使用变量的平均值和标准差(sd)来计算标准分数:
z = (x - x的均值) / x的标准差
标准化对分布的形状没有影响。
减少偏斜
转换可用于减少偏斜。对称或接近对称的分布通常比偏斜分布更容易处理和解释。更具体地说,正态或高斯分布通常被认为是理想的,因为它被许多统计方法所假定。
要减少右偏斜,可以取平方根、对数或倒数(平方根是最弱的)。这在实践中是最常见的问题。
要减少左偏斜,可以取平方、立方或更高次幂。
等间距
转换可用于产生大致相等的间距,尽管水平存在显著变化,这样的数据更容易处理和解释。每个具有大致相同的spread或变异性的数据集或子集是一种称为同方差性的条件,其对立面被称为异方差性。
线性关系
在研究变量之间的关系时,通常更容易考虑大致线性的模式,而不是高度曲线的模式。这在使用线性回归时尤为重要,它等同于将这样的模式拟合到数据中。(在Stata中,regress
是进行回归的基本命令。)
例如,将一系列值的对数绘制为时间的函数具有一个性质,即具有恒定变化率(增长或下降)的时期会以直线呈现。
加法关系
关系是加法而不是乘法时通常更容易分析。因此:
y = a + bx
其中两个项 a 和 bx 相加比
y = ax^b
其中两个项 a 和 x^b 相乘更容易处理。加法性是方差分析中的一个重要问题(在Stata中,anova
、oneway
等)。
将人口密度(人数/每单位面积)转换为单位面积/每人;
将每位医生服务的人数转换为每人服务的医生数量;
将侵蚀速率转换为侵蚀单位深度所需的时间。
在物理(生物、经济等)层面上,是否合理,尤其在数值很小时或很大时的行为?
是否能保持尺度和单位的简单和方便?
"这似乎有点像作弊。你不喜欢数据的样子,所以决定改变它们。"
"我明白这是一个有效的巧妙技巧。但我如何知道这个技巧何时适用于其他数据,或者是否需要另一种技巧,或者是否不需要转换?"
"需要转换是因为不能保证世界在所测量的刻度上运行。"
"当转换符合对变量行为的科学观点时,转换最合适。"
倒数:t = 1 / x,逆转换:x = 1 / t
以10为底的对数:t = log10(x),逆转换:x = 10^t
以e为底的对数:t = ln(x),逆转换:x = exp(t)
以2为底的对数:t = log2(x),逆转换:x = 2^t
立方根:t = x^(1/3),逆转换:x = t^3
平方根:t = x^(1/2),逆转换:x = t^2
绘制数据的图表,查看数据中的模式与最简单的理想模式的匹配程度。可以尝试使用 dotplot
或 scatter
命令。
查看数据的覆盖范围。如果范围很小,转换的效果会很小。
仔细考虑包括零值或负值的数据集。某些转换在数学上不能应用于某些值,通常也没有科学意义。
egen
命令来创建:. egen stdpopi = std(popi)
generate
命令创建新变量:. gen logeener = ln(energy)
. gen l10ener = log10(energy)
. gen curtener = energy^(1/3)
. gen sqrtener = sqrt(energy)
. gen sqener = energy^2
sign(x) * (abs(x)^(1/3))
。yscale(log)
和 xscale(log)
。这非常有用,因为图表是使用原始值标记的,但它并不会在内存中留下一个转换后的变量。ladder
、gladder
和 qladder
尝试对变量进行多种转换,目的是显示它们产生更接近正态(高斯)分布的程度。在实践中,这样的命令可能会对初级水平的用户有所帮助,但也可能会令人困惑。例如,它们可能建议与你的科学知识相矛盾的转换。
boxcox
和 lnskew0
是更高级的命令,只有在学习了教科书对其解释后才应使用。Box 和 Cox (1964) 是关键的原始参考文献。
glm
。对于比例,logit p = log (p / (1 - p))
或者对于百分比,logit p = log (p / (100 - p))
logit p = log (p / (1 - p))
logit p = log p - log (1 - p)
p的变换 = 对p进行的某些处理 - 对(1 - p)进行的某些处理。
p的折叠根 = p的平方根 - (1 - p)的平方根。
反正弦(p的平方根)
p^0.41 - (1 - p)^0.41,
p^0.5 - (1 - p)^0.5,
立方根 1/3
平方根 1/2
平方 2
倒数平方 -2
倒数 -1
(得到1) 0
立方根 1/3
平方根 1/2
恒等变换 1
平方 2
立方 3
四次方 4
..., x^-3, x^-2, x^-1, x^0, x^1, x^2, ...
..., -x^-2 / 2, -x^-1, ln x, x, x^2 / 2, x^3 / 3, ...
t_p(x) = x^p 如果 p != 0,
= ln x 如果 p == 0.
许多关于变换的讨论侧重于稍有不同的家族,出于各种数学和统计原因。在这方面的经典参考文献是Box和Cox(1964),但也请注意Tukey(1957)的早期工作。最常见的情况是,定义被更改为:
t_p(x) = (x^p - 1) / p 如果 p != 0,
= ln x 如果 p == 0.
这个t(x, p)具有各种特性,突显了家族的相似之处。
当 p -> 0 时,ln x 是其极限,得到 (x^p - 1) / p.
在 x = 1 时,对所有 p,t_p(x) = 0.
t_p(x) 的第一导数(变化率)如果 p != 0 就是 x^(p - 1),如果 p == 0 就是 1 / x。在 x = 1 时,这总是1。
t_p(x) 的第二导数如果 p != 0 就是 (p - 1) x^(p - 2),如果 p == 0 就是 -1 / x^2。在 x = 1 时,这总是 (p - 1)。
cond(x <= 0, -ln(-x), ln(x))
-ln(-x + 1) 如果 x <= 0,
ln(x + 1) 如果 x > 0.
sign(x) ln(|x| + 1)
cond(x <= 0, -ln(-x + 1), ln(x + 1))
sign(x) * ln(abs(x) + 1)
cond(t <= 0, 1 - exp(-t), exp(t) - 1)
- [(-x + 1)^p - 1] / p 如果 x <= 0,
[(x + 1)^p - 1] / p 如果 x > 0.
sinh(x) = (exp(x) - exp(-x)) / 2.
Source: Nicholas J. Cox,Transformations: an introduction
ssc install norm, replace //安装norm命令
norm x1 x2 x3, by(year) method(zee) //Standardized Z-score
norm x1 x2 x3, by(year) method(mmx) //Min-Max Normalization
norm x1 x2 x3, by(year) method(softmax) //Softmax Normalization
norm x1 x2 x3, by(year) method(sigmoid) //Sigmoid Normalization
关于计量方法类书籍,参看:1.一些比较常见的因果推断书籍25本汇总, 很多可以直接下载PDF,2.推荐一本专攻处理效应分析的书籍, 包括主流政策评估计量方法,3.年龄-时期-队列分析及其实现过程和经典书籍, 附code和数据!4.推荐使用Python语言做因果推断前沿方法的书籍,5.使用Stata做时间序列分析书籍, 包括模型讲解以及Stata示例操作,6.一本最新因果推断书籍, 包括了机器学习因果推断方法, 学习主流和前沿方法,7.社会经济政策的评估计量经济学, 提供书籍和数据和程序文件,8.全面且前沿的因果推断课程, 提供视频, 课件, 书籍和经典文献,9.从网页上直接复制代码的因果推断书籍出现了, 学会主流方法成效极快,10.推荐书籍"用R软件做应用因果分析", 有需要的学者可以自行下载!11.哪本因果推断书籍最好?我们给你整理好了这个书单!12.“不一样”的因果推断书籍, 很多观点让我们能恍然大悟, 涵盖了不少其他书里没有的因果推断方法!13.搞懂因果推断中内生性问题解决方法必读的书籍和文献已搜集好!14.一位“诗人”教授写了本因果推断书籍, 现在可以直接下载PDF参看!15.使用R软件学习计量经济学方法三本书籍推荐,16.数据缺失方法处理大全, 经典书籍助你修复数据,17.中介和调节效应操作指南, 经典书籍和PPT珍藏版,18.用R语言做Econometrics的书籍推荐, 值得拥有的经典,19.史上最全的因果识别经典前沿书籍, 仅此一份,20.重磅好书"环境能源计量经济学(附代码)", 该领域主流, 时髦和前沿的计量方法,21.Acemoglu又出版了两本经济学教课书!22.Stata17MP版最新使用指南全书, 包括DSGE, Lasso回归, ERM, 贝叶斯分析等,23.全新因果推断方法新书, 配套R, Stata和Python的代码, 还包括教授视频和PPT素材!24.学习计量, 统计和各种软件的必备书单,25.机器学习第一书, 数据挖掘, 推理和预测,26.计量回归中的交互项到底什么鬼? 捎一本书给你,27.荐书,计量经济学宝典,28.送书: 应用时间序列分析(经典),29.计量经济学教科书,多门类多级别的一个都不能少,30.50本经济学书单,入门到精通分门别类,31.从入门到进阶的Python数据分析手册, 课程内容完全免费!32.2卷RDD断点回归使用手册, 含Stata和R软件操作流程,33.社会网络分析最新文献和软件学习手册,34.环境, 能源和资源经济学手册推荐, 经典著作需要反复咀嚼,35.各领域经济学手册全在这里, 不学手册只能做重复研究,36.史上最全博士论文撰写指导手册Handbook
下面这些短链接文章属于合集,可以收藏起来阅读,不然以后都找不到了。
联系客服