gpt4 book ai didi

python - 在Python中,如何拟合最小分位数b样条回归线?

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:47 29 4
gpt4 key购买 nike

您可以像这样找到最小分位数回归线:

import statsmodels.api as sm
import statsmodels.formula.api as smf
from statsmodels.regression.quantile_regression import QuantReg

mod = smf.quantreg('y ~ x', data)
res = mod.fit(q = 0.000001)

但是如果您想找到最小 B 样条回归拟合线怎么办?

最佳答案

如果您想要三次 B 样条,您可以这样做:

#!/usr/bin/env python3

import matplotlib.pyplot as plt
import numpy as np
import statsmodels.formula.api as smf


x = np.linspace(0, 2, 100)
y = np.sqrt(x) * np.sin(2 * np.pi * x) + np.random.random_sample(100)

mod = smf.quantreg('y ~ bs(x, df=9)', dict(x=x, y=y))
res = mod.fit(q=0.000001)
print(res.summary())

plt.plot(x, y, '.')
plt.plot(x, res.predict(), 'r')
plt.show()

您需要使用自由度(df 参数)或指定 knots 参数。根据您的数据,您可能希望对自然三次样条使用 cr() 或对循环三次样条使用 cc()。请参阅http://patsy.readthedocs.io/en/latest/spline-regression.html了解更多详情。

关于python - 在Python中,如何拟合最小分位数b样条回归线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45496830/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com