Statsmodels Tweedie模型的ndim错误

时间:2019-04-16 10:06:51

标签: python statsmodels

我正在尝试使用Statsmodel运行tweedie模型,并不断出现以下错误:

  

AttributeError:“ Tweedie”对象没有属性“ ndim”

formula = 'pure_premium ~ atfault_model + channel_model_DIR + channel_model_IA + CLded_model + credit_model_52778 + \
        credit_model_c6 + package_model_Elite + package_model_LBO + package_model_Plus + package_model_Savers + \
        package_model_Savers_Plus + Q("ds_fp_paid_in_full_eligiable-has discount") + ds_fp_paid_in_full_ineligable + \
        Q("ds_pn_prior_insurance_eligable-has discount") + ds_pn_prior_insurance_ineligable + \
        Q("ds_ip_advanced_purchase_eligiable-has discount") + ds_ip_advanced_purchase_ineligable + \
        credit_model_c5 + ds_ad_affinity + ds_ak_alliance + \
        ds_ly_loyalty_discount + ds_mo_multipolicy + ds_pf_performance + majorvio_model + \
        (driver_age_model*marital_status_model) + minorvio_model + multi_unit_model + \
        RATING_CLASS_CODE_MODEL + unit_drv_exp_model +  Vintiles + safety_course_model + instructor_course_model + \
        (class_model*v_age_model) + (class_model*cc_model) + state_model'

lost_cost_model = smf.ols(formula = formula, data = coll_df
                          , family = sm.families.Tweedie(link = sm.families.links.log, var_power = 1.5))

每个变量都是分类变量,浮点数或整数。

我不确定是什么原因造成的。

1 个答案:

答案 0 :(得分:1)

ols没有一个家族,OLS只是线性回归。

您需要对公式接口使用广义线性模型,即GLMglmGLM在一个参数指数族中包括几个族,并且包括一系列链接函数。

其他几个模型等效于GLM,但基于不同的实现方式和其他选项。这些模型是针对特定的家庭链接组合编写的,无法更改它们。

OLS是具有高斯族和线性链接的GLM
Logit是具有二项式族,logit链接的GLM,仅用于二进制响应变量。
Proit是具有二项式族,probit链接且仅用于二进制响应变量的GLM。
Poisson是具有Poisson系列和日志链接的GLM
NegativeBinomial是具有NegativeBinomial系列和日志链接的GLM的更通用版本。 discrete.NegativeBinomial允许对隐式方差函数进行几个参数化,并结合平均参数作为MLE一起估计色散参数。