py-why / py-why/EconML

About DMLIV new release

Open
#388 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Jupyter Notebook
Stars
4.8k
Forks
827
PR merge metrics
No merged PRs in 30d

Description

Hi,

EDITED:
I had issues on store_final and inference.
However I tried:

cate = DMLIV(model_Y_X =model_Y_X(), model_T_X =model_T_X(), model_T_XZ =model_T_XZ(),
             model_final=dmliv_model_effect(), featurizer=dmliv_featurizer(),cv=6,
             n_splits= 20)

and seems to work with store_final = cache_values. Further, I saw from the documentation that it can be specified inference= 'bootstrap'` when fitting. Two main issues emerge:

  1. specifying inference= 'bootstrap' in cate.fit() takes forever to run. Also without specifying it, it takes a lot of time and the following error emerges:
    The final model has a nonzero intercept for at least one outcome; it will be subtracted, but consider fitting a model without an intercept if possible.
    I guess this is maybe due to the fact that the panel wrapper provided in previous issues does not exclude the first time dummy and individual dummy when performing:
n_products_per_group = 1
n_months = 47
n_groups = 11
n_products = n_groups * n_products_per_group
# p[i, j] = price of product i on month j
p = price
# p_minus[i, j] = average price of products other than i within the same group on month j
p_minus = med_price_atc
# q[i, j] = demand of product i on month j
q = demand
# X[i, j] = (one-hot-encoding of product i): si fa - 3 perchè sarebbe nprod-1+nmonth-1+group-1
X = np.zeros((n_products, n_months, n_products + n_months + n_groups - 2))

for g in np.arange(n_groups):
    for i in np.arange(n_products_per_group):
        for j in np.arange(n_months):
            index_i = n_products_per_group*g + i
            X[index_i, j, :(n_products)] = 1.0 * (np.arange(0, n_products) == (index_i))
            #INDICE GRUPPO
            X[index_i, j, (n_products):(n_products + n_groups - 1)] =  1.0 * (np.arange(1, n_groups) == g)
            #INDICE QUARTER
            X[index_i, j, (n_products + n_groups - 1):] = 1.0 * (np.arange(1, n_months) == j)

Could you please confirm that?

  1. is it possible to use inference='bootstrap' with cate.refit_final() ?

  2. I cannot import SubsetWrapper, where can I get it from using the latest release?

Thank you very much!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the shown DMLIV configuration, including cate.fit(), cate.refit_final(), bootstrap inference, and the attempted SubsetWrapper import. Check the latest release documentation and package exports for these entry points. Done means determining whether the reported runtime, intercept warning, refit behavior, and import failure are current reproducible bugs or release-specific usage issues.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.