用R语言Box-cox进行转换后,数据还是非正态是为什么?

Python024

用R语言Box-cox进行转换后,数据还是非正态是为什么?,第1张

一、boxcox变换不是万能的,本质上还是幂变换。而在x^(lambda)中,lambda取不同值在直方图上的表现主要就是将x上的大值是往左还是往右拉的问题。(PS:你可以自己多试几个lambda)

二、kolmogorov smirnov检验统计量是比较经验分布函数与累计分布函数间的极大值,这里用这个检验也没什么问题。当然,样本量越大,经验分布的可靠性就越强一些。(PS:其实好多时候直接简单粗暴地画QQ图来看正态性...)

三、看你这个变换后的直方图更像二元的高斯混合a1*N(mu1,sigma1)+a2*N(mu2,sigma2),毕竟有两个明显的峰。

你要的是BOX-COX变换吧。

library(MASS)

?boxcox

boxcox(Volume ~ log(Height) + log(Girth), data = trees,

lambda = seq(-0.25, 0.25, length = 10))

希望解答了你的问题!

当作正态处理: 凡中度及以下偏度的数据(包括重尾分布),涉及均值比较或回归系数估计的,样本量超过10个,可以当作正态处理。原因是中心极限定理。 如果实验过程是随机化顺序的,这时候这时候对均值的检验(例如使用t检验或F检验)是随机化检验方法的近似,不需要考虑正态性问题。

2.

变换为正态: 当数据严重偏离正态,或者比较的是方差(即与均值无关),这时中心极限定理帮不上忙,就最好通过数据变换转化为正态分布。 变换一般是幂变换。 分为经验法和Box-cox法(过程能力指数CpK计算时还常用Johnson变换)。 经验法就是求数据的2次方,或1/2次方,或1/4次方,或-1次方,或取Ln。看哪一种变换后近似正态。 Box-cox法是原理相同但更精确、更正式的方法。

3.

针对专门分布的方法: 例如针对相应指数族分布使用广义线性模型。