Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中使用三次样条曲线对回归模型进行预测_Python_Spline_Cubic Spline_Patsy - Fatal编程技术网

在Python中使用三次样条曲线对回归模型进行预测

在Python中使用三次样条曲线对回归模型进行预测,python,spline,cubic-spline,patsy,Python,Spline,Cubic Spline,Patsy,我正在建立一个线性回归模型,其中一个输入变量是销售额。我希望使用某种形式的三次样条变换,而不是将每天的销售额作为线性输入(因为它往往在设定点之后结束,而在此之前的关系不是线性的)。我的问题是: 我相信我可以在我的训练数据集上为这个变量创建三次样条曲线(然后使用这些曲线构建线性模型),如下所示: transformed_x=dmatrix(“bs(数据,结=(2000,3000,4000),度=3,包括_intercept=False)”,{“数据”:df['Sales_Volume']},ret

我正在建立一个线性回归模型,其中一个输入变量是销售额。我希望使用某种形式的三次样条变换,而不是将每天的销售额作为线性输入(因为它往往在设定点之后结束,而在此之前的关系不是线性的)。我的问题是:

我相信我可以在我的训练数据集上为这个变量创建三次样条曲线(然后使用这些曲线构建线性模型),如下所示:

transformed_x=dmatrix(“bs(数据,结=(2000,3000,4000),度=3,包括_intercept=False)”,{“数据”:df['Sales_Volume']},return_type='dataframe')

但对于单个新数据点的预测,比如5000次销售,我如何使用这些样条曲线对拟合模型进行预测

如果我尝试为5000个销售额的单个数据点创建另一个transformed_x的转换版本,我会得到一个错误,即:

值错误:某些结值([2000 3000 4000])低于下限(5000)


如果我有一个大的新数据集来预测所有这些结的范围,它是有效的,但现在我不确定我是否能够确信在新数据集上进行相同的转换将产生正确的结果?

使用三次样条曲线进行回归听起来像是一种过度拟合的方法。我也有同样的问题。我发现管理它的唯一方法是将虚拟最小值和最大值添加到我的数据中(使所有结值都在范围内),并忽略虚拟值的预测结果。我想知道是否有更好的解决方案。添加虚拟最小值和最大值与我最后采用的方法相同。这似乎有效,但我也怀疑是否存在更好的解决方案。作为对前面评论的回应,创建三次样条的原因是为了让我能够在coxPH生存模型中使用它。使用三次样条进行回归听起来像是一种过度拟合的方法。我也有同样的问题。我发现管理它的唯一方法是将虚拟最小值和最大值添加到我的数据中(使所有结值都在范围内),并忽略虚拟值的预测结果。我想知道是否有更好的解决方案。添加虚拟最小值和最大值与我最后采用的方法相同。这似乎有效,但我也怀疑是否存在更好的解决方案。作为对前面评论的回应,创建三次样条曲线的原因是为了使我能够在coxPH生存模型中使用它。