Introduction à la vérification de l'efficacité - Raisonnement causal pour une comparaison correcte / Bases de l'économie quantitative Reproduire le code source en Python Faire.
J'ai déjà un exemple d'implémentation du grand ancêtre, mais je le laisserai comme mémo pour mon étude.
Cet article décrit les chapitres 4 et 5. Le code est également posté sur github. De plus, les noms de variables et le contenu du traitement sont essentiellement implémentés dans le livre.
CausalImpact
Ici, il est implémenté en utilisant pycausal impact.
Le résultat ne correspond pas à la version R, mais cela semble être dû au fait que la méthode gérée est différente de celle décrite dans le README.
Il semble que vous puissiez spécifier le modèle d'espace d'états avec l'argument model
, mais j'ai abandonné car il semble difficile de faire correspondre l'implémentation avec la version R.
CausalImpact
from causalimpact import CausalImpact
impact = CausalImpact(CI_data, pre_period, post_period, prior_level_sd=None)
impact.plot()
print(impact.summary())
RDD L'analyse de régression non linéaire peut être effectuée en apprenant le modèle suivant et en se référant à l'effet des variables d'intervention.
RDD
from sklearn.preprocessing import PolynomialFeatures
degree = 4
X = nonlinear_rdd_data[['history_log']]
X = X - cutpoint
X_poly = PolynomialFeatures(degree=degree, include_bias=False).fit_transform(X)
X_poly = pd.DataFrame(X_poly, columns=[f'X{i+1}' for i in range(X_poly.shape[1])])
nonlinear_rdd_data = pd.concat([nonlinear_rdd_data, X_poly], axis=1)
nonlinear_rdd_ord4 = ols('visit ~ treatment + X1 + X2 + X3 + X4 + treatment:X1 + treatment:X2 + treatment:X3 + treatment:X4', data=nonlinear_rdd_data).fit()
Recommended Posts