怎样做网站 app教程,上海网站建设电话,商品推销,华升建设集团有限公司网站目录 Neutral Controls
Noise Inducing Control
Feature Selection: A Bias-Variance Trade-Off Neutral Controls
现在#xff0c;您可能已经对回归如何调整混杂变量有了一定的了解。如果您想知道干预 T 对 Y 的影响#xff0c;同时调整混杂变量 X#xff0c;您所要做的…目录 Neutral Controls
Noise Inducing Control
Feature Selection: A Bias-Variance Trade-Off Neutral Controls
现在您可能已经对回归如何调整混杂变量有了一定的了解。如果您想知道干预 T 对 Y 的影响同时调整混杂变量 X您所要做的就是在模型中加入 X。或者为了得到完全相同的结果您可以根据 X 预测 T得到残差并将其作为干预的去势版本。在 X 固定不变的情况下将 Y 与这些残差进行回归就能得到 T 与 Y 的关系。
但 X 中应包含哪些变量呢同样并不是因为增加变量就能调整变量所以你想在回归模型中包含所有变量。你不想包含共同效应对撞机或中介变量因为这些变量会引起选择偏差。但在回归中您还应该了解更多类型的控制因素。这些控制项乍看起来似乎无害但实际上却相当有害。这些控制被称为中性控制因为它们不会影响回归估计的偏差。但它们会对方差产生严重影响。正如您所看到的在回归中包含某些变量时需要权衡偏差和方差。例如请考虑下面的 DAG 您是否应该在模型中加入 credit_score2如果不包括它就会得到一直以来看到的相同结果。这个结果是无偏的因为您是根据信用评分 1_buckets 进行调整的。但是尽管您不需要这样做请看看如果您将 credit_score2 计算在内会发生什么。将下面的结果与您之前得到的不包含 credit_score2 的结果进行比较。有什么变化 formula default~credit_limitC(credit_score1_buckets)credit_score2model smf.ols(formula, datarisk_data_rnd).fit()model.summary().tables[1] 首先关于信贷限额的参数估计值变高了一些。但更重要的是标准误差减小了。这是因为 credit_score2 对结果 Y 有很好的预测作用它将有助于线性回归的去噪步骤。在 FWL 的最后一步由于包含了 credit_score2Y 的方差将减小对 T 进行回归将得到更精确的结果。
这是线性回归的一个非常有趣的特性。它表明线性回归不仅可以用来调整混杂因素还可以用来减少噪音。例如如果您的数据来自适当随机化的 A/B 测试您就不需要担心偏差问题。但您仍然可以使用回归作为降噪工具。只需包含对结果有高度预测性的变量并且不会引起选择偏差即可。
Noise Inducing Control
就像控制可以减少噪音一样它们也可以增加噪音。例如再次考虑条件随机实验的情况。但这次您感兴趣的是信用额度对消费的影响而不是对风险的影响。和上一个例子一样信用额度是随机分配的给定的是 credit_score1。但这次我们假设credit_score1 不是混杂因素。它是干预的原因但不是结果的原因。这个数据生成过程的因果图如下所示 这意味着您不需要对credit_score1 进行调整就能得到信用额度对消费的因果效应。单变量回归模型就可以了。在这里我保留了平方根函数以考虑干预反应函数的凹性 spend_data_rnd pd.read_csv(data/spend_data_rnd.csv)model smf.ols(spend ~ np.sqrt(credit_limit),dataspend_data_rnd).fit()model.summary().tables[1] 但是如果你确实包括了credit_score1_buckets会发生什么呢 model smf.ols(spend~np.sqrt(credit_limit)C(credit_score1_buckets),dataspend_data_rnd).fit()model.summary().tables[1]
您可以看到它增加了标准误差扩大了因果参数的置信区间。这是因为OLS 喜欢干预方差大的情况。但是如果控制了一个可以解释干预的协变量就会有效地降低干预的方差。
Feature Selection: A Bias-Variance Trade-Off
在现实中很难出现协变量导致干预而不导致结果的情况。最有可能出现的情况是有很多混杂因素同时导致 T 和 Y只是程度不同而已。在图 中X1 是 T 的强致因但 Y 的弱致因X3 是 Y 的强致因但 T 的弱致因X2 处于中间位置如每个箭头的粗细所示。
在这种情况下您很快就会陷入进退两难的境地。一方面如果您想摆脱所有偏差就必须包括所有协变量毕竟它们是需要调整的混杂因素。另一方面对干预原因进行调整会增加你的估计器的方差。
为了了解这一点让我们根据图 中的因果图来模拟数据。这里真实的 ATE 是 0.5。如果您试图在控制所有混杂因素的情况下估计这一效应估计值的标准误差会过高无法得出任何结论。 np.random.seed(123)n 100(x1, x2, x3) (np.random.normal(0, 1, n) for _ in range(3))t np.random.normal(10*x1 5*x2 x3)# ate 0.05y np.random.normal(0.05*t x1 5*x2 10*x3, 5)df pd.DataFrame(dict(yy, tt, x1x1, x2x2, x3x3))smf.ols(y~tx1x2x3, datadf).fit().summary().tables[1] 如果您知道其中一个混杂因素对干预的预测作用很强而对结果的预测作用很弱您可以选择将其从模型中剔除。在本例中这就是 X1。现在请注意这将使您的估计出现偏差。但是如果这也能显著降低方差也许这就是值得付出的代价 smf.ols(y~tx2x3, datadf).fit().summary().tables[1] 底线是在模型中包含调整的混杂因素越多因果关系估计值的偏差就越小。但是如果您包含的变量对干预结果的预测作用较弱但对治疗的预测作用较强那么这种偏差的减少将以方差的增加为代价。同理可证有时为了减少方差而接受一点偏差是值得的。此外您应该非常清楚并非所有的混杂因素都是相同的。当然因为 T 和 Y 的关系所有的混杂因素都是常见的。但如果它们对治疗的解释太多而对干预结果的解释几乎没有那么你真的应该考虑将其从调整中剔除。这适用于回归但也适用于其他调整策略如倾向得分加权。
遗憾的是混杂因素对干预的解释能力应该有多弱才能证明剔除它是合理的这在因果推理中仍是一个未决问题。不过这种偏差与方差的权衡还是值得了解的因为它有助于您理解和解释线性回归的情况。