- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
非正态数据的正态变换处理
—改进的幂变换方法
1.改进的幂变换方法
将偏态分布的数据向量变换为近似正态分布的数据向量y。
(1)经典的幂变换
(2)改进的幂变换
其中幂指数按下列方法估计:求使
最大化,其中
2. 数据处理的MATLAB函数
(1)幂变换函数
function y=powerTrans(x,lambda)
%powerTrans函数功能是对偏态数数据的幂变换,使其变化成为正态数据
%然后通过Q-Q图判断变换变换后数据的正态性
%其中x--变量x1,x2,x3,...,xn的容量为n的非正态偏态数据矩阵
%y--x进行幂变换后的y1,y2,...,yn容量为n的正态数据矩阵
%lambda为幂指数,可以根据数据的具体分布形态通过试验确定,lamnda1可使大值缩小,lambda1,可使大致增大
%辛妍编写于2012年11月28号
[m,n]=size(x);
for i=1:m
if lambda~=0
y(i,:)=(x(i,:).^(lambda)-ones(1,n))./lambda;
else
y(i,:)=log(x(i,:));
end
end
qqplot(y);
(2)幂指数估计函数
lamda1.m文件(程序如下)
function [lamda,y]=lamda(x)
%LAMDA函数是改进的幂变换函数,功能是找到使得经验函数
% L(s)=-0.5*n*log(var((x.^s-1)/s))+(s-1)*n*mean(log(x))达到最大化的解,然后对正值偏态数据进行幂变换
% y=(x.^lamda-1)./lamda;(将lamda带入式中)使这些数据变化成为正态据
%通过Q-Q图判断变换变换后数据的正态性
%其中x--变量x1,x2,x3,......xn的容量为n的正值偏态数据矩阵
%y--x进行幂变换后的y1,y2,....yn容量为n的正态数据矩阵
%lamda是使的经验函数最大化时的解
[m,n]=size(x)
if m~=1n~=1
error(m or n must be 1 !);
return ;
end
if n==1
n=m;
end
f=@(s)(-(-0.5*n*log(var((x.^s-1)/s))+(s-1)*n*mean(log(x))));%f表示经验函数的相反数
ezplot(f);
s0=input(请输入极值所在区间的左端点:);
s1=input(请输入极值所在区间的右断点:);
lamda=fminbnd(f, s0, s1);%利用该函数找到固定区间内单变量函数最小值
y=(x.^lamda-1)./lamda;
figure(2);
qqplot(y);
title(yQ-Q图);
3.函数测试
(1)生成一组正偏态数据,并画数据QQ图
① 生成正态数据
for i=1:100
x=randn(1,100)+5;
end
② 偏态化处理
a=(0.5*x+1).^2;
hist(a)
③ 偏态数据的直方图的图像
(2)调用lamda1.m函数进行数据处理
①数据处理
lamda1(a)
②参数lamda的估计函数的图像
③绘制正态化处理后数据的QQ图
4.实验心得(小结)
在处理数据时,当样本数据来自正态总体的先验假设是错的,即总体不是正态的情况下,通常通过适当的可逆数据变换,使非正态数据变为“像正态数据”。对于计数数据、比例数数据、相关系数矩阵、偏态数据分别采用平方根变换、logit变换z变换、幂变换相应的可逆数据变换。这里,主要针对正偏态数据,首先生成一组正偏态数据,调用lamda1函数,找到使得经验函数L(s)=-0.5*n*log(var((x.^s-1)/s))+(s-1)*n*mean(log(x))达到最大化的解lamda,带入改进的幂变换公式y=(x.^lamda-1)./lamda;求出y的值,然后通过QQ图判断y的正态性,从而找出不足再进行改进。
-6
-4
-2
0
2
4
6
150
200
250
300
350
400
s
(-(-
0
.
5
n
log
(
var
((
x
.
s
-
1
)/
s
))+(
s
-
1
)
n
mean
(
log
(
x
))))
文档评论(0)