如何为数据列表找到最佳拟合分布函数?

6 投票
3 回答
20227 浏览
提问于 2025-04-16 16:17

我知道Python里面有很多概率函数,都是在random模块里。

我想知道,如果给我一个浮点数的列表,能不能找到一个最适合这个列表的分布方程?

我不太确定numpy能不能做到这一点,但这个功能可以和Excel里的“趋势”功能做个比较(虽然不完全一样,但有点像)。

那我该怎么做呢?

3 个回答

0

你可以试试在 statsmodels.tsa 里做时间序列分析。下面是一些代码供你参考:

from statsmodels.tsa.seasonal import seasonal_decompose
decomp = seasonal_decompose(df_train)

trend = decomp.trend
seasonal = decomp.seasonal
residual = decomp.resid

不过有一点需要注意。我发现季节性部分对异方差的处理不是很好——异方差指的是你的周期性函数的幅度随着时间的推移而增大。它会保持周期幅度不变(这就是季节性的一部分),然后你的残差(也就是实际值和预测值之间的差)会显示出周期性的影响。

1

还有一个叫做curve_fit的东西。

from scipy.optimize import curve_fit
13

看看 numpy.polyfit

numpy.polyfit(x, y, deg, rcond=None, full=False)

最小二乘法多项式拟合。

这个方法可以把一个多项式 p(x) = p[0] * x**deg + ... + p[deg](这里的 deg 是多项式的最高次数)拟合到一组点 (x, y) 上。它会返回一组系数 p,这些系数能让拟合的结果和实际数据之间的误差平方和最小。

撰写回答