首页 > 解决方案 > 运行 OLS 回归时使用来自 dask 的数据时出现 NotImplementedError

问题描述

我想做的其实很简单。我想通过使用来自 dask 的数据来运行 OLS 回归。没关系,如果我只是将数据安装到 dask 数据帧中或者我使用 pandas(但是当我使用 Pandas 时出现内存错误)。

# import modules
import statsmodels.formula.api as smf
import dask.dataframe as dd

df = dd.read_csv(input_file)
mod = smf.ols(formula='lnq ~ lnp + lnp:C(product_code)+ C(product_code)', data=df)
results = mod.fit(cov_type = 'cluster', cov_kwds={'groups': df['product_code']})
print(results.summary())

但是,我收到以下错误:

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "H:/yoox_3.py", line 11, in <module>
    mod = smf.ols(formula='lnq ~ lnp + lnp:C(product_code)+ C(product_code)', data=df)

  File "C:\ProgramData\Anaconda3\lib\site-packages\statsmodels\base\model.py", line 155, in from_formula
    missing=missing)

  File "C:\ProgramData\Anaconda3\lib\site-packages\statsmodels\formula\formulatools.py", line 68, in handle_formula_data
    NA_action=na_action)

  File "C:\ProgramData\Anaconda3\lib\site-packages\patsy\highlevel.py", line 310, in dmatrices
    NA_action, return_type)

  File "C:\ProgramData\Anaconda3\lib\site-packages\patsy\highlevel.py", line 165, in _do_highlevel_design
    NA_action)

  File "C:\ProgramData\Anaconda3\lib\site-packages\patsy\highlevel.py", line 70, in _try_incr_builders
    NA_action)

  File "C:\ProgramData\Anaconda3\lib\site-packages\patsy\build.py", line 696, in design_matrix_builders
    NA_action)

  File "C:\ProgramData\Anaconda3\lib\site-packages\patsy\build.py", line 448, in _examine_factor_types
    done = cat_sniffers[factor].sniff(value)

  File "C:\ProgramData\Anaconda3\lib\site-packages\patsy\categorical.py", line 204, in sniff
    for value in data:

  File "C:\ProgramData\Anaconda3\lib\site-packages\dask\dataframe\core.py", line 1703, in __getitem__
    raise NotImplementedError()

NotImplementedError

有任何想法吗?

标签: pythonstatsmodelsdask

解决方案


我不相信 statsmodels 提供对 dask 数据帧的支持


推荐阅读