我正在为WLS使用statsmodels库。我试图获取残差,但它返回nan的值列表。有谁知道这是什么问题。 x和y列的数据帧中的值是浮点型。
import pandas as pd
import statsmodels.formula.api as smf
res = smf.wls('y ~ x', data=df).fit()
#get residuals
print(OLSInfluence(res).resid_studentized_external)
我发现它可以在ols上运行,但是我需要wls。因此,下面的代码返回ols的残值
res = smf.ols('y ~ x', data=df, weights = df["weight"]).fit()
#get residuals
print(OLSInfluence(res).resid_studentized_external)
我尝试了下面的代码,这给了我正确的结果
import pandas as pd
import statsmodels.api as smsm.ols
wls_model = sm.WLS(list(df['y']), sm.add_constant(list(df['x'])), weights=df['weight'])
res = sm.OLS(wls_model.wendog, wls_model.wexog).fit()
#get residuals
print(OLSInfluence(res).resid_studentized_external)