具有非线性变换的模型

机器算法验证 r 造型 数据转换 非线性回归 配件
2022-03-25 05:46:28

我不太了解这个概念,需要帮助。

我正在选择是使用线性模型还是在模型公式中应用非线性变换。为了进行诊断,我快速绘制了我的数据:

plotalldaily <- ggplot(amsd, aes(ImpressionsA, Leads.T)) + geom_point(color="orange")+geom_smooth()

在此处输入图像描述

从图中,我猜想我的 x 变量的三次多项式变换应该给我一个更好的模型拟合。我提到了这个:http ://www3.nd.edu/~rwilliam/stats2/l61.pdf 。在第 5 页,有关于三次项的多项式模型的解释。

所以我使用两个公式检查了模型的拟合——一个是非线性变换,另一个是简单的线性:

test1 <- lm(Leads.T~ImpressionsA, amsd)

test2 <- lm(Leads.T~I(ImpressionsA^3), amsd)

奇怪的是,线性关系给了我更好的模型拟合:更低的标准化误差、更高的 R 平方和更好的残差分布。

TEST 1 Residuals

在此处输入图像描述

TEST 2 Residuals

在此处输入图像描述

我不知道该怎么做。我应该适合哪种模型,我应该尝试哪些其他类型的转换?

1个回答

您没有使用三次表示的完整形式并且缺少两个术语(即无意将它们的参数限制为零):

Leads=β0+βImpAImpA+βImpA2ImpA2+βImpA3ImpA3+ε

根据Fitting polynomial model to data in R中当前投票最高的答案,您可以执行以下任一操作

lm(Leads ~ ImpA + I(ImpA^2) + I(ImpA^{3}))

(正如您在评论中指出的那样,但您缺少括号),或者:

lm(Leads ~ poly(ImpA, 3, raw=TRUE))