在 R 中,找到函数 F(x) 将向量中的值转换为正态分布?

机器算法验证 r 回归 正态分布 密度函数
2022-03-26 06:31:16

我有一个从 1,000,000 个经验值的向量生成的 PDF(概率密度函数)。这个经验 PDF 严重向右倾斜。

在这种形式下,我无法使用线性回归做出准确的预测。

为了解决这个问题,是否有某种方法可以找到函数 F(x) 将向量中的值转换(即“挤压”)为标准正态分布,以便我可以将所述转换后的向量输入线性回归?

当然,这也将涉及找到将任何预测转换(即“去挤压”)回原始经验 PDF 的 F(x) 的倒数。

我试过的

到目前为止,我已经设法从经验数据中生成了密度函数:

在此处输入图像描述

这是R代码:

par(mfrow=c(2,1))

install.packages("bootstrap")
library(bootstrap)
data(stamp)
nobs <- dim(stamp)[1]
hist(stamp$Thickness,col="grey",breaks=100,freq=F)
	dens <- density(stamp$Thickness)
lines(dens,col="blue",lwd=3)

plot(density(stamp$Thickness),col="black",lwd=3, main="Simulation to choose density plot")
	for(i in 1:10)
	{
		newThick <- rnorm(nobs,mean=stamp$Thickness,sd=dens$bw*1.5)
		lines(density(newThick,bw=dens$bw),col="grey",lwd=3)
}

# If I wanted to do a linear regression to predict stamp thickness,
# what is the function F(x) to "squash" (i.e. transform) the "stamp"
# vector into a normal distribution, and the corresponding inverse 
# function Finv(x) to "desquash" (i.e. untransform) any predictions back 
# into the original prediction?

更新 1

@Andre Silva 建议:

需要正态分布的是从您的(多重)线性回归模型中得出的残差(预测与观察)。

根据关于多元线性回归的帖子

拟合回归线后,重要的是要研究残差以确定它们是否符合正态分布的假设。标准化残差 y - 的正态分位数图显示在左侧。尽管有两个较大的值可能是数据中的异常值,但残差似乎并未以任何系统方式偏离正态分布的随机样本。

在此处输入图像描述

更新 2

请参阅R 代码观察到的左偏态与对称分布,这说明唯一相关的问题是残差是否为正态分布。

3个回答

@AndreSilva 是正确的,回归不需要数据是正常的。线性回归的假设是残差是正常的。阅读此线程可能会有所帮助:what-if-residuals-are-normally-distributed-but-y-is-not以澄清此问题。

然而,这一点还远远不够。首先,残差的正态性有助于确保您可以信任软件输出的标准 p 值。即使这样,如果您的 N 足够大,您也可以信任没有正态残差的 p 值。N>1,000,000,几乎没有理由担心您的 p 值的有效性。

无论如何,如果你想建立一个预测模型,残差是否正常是无关紧要的。无论残差是否正常,OLS 回归方法都是无偏的,不考虑 N。因此,如果您想进行点预测(即y^i, 条件响应分布的预测均值X=xi), 你会好起来的。如果你想进行区间预测,你也可以这样做,只是不应该使用正态分布(这将是默认值)来这样做。相反,您可以使用残差的估计密度来制作预测区间。

您的数据不需要是“正常”的。需要正态分布的是从您的(多重)线性回归模型中得出的残差(预测与观察)。你测试过这个假设吗?

样本的经典线性模型(例如简单线性回归)y=(y1,,yn)有形式yi=μi+ϵi“错误条款”在哪里ϵ1,,ϵni.i.dN(0,σ2)和手段(μ1,,μn)是满足某些线性约束的未知数。

因此每个yi假设从正态分布生成:yiN(μi,σ2) 但绘制直方图或估计密度yi不允许检查正态性,因为它们不是同分布的(分布yi取决于i通过μi)。换句话说yi假设是从正态分布而不是从公共分布生成的。如果您有来自未知分布的“iid”样本,那么您可以使用直方图或估计密度估计此分布,但如果样本不是“iid”,则直方图或估计密度是无用的。

但是错误条款ϵi是同分布的。一个永远不知道的实现ϵi因为μi是未知的,但残差ϵ^i=yiμ^i近似误差项的实现,并且可以评估与残差样本的正态性的偏离。

在某些情况下,例如单向方差分析,您可以通过绘制直方图来单独检查正态性yi在由因子定义的每一组个体中,因为模型假设yi在每组中都是正常和独立的。如果组大小很小,最好用残差检查正态性。