我为每个温度数据设置了温度和不适指数值 . 当我在温度(x轴)和计算的不适指数值(y轴)之间绘制图形时,得到反转的U形曲线 . 我想从中做非线性回归并将其转换为PMML模型 . 如果我给出一定的温度,我的目的是获得预测的不适值 .
请找到以下数据集:
Temp <- c(0,5,10,6 ,9,13,15,16,20,21,24,26,29,30,32,34,36,38,40,43,44,45, 50,60)
Disc<-c(0.00,0.10,0.25,0.15,0.24,0.26,0.30,0.31,0.40,0.41,0.49,0.50,0.56, 0.80,0.90,1.00,1.00,1.00,0.80,0.50,0.40,0.20,0.15,0.00)
如何对此数据集进行非线性回归(可能使用 nls
??)?
2 回答
我确实看过这个,然后我认为它并不像我们大多数人首先想到的那样简单地使用
nls
.nls
适合参数模型,但是根据您的数据(散点图),很难提出合理的模型假设 . 我建议使用非参数平滑 .有许多散点图平滑方法,如内核平滑
ksmooth
,平滑样条smooth.spline
和LOESSloess
. 我更喜欢使用smooth.spline
,以下是我们可以用它做的事情:请阅读
?smooth.spline
了解它需要什么以及它返回什么 . 我们可以通过检查拟合的样条曲线如果您想在其他地方进行预测,请使用
predict
函数(predict.smooth.spline
) . 例如,如果我们想要预测Temp = 20
和Temp = 44
,我们可以使用建议不要在
range(Temp)
之外进行预测,因为它会受到潜在的不良外推效应的影响 .在采用非参数方法之前,我还尝试了基于回归样条和正交多项式的非线性回归,但它们并没有提供令人满意的结果 . 主要原因是平滑度没有受到惩罚 . 作为一个例子,我用
poly
展示了一些尝试:我们可以看到拟合曲线是人为的 .
我们可以按如下方式拟合多项式,但是由于我们有更高的度数,它会过度拟合数据: