2024-06-11 06:53:56 发布
网友
我一直在尝试在Python中的OLS/GLS回归中找到一种指定预定义系数的方法。我可以在R中使用offset来实现这一点,但是在Python中似乎没有类似的东西。在
offset
R当量:
model=lm(y~x+offset(0.2*z))
所以在这个例子中,x和z是我们的自变量,x由模型预测,但我们已经指定z的影响是0.2
使用statsmodels可以使用style similar to R在Python中执行回归分析。在那里,您将发现offset作为回归函数的中的一个参数。一个例子是GLM。在
对于这样的数据集:
import statsmodels.formula.api as smf import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(8, 3), columns=list('yxz')) df # y x z # 0 0.091761 -1.987569 -0.219672 # 1 0.357113 1.477894 -0.518270 # 2 -0.808494 -0.501757 0.915402 # 3 0.328751 -0.529760 0.513267 # 4 0.097078 0.968645 -0.702053 # 5 -0.327662 -0.392108 -1.463515 # 6 0.296120 0.261055 0.005113 # 7 -0.234587 -1.415371 -0.420645
你可以这样做:
您还可以通过手动执行相同的操作来运行健全性检查。可以创建如下偏移量:
offset = known*df['z'] y_offset = df['y']-offset df2 = pd.concat([pd.Series(y_diff), df['x']], axis = 1) df2.columns = ['y_diff', 'x'] res2 = smf.glm('y_offset ~ x', data = df2).fit() print(res2.summary()) # ============================================================================== # Dep. Variable: y_offset No. Observations: 8 # Model: GLM Df Residuals: 6 # . # . # ============================================================================== # coef std err z P>|z| [0.025 0.975] # # Intercept 0.0614 0.165 0.373 0.709 -0.261 0.384 # x 0.1478 0.148 0.995 0.320 -0.143 0.439 # ==============================================================================
使用statsmodels可以使用style similar to R在Python中执行回归分析。在那里,您将发现
offset
作为回归函数的中的一个参数。一个例子是GLM。在对于这样的数据集:
你可以这样做:
^{pr2}$您还可以通过手动执行相同的操作来运行健全性检查。可以创建如下偏移量:
相关问题 更多 >
编程相关推荐