Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的连续PowerTransform/BoxCox变换_R_Function_Transform_R Car - Fatal编程技术网

R中的连续PowerTransform/BoxCox变换

R中的连续PowerTransform/BoxCox变换,r,function,transform,r-car,R,Function,Transform,R Car,我有一个数据集需要转换成正态分布 首先,生成一个可复制的数据集 df <- runif(500, 0, 100) 因为p

我有一个数据集需要转换成正态分布

首先,生成一个可复制的数据集

df <- runif(500, 0, 100)
因为p<0.05,转化为df

BoxCoxTrans(df)
然后它会给我以下错误消息

Error in qr.resid(xqr, w * fam(Y, lambda, j = TRUE)) : 
NA/NaN/Inf in foreign function call (arg 5)
我做错了什么

添加

 print(summary(y))
结束之前,while
循环并观察计算爆炸。在任何情况下,重复应用Box-Cox都没有意义,因为您从第一次应用中获得了变换参数的ML(-like)估计量。此外,你为什么期望权力转换使均匀分布正常化


John

您可以使用Box-Muller变换从随机均匀分布生成近似正态分布。这可能比Box-Cox变换更合适,后者通常用于将偏态分布转换为几乎正态分布

下面是一个应用于一组均匀分布数字的Box-Muller变换示例:

set.seed(1234)
size <- 5000
a <- runif(size)
b <- runif(size)
y <- sqrt(-2 * log(a)) * cos(2 * pi * b)
plot(density(y), main = "Example of Box-Muller Transformation", xlab="x", ylab="f(x)")
library(nortest)
#> lillie.test(y)
#
#   Lilliefors (Kolmogorov-Smirnov) normality test
#
#data:  y
#D = 0.009062, p-value = 0.4099
#
#> shapiro.test(y)
#
#   Shapiro-Wilk normality test
#
#data:  y
#W = 0.99943, p-value = 0.1301
#
set.seed(1234)

大小您可能不希望递归转换
y
。不客气。我很高兴能帮上忙;-)干杯非常感谢。这很有帮助!完全有道理。我需要复习我的统计书。
 print(summary(y))
set.seed(1234)
size <- 5000
a <- runif(size)
b <- runif(size)
y <- sqrt(-2 * log(a)) * cos(2 * pi * b)
plot(density(y), main = "Example of Box-Muller Transformation", xlab="x", ylab="f(x)")
library(nortest)
#> lillie.test(y)
#
#   Lilliefors (Kolmogorov-Smirnov) normality test
#
#data:  y
#D = 0.009062, p-value = 0.4099
#
#> shapiro.test(y)
#
#   Shapiro-Wilk normality test
#
#data:  y
#W = 0.99943, p-value = 0.1301
#