我正在尝试将此功能移植到python中
> x <- 0:10
> y <- x**2
> lm(y ~ ns(x,df=2))
例如:
import numpy as np
import pandas as pd
import statsmodels.formula.api as smf
x = pd.DataFrame(np.arange(11))
y = x**2
formula="y ~ cr(x, df = 3)"
reg = smf.ols(formula,data=x).fit()
print(res.summary())
然而,在这个python公式中,我不能设置df〈3。有什么建议吗?我如何在python中拥有一个具有两个自由度的自然样条,并在patsy中将其作为一个R型方程使用?
1条答案
按热度按时间ee7vknir1#
这些显然产生了不同的基础:我不知道有什么不同,但下面的探索可能会有所帮助。
注意,
cr
模拟mgcv
的基本结构(参见here;除了Simon Wood书之外,还讨论了here),而ns()
是基于B样条构建的自然样条。我相信splines::bs()
和patsy.bs
会完美匹配,但不存在patsy.ns
。