如何对转换后保持非正态的非正态数据执行回归?

机器算法验证 回归 分布 非参数
2022-01-22 13:20:44

我有一些数据(158 个案例)来自李克特量表对 21 个问卷项目的回答。我真的想要/需要进行回归分析,以查看问卷中的哪些项目可以预测对整体项目的反应(满意度)。响应不是正态分布的(根据 KS 测试),我已经以我能想到的各种方式(逆、对数、log10、sqrt、平方)对其进行了转换,并且它顽固地拒绝正态分布。残差图到处都是,所以我认为进行线性回归并假装它表现正常(它也不是泊松分布)确实是不合法的。我认为这是因为答案非常密集(平均值为 3.91,95% CI 3.88 至 3.95)。

所以,我想我要么需要一种新的方式来转换我的数据,要么需要某种非参数回归,但我不知道我可以在 SPSS 中做什么。

4个回答

您无需假设正态分布即可进行回归。无论分布如何,最小二乘回归都是 BLUE 估计量(最佳线性、无偏估计量)。请参阅高斯马尔可夫定理(例如维基百科)正态分布仅用于表明估计量也是最大似然估计量。OLS 以某种方式假设正态分布的数据是一个常见的误解。它不是。它更普遍。

首先,OLS 回归不对数据做任何假设,它对误差做出假设,如残差估计的那样。

其次,在我看来,将数据转换为适合模型是错误的方法。您希望您的模型适合您的问题,而不是相反。在过去,由于计算机速度慢,OLS 回归是“唯一的游戏”,但现在不再是这样了。

第三,我不使用 SPSS,所以我无能为力,但如果它不提供某些形式的非线性回归,我会感到惊讶。一些可能性是分位数回归、回归树和稳健回归。

第四,我有点担心你的说法:

我真的想要/需要进行回归分析,以查看问卷中的哪些项目可以预测对整体项目的反应(满意度)

如果将这些项目相加或以某种方式组合以形成整体规模,那么回归根本不是正确的方法。您可能需要因子分析。

与其依赖残差的正态性检验,不如尝试用理性判断来评估正态性。正态性测试不会告诉你你的数据是正常的,只是它不是。但鉴于这些数据是一个样本,你可以很确定它们实际上是不正常的,没有经过测试。要求基本正常。测试不能告诉你。测试在大 N 或更严重时也变得非常敏感,灵敏度随 N 变化。您的 N 在灵敏度开始变高的范围内。如果您在 R 中多次运行以下模拟并查看图表,那么您会看到正态性检验在大量正态分布上显示“不正常”。

# set the plot area to show two plots side by side (make the window wide)
par(mfrow = c(1, 2)) 
n <- 158 # use the N we're concerned about

# Run this a few times to get an idea of what data from a 
# normal distribution should look like.
# especially note how variable the histograms look
y <- rnorm(n) # n numbers from normal distribution
# view the distribution
hist(y)
qqnorm(y);qqline(y)

# run this section several times to get an idea what data from a normal
# distribution that fails the normality test looks like
# the following code block generates random normal distributions until one 
# fails a normality test
p <- 1 # set p to a dummy value to start with
while(p >= 0.05) {
    y <- rnorm(n)
    p <- shapiro.test(y)$p.value }
# view the distribution that failed
hist(y)
qqnorm(y);qqline(y)

希望在通过模拟之后,您可以看到正态性检验可以轻松拒绝看起来非常正常的数据,并且来自正态分布的数据看起来可能与正常相去甚远。如果您想查看该 try 的极值n <- 1000分布看起来都正常,但仍然以与较低 N 值相同的速率未通过测试。相反,通过测试的低 N 分布看起来可能与正常相差甚远。

SPSS 中的标准残差图对于评估正态性并不是非常有用。您可以看到异常值、范围、拟合优度,甚至可能是杠杆作用。但常态很难从中得出。尝试以下模拟,比较直方图、分位数-分位数正态图和残差图。

par(mfrow = c(1, 3)) # making 3 graphs in a row now

y <- rnorm(n)
hist(y)
qqnorm(y); qqline(y)
plot(y); abline(h = 0)

从最后一个情节中很难分辨出正常性或其他任何事情,因此不能很好地诊断正常性。

总之,通常建议不要依赖正态性检验,而应依赖残差的诊断图。如果没有这些图表或问题中的实际值,任何人都很难就您的数据在分析或转换方面需要什么提供可靠的建议。为了获得最佳帮助,请提供原始数据。

从广义上讲,有两种可能的方法来解决您的问题:一种从理论角度来看是合理的,但在实践中可能无法实施,而另一种则更具启发性。

理论上的最佳方法(不幸的是,您实际上可能无法使用)是通过恢复直接应用所谓的最大似然法来计算回归。最大似然估计(实际上是先行和更基本的数学概念)和普通最小二乘 (OLS) 回归(通常的方法,适用于观察变量都是独立随机且正态分布的特定但极其常见的情况)之间的联系) 在许多统计教科书中都有描述;我特别喜欢的一个讨论是 Glen Cowan 的“Statistical Data Analysis”第 7.1 节。如果您的观察变量不是正态分布的,

在这种情况下,由于您似乎并不真正知道支配您的观察变量的潜在分布(即,唯一可以确定的是它绝对不是高斯分布,但不是它实际上是什么),上述方法不会不适合你。通常,当 OLS 失败或返回一个疯狂的结果时,这是因为异常点太多。离群点实际上打破了正态分布观察变量的假设,对拟合贡献了太多的权重,因为 OLS 中的点由它们与回归曲线的偏差的平方加权,对于离群点,该偏差很大。在这种情况下,通常的启发式方法是对 OLS 进行一些调整或修改,从而导致离群点的贡献相对于基线 OLS 方法变得不重要或不加权。总的来说,这些通常被称为稳健回归可以在此处找到包含您可能想要尝试的特定稳健估计技术的一些示例的列表