我想根据一些谐波对我的数据(时间序列)进行分位数回归。这是为了消除分位数的时间变异性。
谐波很简单:
nu = 2*np.pi/tau
h1 = np.sin(1* nu * x)
h2 = np.cos(1* nu * x)
h3 = np.sin(2* nu * x)
h4 = np.cos(2* nu * x)
最直接的公式是:
modqr = smf.quantreg('y ~ h1+h2+h3+h4', data)
由此modqr
我将模型拟合为:
res = modqr.fit(q=0.8)
res
将有 5 个系数、一个截距和 4 个谐波系数。
但是,我需要我的 y 是非负的,所以一个简单的转换可能是这样的:
modqr = smf.quantreg('y ~ np.exp(h1+h2+h3+h4)', data)
它是y
谐波和的指数的函数。
但是,如果我使用这个公式,结果将只有 2 个参数,当然,一个用于截距,一个用于术语np.exp(h1+h2+h3+h4)
,它被视为一个唯一的自变量。
问:有没有办法写这个公式来欺骗 quantreg 来评估我的谐波和的指数,因此仍然给我 5 个参数?
我认为我可以通过类似于family=Poisson()
当我拟合泊松回归时通过 kwargs 的方式传递我的自变量公式的转换,但我不确定如何。