R数据分析:变量间的非线性关系,多项式,样条回归和可加模型

之前的文章中都是给大家写的变量间线性关系的做法 , 包括回归和广义线性回归 , 变量间的非线性关系其实是很常见的 , 今天给大家写写如何拟合论文中常见的非线性关系 。 包括多项式回归和样条回归
首先看一个二次项拟合的例子 , 我现在想探讨苹果内容物applecontent和苹果酸度cideracidity的关系 , 第一步应该是做出applecontent和cideracidity关系的散点图 , 假如是下图:
R数据分析:变量间的非线性关系,多项式,样条回归和可加模型
文章图片
那么我很直观地可以看出来 , 曲线(二次)对数据的拟合明显是好于线性拟合的 。
上面的只是一个2次项拟合的例子 , 我们其实经常会遇到有可能高次式会把数据拟合的更好 , 社科论文中其实也常常见到做高次回归的 , 常见的1次 , 2次 , 3次 , 4次项英文论文中的表达 , 曲线形状如下:
R数据分析:变量间的非线性关系,多项式,样条回归和可加模型
文章图片
R数据分析:变量间的非线性关系,多项式,样条回归和可加模型
文章图片

拟合出来的一般模型表达式如下:
R数据分析:变量间的非线性关系,多项式,样条回归和可加模型
文章图片
而且通常情况下 , 模型中所有的低次项都不应该被略去 。 就是我有了4次项 , 那么应该3 , 2 , 1次项都应该有 。
含有二次及以上的模型就叫多项式回归模型 。
之前在机器学习的文章中有给大家写过拟合 , 我们做多次项拟合的时候 , 按道理你可以将项的次数调得很高 , 总是可以近乎完美的拟合我们的复杂的非线性关系 ,, 这也并不是我们想看到的结果:
High-degreepolynomialsallowustocapturecomplicatednonlinearrelationshipsinthedatabutarethereforemorelikelytooverfitthetrainingset.
还有就是自变量和因变量之间的关系在自变量的不同取值范围也并非不变的 , 比如某个区间是线性的 , 某个区间是2次曲线 , 某个区间又成了3次曲线 。
上面两个问题处理方法之一就是
Asplineisapiecewisepolynomialfunction.Thismeansitsplitsthepredictorvariableintoregionsandfitsaseparatepolynomialwithineachregion,whichregionsconnecttoeachotherviaknots.
R数据分析:变量间的非线性关系,多项式,样条回归和可加模型
文章图片
上图便是用两个结将我们的曲线分成了3个样条 。
通过对关系曲线的划分 , 我们可以尽可能达到 。
我们在论文中还会有看到说 , 这个又是个啥呢?
就是我们正常做样条 , 有可能做出来就是这样的:虽然分段但是不连贯:
R数据分析:变量间的非线性关系,多项式,样条回归和可加模型
文章图片
这样的情况下结点处 , 不连贯的地方解释起来就会很困难了嘛 。
像这样:
R数据分析:变量间的非线性关系,多项式,样条回归和可加模型
文章图片
为了得到这么样的效果我们就会给样条加上限制 , 所以叫做限制性立方样条:
restrictionsneedtobeimposedsothatthesplineiscontinuous(i.e.,thereisnogapinthesplinecurve)and“smooth”ateachknot 。 Arestrictedcubicsplinehastheadditionalpropertythatthecurveislinearbeforethefirstknotandafterthelastknot.
样条数量的确定和结位置的选择也是有讲究的 , :
Thenumberofknotsusedinthesplineisdeterminedbytheuser,butinpracticewehavefoundthatgenerallyfiveorfewerknotsaresufficient.Thelocationoftheknotsalsoneedstobespecifiedbytheuser,butitiscommonthattheknotwiththesmallestvalueisrelativelyclosetothesmallestvalueofthevariablebeingmodelled(e.g.,the5thpercentile),whilethelargestknotisintheneighbourhoodofthelargestvalueofthevariablebeingmodelled(e.g.,the95thpercentile).
上面写的内容 , 无论是直接拟合 , 还是分段拟合 , 我们都是在拟合一个完整的曲线或直线方程 , 广义可加模型则是将自变量的单独模型相加 , 下图式子即为一般线性模型和可加模型: