我应该如何解释这个残差图?

机器算法验证 r 回归 物流 残差 诊断
2022-03-27 10:43:28

我无法解释这个图表。我的因变量是将用于演出的电影票总数。自变量是放映前剩余的天数、季节性虚拟变量(星期几、一年中的月份、假期)、价格、迄今为止售出的门票、电影评分、电影类型(惊悚片、喜剧片等,作为虚拟变量) )。另外,请注意电影院的容量是固定的。也就是说,它最多只能容纳 x 人。我正在创建一个线性回归解决方案,它不适合我的测试数据。所以我想从回归诊断开始。数据来自我想预测需求的单个电影院。

是一个多元数据集。对于每个日期,有 90 行重复,代表演出前几天。因此,对于 2016 年 1 月 1 日,有 90 条记录。有一个“lead_time”变量,它给了我演出前的天数。因此,对于 2016 年 1 月 1 日,如果lead_time 的值为 5,这意味着它将在演出日期前 5 天之前售出门票。在因变量中,售出的总票数,我将有 90 次相同的值。

另外,顺便说一句,是否有任何书解释了如何解释残差图并在之后改进模型?

在此处输入图像描述

3个回答

您的残差图具有明确的模式,随着拟合值的增加,有几条线呈下降趋势。如果您未能在模型中考虑固定/随机效应并且固定效应与解释变量相关,则可能会出现这种模式。考虑以下示例:

set.seed(999)

N = 1000
num.groups = 10

alpha = runif(num.groups, -10, 10) #Fixed effects
beta = 10 #Slope parameter
group = sample(num.groups, N, replace = TRUE)

X = rnorm(N, mean = alpha[group], sd = 5) #Mean of X correlated with fixed effect
e = rnorm(N, sd = 1)
y = alpha[group] + X * beta + e

df = data.frame(group = as.factor(group), X, y)

m.no.fe = lm(y ~ X, data = df) #Not including group fixed effects
plot(m.no.fe, which = 1)

这导致以下残差/拟合图: res_fitted_nofe

例如,如果您对几所高中的入学收入进行了回归,但没有包括高中固定效应,您可能会看到类似的情况;每所学校都有不同的基线收入(即固定效应)和平均 SAT 分数,这可能是相关的。

包括组固定效应,我们得到

m.fe = lm(y ~ group + X, data = df) #Now including fixed effects
plot(m.fe, which = 1)

这给出了一个更好的残差/拟合图:

res_fitted_fe

从标准 OLS(线性)回归的角度来看,残差图确实看起来不寻常。例如,存在异方差性的迹象,特别是残差的分布在中间大于两端。然而,这不是真正的问题。

这里真正的问题是你拟合了错误的模型。OLS 回归基于响应呈正态分布的假设(以回归量为条件,即您的变量)。你的反应不正常,也不可能。您的回答是在剧院的总座位数中售罄的座位数。您的回答是二项式的。无法使用 OLS 正确建模二项式。您需要拟合逻辑回归模型X

您将需要解决一些其他问题。从您的描述中可以明显看出,您对同一节目有多个观察结果(即超过 90 天),您有聚类观察结果。您可能需要通过拟合GLMM来解决这种非独立性另一个问题是同一节目中连续几天之间会有依赖性。毕竟,如果您在第 d 天卖出了天至少卖出了那么多票尝试解决此问题的一种方法是仅拟合 89 天的数据并将前一天的数字作为协变量。yddd+1 (抱歉,在重新阅读问题时,我看到您已经包含了一张售出的门票,直到日期变量。)

在对数据进行建模时,可能还有更多问题需要解决。这些是相当高级的主题;如果您不熟悉它们,您可能需要与统计顾问合作。

情节非常密集,因此不容易看到可能存在的所有趋势。您可以运行异方差和自相关的替代测试以获得额外的诊断。

可见的是,在前 100 个值左右,残差的方差增加,这可能暗示异方差性。之后,方差似乎再次减小。方差的这种有点非线性的行为也可能表明需要差分函数形式(因此可能是多项式而不是线性)。另一个迹象是您在拟合值的高端观察到的残差趋势(不再有任何正残差)。