我正在进行数据转换以获得正常性。已知指数变换(manly,1974)适用于偏斜的单峰数据(例如,卡方形)。转换由
给出
Y =(EXP(伽马* X)-1)/(伽马)
我已经在R中编写了以下代码来完成这项工作(我使用manly提出的gamma公式)
exponential <- function(x,gamma){
l= length(x)
y=rep(0,l)
for (i in 1:l){
y[i]= (exp(gamma*x[i])-1)/(gamma)
}
return(y)
}
rmomentcalc <- function(x,r){
l=length(x)
mean=mean(x)
tempmom=0
for (i in 1:l){
tempmom=tempmom + (x[i]- mean)^r
}
rmom= tempmom/l
return(rmom)
}
gammacalc <- function(x){
mean=mean(x)
gamma=(2*rmomentcalc(x,3))/(3*((rmomentcalc(x,2)^2))-rmomentcalc(x,4))
return(gamma)
}
x= rchisq(100,5)
gamma=gammacalc(x)
y=exponential(x,gamma)
shapiro.test(y)
plot(density(y))
但是这永远不会恢复正常分布,我真的不知道错误是什么。