用加性多元线性回归、随机森林、弹性网络模型预测鲍鱼年龄和可视化(二)https://developer.aliyun.com/article/1485798
模型假设(AIC 和 BIC):
model_assumption
- 在这种情况下,恒定方差和正态性看起来都不错。
RMSE 分数 - AIC
kable(log\_rmse(abaone\_mde_down')
RMSE 分数 - BIC
kable(log\_rmse(abalone\_model\_add\_bic,paste("Additive Model - Degree 4 - BIC")), digits = 4,format = 'markdown')
在使用AIC 和 进行变量选择后 BIC,我们从中选择了模型 BIC 并检查了 t 统计量和假设。有趣的是, BIC 模型丢弃了很少的预测变量,但也具有与我们开始使用的原始模型(多项式次数为 4 的模型)相似的测试 RMSE。这表明我们可以删除一些变量并仍然保持较低的 RMSE。这将我们带到下一个修改和引入BIC 上述模型选择的变量之间的交互项 。
来自BIC 模型的模型假设 也看起来更好。
接下来,我们将介绍交互项,并将尝试使用BIC 方法建议的预测变量来拟合模型 。
交互模型
log(Rings) ~ Height + Diameter + poly(Whole_weight, 4) + poly(Viscera\_weight, 4) + poly(Shucked\_weight,4) + poly(Shell\_weight, 4) + Sex + Diameter:poly(Shucked\_weight, 4) + poly(Shucked_weight, 4):Sex
RMSE 分数
方差分析 F 检验
anova
在拟合交互模型并使用最佳可加模型执行 F 检验后,我们看到该检验表明交互模型是一个显着模型,具有改进的调整 r 平方值。RMSE 也变低了 因为它更好地解释了可变性,我们现在将选择交互模型并尝试在交互模型上运行 AIC 和 BIC。
同时,我们会比较交互模型的多个度数,以计算和比较高阶项的 RMSE,并绘制训练和测试数据的均方根误差。
for(d in num_poly){ ablone\_int\_poly=test_itmodel(d) rmse=et\_lg\_rmseaaloneint_poly) trainrse_int\[d\]=rmse$train test\_mse\_it\[d\]=rme$tst } plot(tran\_rse\_n
- 我们可以看到,随着多项式次数的增加,RMSE 越来越低。尽管对于此分析而言,RMSE 的这种改进非常微小,我们可以忽略这种对模型简单性的改进。考虑到这一点,我们可以看到多项式次数为 4 的模型性能更好,因此我们将继续使用该模型。
交互模型上的 AIC 和 BIC
step(aalone_int, diretin="backar", trac=FALSE) step(aalone_nt, diection="bacward", =loce=ALE)
RMSE 分数 - BIC/AIC
kable(log\_rmse(abalone\_model\_int\_bic,paste("Interaction Model - Degree 4 - BIC")), digits = 4,format = 'markdown')
在我们的交互模型上运行 AIC 和 BIC 后,我们看到该模型选择了相同的模型。由于这是我们迄今为止看到的最好的模型之一,具有合理的复杂性,我们将把它视为我们比较的候选模型之一,作为本分析的最佳拟合模型。
谈到候选模型,在详尽的搜索过程中,我们已经看到,当我们使用所有预测变量时,模型附带了最低的 AIC。我们可以尝试构建一个模型,其中包含所有具有交互作用和多项式次数的预测变量,并与我们选择的第一个候选模型进行比较,看看它的表现如何。因此,让我们拟合一个包含所有预测变量的模型。
在最初的数据分析中,我们发现Sex 因子水平为 female 和 的分类变量的分布 male 极其相似。因此,我们决定将这两个因子水平合并为一个,并且总因子水平为 2 infant 和 non-infant。我们创建了新变量 Infant。这里 non-infant 代表 female 和 male 两者。我们也通过这种方法进行了分析(可以在本报告的附录部分找到)。
让我们看看 Infant 模型分析,看看这个模型如何与我们上面选择的模型相抗衡。
婴儿模型分析
我们讨论过针对此分析采用不同的方法。我们引入了一个新的分类预测变量名称 Infant。我们使用现有的Sex 具有 3 个因子水平的分类预测变量,并创建了一个具有 2 个因子水平的新分类预测变量 。我们这样做是因为我们从原始分类预测变量female 和 中 确定了 2 个因子水平上的相似分布 male。新的因素水平现在是 I (婴儿 = 雌性和雄性组合)和 NI (非婴儿)。
这个新分类的分析与上面的分析完全一样,所以我们将用最少的解释和细节快速进行这个分析。
summary(abae\_d\_nf)
均方根分数
rmse <- funcin(atual predicted) { sqrt(mean((actual - predicted ^ 2)) }
加性模型假设
model_assumption
Box-Cox 变换
boxcox(abon_adinf,lmda seq(-0.1, 0.1, by = 0.1))
具有对数因变量转换的附加婴儿模型
summary(abaln\_ad\_log)
均方根分数
kable(log\_mseabalone\_d\_lo\_f,"")
加性模型假设
model_assumptions
多项式模型
lm(log(Rings) ~ Diameter + Length + Height + poly(Whol\_weiht,3) + poly(Viscra\_weight,3) + polyShuckwegt,3) + poly(Selweight,3) + Infant, data=abaone_rain
均方根分数
kable(log\_rmse(abalnead\_poly
多项式模型假设
model_assumption
方差分析 F 检验
`````` anova
交互模型
lm(log(Rings) ~ Height + Diaeter + poly(Whole_weight, 4) + poly(Viscera\_weght, 4) + poly(Shucke\_weght,4) + poly(Shel\_weight, 4) + Infant + Diameter:poly(Shckedweight, 4) + poly(Shckd\_weight, 4):Infant, data=aboe_tain)
均方根分数
kable(log\_rms(abaoe\_int_infan,"
交互模型假设
model_assumption
方差分析 F 检验
anova
在这里,我们选择性能最佳的交互模型作为我们的候选模型之一。该模型具有较低的复杂性以及最低的 rmse。
我们在这里看到的是,与前两个完整模型相比,该模型在未见数据(测试数据)上的 rmse 最低。除此之外,这个模型也没有前两个复杂,这些特性使得这个模型成为我们选择的候选模型之一。
现在,由于我们有一些我们喜欢的候选模型,让我们将它们相互比较并寻找最佳模型。
候选模型
从上面的分析中,我们选择了多项式次数为 4 的交互模型,因为我们已经看到它具有最低的测试 rmse 之一,并且具有良好的模型假设。我们将把它作为第一选择的候选模型之一。该模型包含一些预测变量,而不是具有高度多重共线性的预测变量。这个模型是 abalone\_model\_int_bic。
另一个选定的模型是所有预测变量都具有相似较低 rmse 的交互模型。虽然这个模型将有更多的参数,因此是一个比早期模型更复杂的模型,但由于我们的目标是预测,我们不关心模型的复杂性。这个型号是 abalone\_int\_full
另一种候选模型将是具有 2 个因子水平的分类变量的交互模型。在开始或我们的分析中,我们看到该预测变量的分布在级别之间相似 male , female 因此我们决定引入一个新变量,该变量基本上有 2 个级别,婴儿和非婴儿,其中非婴儿 = 雄性和雌性。该模型也是多项式次数为4的交互模型 。这个模型是 abalone\_int\_infant。注:(附录部分增加了使用婴儿预测器的加法模型和相关分析)。使用分类预测变量和具有3 值和 2 值的因子水平进行分析的整个过程 是相同的。
候选模型的 RMSE 比较
- 候选模型1(abalone\_model\_int_bic)
`````` kable(log\_rmseabaone\_modlint_bic
- 候选模型2(abalone\_int\_\_candidate_full)
kable(log\_rmse(aalone\_int_l,pte
kable(log\_rmse(abalone\_nt_nan
- 候选模型 3 (abalone\_int\_infant)
- 从上面我们可以看到, 候选模型 3 (abalone\_int\_infant) 在所有三个模型中表现最好。
候选模型的模型假设
- 候选模型1(abalone\_model\_int_bic)
候选模型的模型假设
- 候选模型1(abalone\_model\_int_bic)
model\_assumptions(abalone\_model\_int\_bic,"Candidate model 1")
- 候选模型 2 (abalone\_int\_full)
`````` model_assumption
- 候选模型 3 (abalone\_int\_infant)
model_assumption
- 基于这些图,我们可以看到我们所有的候选模型都很好地满足了恒定方差和正态性假设。
- 接下来,我们将比较所有这些候选模型的预测和置信区间,并观察数据中的任何影响点。让我们看看它。
异常观察样本:高杠杆、离群点和影响点
我们将查看每个候选模型的训练数据集中存在的异常观察结果。首先我们将分别寻找高杠杆点、离群点和影响点,然后通过公共数据点得到具有高杠杆、离群点和影响力的数据点。
候选模型1(abalone\_model\_int_bic)
## \[1\] 16
- 我们看到有 16 个观察值是高杠杆、异常值和影响点。
候选模型2(abalone\_int\_full)
length(comon\_mdel\_2)
## \[1\] 15
- 在这个模型中,我们看到有 15 个观察值是高杠杆、异常值和有影响的点。
候选模型3(abalone\_int\_infant)
length(comon\_odl\_3)
## \[1\] 19
- 这个模型有 19 个这样的观察结果,它们是高杠杆、离群点和有影响力的点。
用加性多元线性回归、随机森林、弹性网络模型预测鲍鱼年龄和可视化(四)https://developer.aliyun.com/article/1485808