【因果推断python】23_倾向得分1

作者 : admin 本文共3841个字,预计阅读时间需要10分钟 发布时间: 2024-06-8 共1人阅读

目录

成长背后的心理学

倾向得分


成长背后的心理学

积极心理学领域研究人类行为如何带来美好生活。您可以将其视为自助式书籍与统计的学术严谨性之间的交集。积极心理学的著名发现之一是成长心态。其核心思想是人们可以拥有固化或是成长两种心态。如果你有固化的心态,那么你相信能力是在出生时或幼儿时期就被赋予的。因此,智力是固定的,终生无法改变。如果你现在没有它,你就无法获得它。这种想法的推论是你不应该在你不擅长的领域浪费时间,因为你永远不会学会如何处理它们。另一方面,如果你有成长的心态,你相信智力是可以发展的。这样做的直接后果是你认为失败不是最终没有坚持下来的结果,而是学习过程的一部分。

我不想争论这些心态中哪一个是正确的(尽管它可能在中间的某个地方)。就我们的目的而言,这并不重要。重要的是,心理学家发现,拥有成长心态的人往往会在生活中做得更好。他们更有可能实现他们的目标。

我们精通因果推理,因此我们已经学会以怀疑的态度看待这些陈述。是成长型思维模式让人们取得更多成就吗?或者仅仅是因为成功而获得更多成就的人容易形成成长心态?谁先来,先有蛋还是先有鸡?在潜在的结果符号中,我们有理由相信这些陈述存在偏见。 Y0|T=1 可能比 Y0|T=0 大,这意味着那些拥有成长型思维模式的人即使拥有固定型思维模式也会取得更多成就。

为了解决问题,研究人员设计了 The National Study of Learning Mindset 这么一个调研项目。这个研究在美国公立高中进行随机抽样,从而试图发现成长心态的影响。其工作方式是这样的。学生通过在学校参与一个研讨会,得到成长心态这个概念的灌输。然后,研究者跟踪学生在大学期间的表现,以衡量他们在学业上的表现。衡量的结果被编译成标准化的成就分数。为了保护学生的隐私,本研究的真实数据不公开。但是,我们有一个与 Athey 和 Wager 提供的统计属性相同的模拟数据集,因此我们将改为使用这个数据来进行分析。

import warnings
warnings.filterwarnings('ignore')

import pandas as pd
import numpy as np
from matplotlib import style
from matplotlib import pyplot as plt
import seaborn as sns
import statsmodels.formula.api as smf
from causalinference import CausalModel

import graphviz as gr

%matplotlib inline

style.use("fivethirtyeight")
pd.set_option("display.max_columns", 6)

除了干预变量和结果变量外,该研究还记录了其他一些特征:

  • schoolid:学生所在学校的标识符;
  • success_expect:自我报告的对未来成功的期望,代表先验成就,在随机分配之前测量;
  • 种族:学生种族/民族的分类变量;
  • 性别:学生性别的分类变量;
  • frst_in_family:学生第一代身份的分类变量,即是否家庭中第一个上大学的人;
  • school_urbanicity:学校级别在城市化程度上的分类变量,即农村、郊区等;
  • school_mindset:学生固定心态的学校水平平均值,在随机分配之前报告,标准化;
  • school_achievement:学校成绩水平,由前 4 批学生的考试成绩和大学准备来衡量,标准化;
  • school_ethnic_minority:学校种族/少数民族组成,即标准化的黑人、拉丁裔或美洲原住民学生人数的百分比;
  • school_poverty:学校贫困集中度,即来自家庭收入低于联邦贫困线的学生的百分比,标准化;
  • school_size:学校所有四个年级的学生总数,标准化。
data = pd.read_csv("./data/learning_mindset.csv")
data.sample(5, random_state=5)

【因果推断python】23_倾向得分1插图 尽管这项研究是随机的,但这些数据似乎并非没有混淆。 如果我们查看其他特征,我们会注意到它们在干预和控制之间系统地变化。 造成这种情况的一个可能原因是干预变量是通过学生对研讨会的接受来衡量的。 因此,虽然参与的机会是随机的,但参与本身却不是。 我们正在处理一个不合规的案例。 这方面的一个证据是学生的成功期望如何与研讨会的参与度相关联。 自我报告的成功期望较高的学生更有可能参加成长心态研讨会。

data.groupby("success_expect")["intervention"].mean()

【因果推断python】23_倾向得分1插图(1)

不过,让我们看看 E[Y|T=1]−E[Y|T=0]的含义有何不同。 这将是一个比较有用的基准。

smf.ols("achievement_score ~ intervention", data=data).fit().summary().tables[1]

【因果推断python】23_倾向得分1插图(2)

简单地比较那些有和没有干预的人,我们可以看到,接受干预的人的成就得分平均比未经干预的人高 0.3185 (0.4723 – 0.1538)。但这是大还是小?我知道解释标准化结果可能具有挑战性,但请耐心等待。我认为值得一试,因为这不会是你最后一次遇到标准化分数。

标准化的结果变量意味着它是用标准差来衡量的。因此,经过处理的偏差比未经处理的偏差高 0.3185。这就是这个意思。至于这是小还是大,让我们记住一些关于正态分布的东西。我们知道它 95% 的质量在 2 个标准偏差之间,一条尾巴留下 2.5%,另一条尾巴留下 2.5%。这也意味着,如果某人比平均值高 2 个标准差,那么所有个体中有 97.5%(95% 加上左侧 2.5% 的尾部)低于该人。通过查看正常的 CDF,我们还知道其质量的大约 0.85% 低于 1 个标准偏差,而其质量的 70% 低于 0.5 个标准偏差。由于被干预组的平均标准化分数约为 0.5,这意味着他们在个人成就方面低于 70%。或者,换句话说,他们在取得更多成就的前 30% 中。这是图片中的样子。

plt.hist(data["achievement_score"], bins=20, alpha=0.3, label="All")
plt.hist(data.query("intervention==0")["achievement_score"], bins=20, alpha=0.3, color="C2")
plt.hist(data.query("intervention==1")["achievement_score"], bins=20, alpha=0.3, color="C3")
plt.vlines(-0.1538, 0, 300, label="Untreated", color="C2")
plt.vlines(-0.1538+0.4723, 0, 300, label="Treated", color="C3")
plt.legend();

【因果推断python】23_倾向得分1插图(3)

当然,我们仍然认为这个结果是有偏见的。干预和未干预之间的差异可能比这更小,因为我们认为偏差是积极的。我们已经看到,雄心勃勃的人更愿意参加研讨会,所以即使他们没有参加,他们可能也会取得更大的成就。为了控制这种偏差,我们可以使用回归或匹配,但现在是学习新技术的时候了。

倾向得分

倾向得分来自于意识到您不需要直接控制混杂因素 X 来实现条件独立 【因果推断python】23_倾向得分1插图(4)。相反,控制平衡分数 E[T|X]就足够了。这个平衡分数通常是干预的条件概率,P(T|X),也称为倾向评分P(x)。倾向得分使您不必以整个 X 为条件来实现干预潜在结果的独立性。以这个单一变量为条件就足够了,即倾向得分【因果推断python】23_倾向得分1插图(4)

有一个正式的证据来说明为什么会这样,但我们现在可以忘记它并以更直观的方式处理这个问题。倾向得分是接受干预的条件概率,对吗?因此,我们可以将其视为某种将 X 转换为干预 T 的函数。倾向得分在变量 X 和干预变量 T 之间形成了中间地带。如果我们在因果图中显示它,这就是它的样子喜欢。

g = gr.Digraph()
g.edge("T", "Y")
g.edge("X", "Y")
g.edge("X", "P(x)")
g.edge("P(x)", "T")
g

【因果推断python】23_倾向得分1插图(5)

如果我知道 P(x) 是什么,那么仅 X 就不会告诉我更多可以帮助我了解 T 是什么的信息。这意味着控制 P(x) 与直接控制 X 的方式相同。根据我们的心态计划来考虑它。干预和未干预最初是不可比较的,因为雄心勃勃的人更有可能接受干预并在生活中取得更多成就。但是,如果我选取 2 个个体,一个来自干预组,一个来自对照组,但接受干预的概率相同,它们是可比较的。想想看。如果他们接受干预的概率完全相同,那么他们中的一个接受干预而另一个没有接受干预的唯一原因是纯粹的机会。保持倾向得分不变可以使数据看起来和随机一样好。

现在我们有了直觉,让我们看看数学证明。我们想证明 【因果推断python】23_倾向得分1插图(4)等价于说

【因果推断python】23_倾向得分1插图(4)

这只是说,一旦我以 P(x) 为条件,X 就不能给我关于 T 的额外信息。这个证明很奇怪。我们将通过将上面的等式转换为一个简单的陈述来证明上面的等式是正确的。首先看一下左边的【因果推断python】23_倾向得分1插图(4)

【因果推断python】23_倾向得分1插图(4)

我们使用了 P(x) 只是 X 的函数这一事实,因此在我们以 X 本身为条件之后,以它为条件不会提供进一步的信息。然后,我们使用倾向得分 E[T|X]的定义。

对于右手边,我们将使用迭代期望定律 【因果推断python】23_倾向得分1插图(4)这个定律说我们可以通过查看A的值被B分解然后取平均值。

【因果推断python】23_倾向得分1插图(4)

第一个相等来自迭代期望定律。第二个来自我们在处理左侧时发现的内容。由于左边和右边都等于 P(x),所以这个等式很简单。

本站无任何商业行为
个人在线分享 » 【因果推断python】23_倾向得分1
E-->