Пример #1
0
def test_bool():
    assert get_bool({"v": True}, "v")
    assert get_bool({"v": True}, "a") is False
    with pytest.raises(TypeError, match=r".not a bool"):
        get_bool({"v": "True"}, "v")
    with pytest.raises(TypeError, match=r".not a bool"):
        get_bool({"v": 1}, "v")
    with pytest.raises(TypeError, match=r".not a bool"):
        get_bool({"v": 1.0}, "v")
Пример #2
0
def setup_covariance_estimator(
    cov_estimators: CovarianceManager,
    cov_type: str,
    y: NDArray,
    x: NDArray,
    params: NDArray,
    entity_ids: NDArray,
    time_ids: NDArray,
    *,
    debiased: bool = False,
    extra_df: int = 0,
    **cov_config: Any,
) -> Union[HomoskedasticCovariance]:
    estimator = cov_estimators[cov_type]
    kernel = get_string(cov_config, "kernel")
    bandwidth = get_float(cov_config, "bandwidth")
    group_debias = get_bool(cov_config, "group_debias")
    clusters = get_array_like(cov_config, "clusters")

    if estimator is HomoskedasticCovariance:
        return HomoskedasticCovariance(y,
                                       x,
                                       params,
                                       entity_ids,
                                       time_ids,
                                       debiased=debiased,
                                       extra_df=extra_df)
    elif estimator is HeteroskedasticCovariance:
        return HeteroskedasticCovariance(y,
                                         x,
                                         params,
                                         entity_ids,
                                         time_ids,
                                         debiased=debiased,
                                         extra_df=extra_df)
    elif estimator is ClusteredCovariance:
        return ClusteredCovariance(
            y,
            x,
            params,
            entity_ids,
            time_ids,
            debiased=debiased,
            extra_df=extra_df,
            clusters=clusters,
            group_debias=group_debias,
        )
    elif estimator is DriscollKraay:
        return DriscollKraay(
            y,
            x,
            params,
            entity_ids,
            time_ids,
            debiased=debiased,
            extra_df=extra_df,
            kernel=kernel,
            bandwidth=bandwidth,
        )
    else:  # ACCovariance:
        return ACCovariance(
            y,
            x,
            params,
            entity_ids,
            time_ids,
            debiased=debiased,
            extra_df=extra_df,
            kernel=kernel,
            bandwidth=bandwidth,
        )
Пример #3
0
def setup_covariance_estimator(
    cov_estimators: CovarianceManager,
    cov_type: str,
    y: Float64Array,
    x: Float64Array,
    params: Float64Array,
    entity_ids: IntArray,
    time_ids: IntArray,
    *,
    debiased: bool = False,
    extra_df: int = 0,
    **cov_config: Any,
) -> Union[HomoskedasticCovariance]:
    estimator = cov_estimators[cov_type]
    unknown_kwargs = [
        str(key) for key in cov_config
        if str(key) not in estimator.ALLOWED_KWARGS
    ]
    if unknown_kwargs:
        if estimator.ALLOWED_KWARGS:
            allowed = ", ".join(estimator.ALLOWED_KWARGS)
            kwarg_err = f"only supports the keyword arguments: {allowed}"
        else:
            kwarg_err = "does not support any keyword arguments"
        msg = (
            f"Covariance estimator {estimator.__name__} {kwarg_err}. Unknown keyword "
            f"arguments were passed to the estimator. The unknown keyword argument(s) "
            f"are: {', '.join(unknown_kwargs)} ")
        raise ValueError(msg)
    kernel = get_string(cov_config, "kernel")
    bandwidth = get_float(cov_config, "bandwidth")
    group_debias = get_bool(cov_config, "group_debias")
    clusters = get_array_like(cov_config, "clusters")

    if estimator is HomoskedasticCovariance:

        return HomoskedasticCovariance(y,
                                       x,
                                       params,
                                       entity_ids,
                                       time_ids,
                                       debiased=debiased,
                                       extra_df=extra_df)
    elif estimator is HeteroskedasticCovariance:
        return HeteroskedasticCovariance(y,
                                         x,
                                         params,
                                         entity_ids,
                                         time_ids,
                                         debiased=debiased,
                                         extra_df=extra_df)
    elif estimator is ClusteredCovariance:
        return ClusteredCovariance(
            y,
            x,
            params,
            entity_ids,
            time_ids,
            debiased=debiased,
            extra_df=extra_df,
            clusters=clusters,
            group_debias=group_debias,
        )
    elif estimator is DriscollKraay:
        return DriscollKraay(
            y,
            x,
            params,
            entity_ids,
            time_ids,
            debiased=debiased,
            extra_df=extra_df,
            kernel=kernel,
            bandwidth=bandwidth,
        )
    else:  # ACCovariance:
        return ACCovariance(
            y,
            x,
            params,
            entity_ids,
            time_ids,
            debiased=debiased,
            extra_df=extra_df,
            kernel=kernel,
            bandwidth=bandwidth,
        )