精华内容
下载资源
问答
  • 效度是指研究结论的真实性程度和有效性程度,是衡量实验成败优劣的核心指标。内部效度与所得结果的唯一性有关,外部效度与结果的可推广性有关。 一、内部效度 定义:内部效度表示实验所提供的自变量与因变量之间...

    效度是指研究结论的真实性程度和有效性程度,是衡量实验成败优劣的核心指标。内部效度与所得结果的唯一性有关,外部效度与结果的可推广性有关。

    一、内部效度

    定义:内部效度表示实验所提供的自变量与因变量之间因果关系明确程度的一种指标。

    解释:如果研究结果有且只有一种解释,那么该研究的内部效度就高;如果研究结果不止一种解释时,该研究的内部效度就低。因此,研究过程中所有导致对结果有其它解释的因素,都是对内部效度的威胁。比如,变量X的变化总是一贯地、明显地伴有变量Y的变化,如能肯定变量X的变化是引起变量Y变化的直接原因,那么这个研究就具有高内部效度。相反,任何其它可能引起变量Y变化的因素都是对其内部效度的威胁。

    举例:

    一项研究要测量室温与问题解决能力之间的关系。假定结果为:温度上升时,被试成绩有明显下降。

    过程如下:将一组被试60人安排在20度的房间中,然后升温至30度,再升至35度,每一温度下都给出问题让被试解决,并测量他们的成绩。

    结果显示:温度上升时成绩就下降。实验结果很明确,但结果的解释却出现了不确定性,因为成绩的下降可能是温度上升引起的,也可能是被试在连续作业中产生的疲劳引起的,这两种解释使内部效度受到了威胁。

    而后研究者对实验进行了改进:在每种温度下使用一个独立的被试组,以期排除疲劳因素的影响。首先将第一组20人安排在2O度条件下参加实验,接着是第二组20人安排在30度条件下参加实验,最后的一组20人安排在35度条件下参加实验。结果仍显示:温度上升时成绩下降。至此,除温度外,被试的组间差异、各组间被试的个体差异也可能导致这一结果,这时也存在两种甚至两种以上的解释。尽管研究者可以宣称问题解决的能力与温度有关,但这种解释的内部效度却存在疑点,即内部效度不高。

    研究者想用温度和问题解决能力间可能存在的因果关系来解释假定结果,即温度升高引起问题解决能力下降。就内部效度而言,需要考虑除温度外,是否还有其它可能的因素引起被试问题解决能力的下降。初次实验中存在的不可控因素导致了解释的非唯一性,致使内部效度较低,改进后的实验虽有的放矢,但仍使研究潜入了额外变量,造成了变量混淆。

    由此可见,任何伴随自变量变化或实验处理出现的额外变量都可能导致内部效度的下降,如被试差异、实验者差异、环境差异、测量的顺序效应等。

    要提高研究的内部效度,就要加强对额外变量的控制,防止除自变量以外的其它任何因素成为混淆因子。

    二、外部效度

    定义:外部效度是指脱离研究情境以后,研究结果还能成立的程度。

    解释:每一项研究都是在特定的时问和地点进行的,有特定的被试、指导语、测量技术和实验程序。尽管研究本身具有特异性,但研究者通常期望研究结果不是特异的,可以推广到研究情境之外。

    每一项研究的目的都期望反映自变量与因变量问存在的真实关系,任何制约结果通用性的特征都是对外部效度的威胁。如果研究结果能同样适用于特定实验范围之外的其它时间、情境和人群,则认为此研究具有外部效度;相反,如果结果仅限定在约束条件内,则缺乏外部效度。会对外部效度造成损害的因素一般包括被试者特征、主试者特征、研究的操作程序和测量方法等因素。这些因素的特异性越强,越有可能导致研究情境与人们日常生活情境的差异性增大,使研究情境中观测到的被试行为区别于人们日常生活情境中的行为,也就制约了研究结论的可推广性。

    举例

    Strack.Martin& Stepper主持的一项研究表明:在牙齿间放一支笔(迫使其微笑)的人与在嘴唇间放一支笔(迫使其皱眉)的人相比,前者比后者更有可能认为卡通片有趣。这项研究是用伊利诺斯州大学生为被试的,但研究者认为这一结果可以推广到实验范围之外,因为此研究仅涉及到人类共通的生理指标,反映的是人的表情-情绪-认知之间的一致性程度。可以说,如果其他人在不同的时间和地点来接受测试,应该也会得到相同的结果,因此该实验结果的外部效度不存在多大异议。

    三、内部效度与外部效度的关系

    内部效度是外部效度的必要条件,但不是充分条件。

    内部效度低的研究结果就谈不上对其它情景的普遍意义;可是内部效度高的研究,其结果却不一定能够一般化到其它总体和背景中去。教育科学研究的重要意义是要发现教育活动的普遍规律,指导教育工作的开展。因此,提高研究结果的外部效度十分重要。

    一项研究的内部效度再高,如果其结果仅适应于特定的范围,特定的测量工具、特定研究程序和特定的研究条件等,那么,从获取一般知识和揭示普遍规律的角度来看,其价值、意义不大。因此,研究的外部效度与内部效度在重要性上毫不逊色。

    展开全文
  • MATLAB聚类有效性评价指标(外部)作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/更多内容,请看标签:MATLAB、聚类前提:数据的真实标签已知!1. 归一化互信息(Normalized Mutual information)定义 程序...

    MATLAB聚类有效性评价指标(外部)

    作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

    更多内容,请看标签:MATLAB、聚类

    前提:数据的真实标签已知!

    1. 归一化互信息(Normalized Mutual information)

    定义

    2c85db7989de2e56a8a943bd54fdadf5.png

    程序

    function MIhat = nmi(A, B)

    %NMI Normalized mutual information

    % A, B: 1*N;

    if length(A) ~= length(B)

    error('length( A ) must == length( B)');

    end

    N = length(A);

    A_id = unique(A);

    K_A = length(A_id);

    B_id = unique(B);

    K_B = length(B_id);

    % Mutual information

    A_occur = double (repmat( A, K_A, 1) == repmat( A_id', 1, N ));

    B_occur = double (repmat( B, K_B, 1) == repmat( B_id', 1, N ));

    AB_occur = A_occur * B_occur';

    P_A= sum(A_occur') / N;

    P_B = sum(B_occur') / N;

    P_AB = AB_occur / N;

    MImatrix = P_AB .* log(P_AB ./(P_A' * P_B)+eps);

    MI = sum(MImatrix(:));

    % Entropies

    H_A = -sum(P_A .* log(P_A + eps),2);

    H_B= -sum(P_B .* log(P_B + eps),2);

    %Normalized Mutual information

    MIhat = MI / sqrt(H_A*H_B);

    结果

    >> A = [1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3];

    >> B = [1 2 1 1 1 1 1 2 2 2 2 3 1 1 3 3 3];

    >> MIhat = nmi(A, B)

    MIhat =

    0.3646

    2. Rand统计量(Rand index)

    定义

    c08c123d3b6ece9c4d2865b7ed46f467.png

    程序

    function [AR,RI,MI,HI]=RandIndex(c1,c2)

    %RANDINDEX - calculates Rand Indices to compare two partitions

    % ARI=RANDINDEX(c1,c2), where c1,c2 are vectors listing the

    % class membership, returns the "Hubert & Arabie adjusted Rand index".

    % [AR,RI,MI,HI]=RANDINDEX(c1,c2) returns the adjusted Rand index,

    % the unadjusted Rand index, "Mirkin's" index and "Hubert's" index.

    if nargin < 2 || min(size(c1)) > 1 || min(size(c2)) > 1

    error('RandIndex: Requires two vector arguments')

    return

    end

    C=Contingency(c1,c2);%form contingency matrix

    n=sum(sum(C));

    nis=sum(sum(C,2).^2);%sum of squares of sums of rows

    njs=sum(sum(C,1).^2);%sum of squares of sums of columns

    t1=nchoosek(n,2);%total number of pairs of entities

    t2=sum(sum(C.^2));%sum over rows & columnns of nij^2

    t3=.5*(nis+njs);

    %Expected index (for adjustment)

    nc=(n*(n^2+1)-(n+1)*nis-(n+1)*njs+2*(nis*njs)/n)/(2*(n-1));

    A=t1+t2-t3;%no. agreements

    D= -t2+t3;%no. disagreements

    if t1==nc

    AR=0;%avoid division by zero; if k=1, define Rand = 0

    else

    AR=(A-nc)/(t1-nc);%adjusted Rand - Hubert & Arabie 1985

    end

    RI=A/t1;%Rand 1971%Probability of agreement

    MI=D/t1;%Mirkin 1970%p(disagreement)

    HI=(A-D)/t1;%Hubert 1977%p(agree)-p(disagree)

    function Cont=Contingency(Mem1,Mem2)

    if nargin < 2 || min(size(Mem1)) > 1 || min(size(Mem2)) > 1

    error('Contingency: Requires two vector arguments')

    return

    end

    Cont=zeros(max(Mem1),max(Mem2));

    for i = 1:length(Mem1)

    Cont(Mem1(i),Mem2(i))=Cont(Mem1(i),Mem2(i))+1;

    end

    程序中包含了四种聚类度量方法:Adjusted Rand index、Rand index、Mirkin index、Hubert index。

    结果

    >> A = [1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3];

    >> B = [1 2 1 1 1 1 1 2 2 2 2 3 1 1 3 3 3];

    >> [AR,RI,MI,HI]=RandIndex(A,B)

    AR =

    0.2429

    RI =

    0.6765

    MI =

    0.3235

    HI =

    0.3529

    3. 参考文献

    (simple) Tool for estimating the number of clusters

    Mutual information and Normalized Mutual information 互信息和标准化互信息

    Evaluation of clustering

    展开全文
  • 51单片机外部中断拓展(两个以上的外部中断)

    千次阅读 多人点赞 2021-05-14 14:17:03
    在很多单片机中,外部中断的个数都是有限的,而很多现实场景需要有多个外部中断同时进行,这时候单片机自带的外部中断端口可能就不够用了,那么,怎么解决这个问题呢,本文将会用最典型的51单片机为例,介绍两种较...

    前言

    为什么要拓展外部中断

    在很多单片机中,外部中断的个数都是有限的,而很多现实场景需要有多个外部中断同时进行,这时候单片机自带的外部中断端口可能就不够用了,那么,怎么解决这个问题呢,本文将会用最典型的51单片机为例,介绍两种较简单的拓展外部中断的方法。

    解决方案

    例题

    按下按键1执行程序a;按下按键2执行程序b,按下按键3执行程序c,按下按键4执行程序d; 注意:

    1. 每个按键具有独立性,例如按键2执行完后还能按下按键1,继续执行按键1的程序;
    2. 程序有独立性,例如:在执行按键1的程序过程中,按下其他按键,可以跳到其他按键的程序,不必等待按键1程序执行完

    第一种 外部中断的硬件拓展

    设计思路:外部中断的前提是在P3.2或者P3.3引脚收到外部中断请求。所以只要能让这里的中断源在触发的同时也能触发P3.2或者P3.3引脚,中断成立。

    实现代码: (没有特殊要求,正常写就行)

    #include <reg51.h>
    unsigned char key;
    sbit K1=P1^0;
    sbit K2=P1^1;
    sbit K3=P1^2;
    sbit K4=P1^3;
    
    void one(){}
    void two(){}
    void three(){}
    void four(){}
    
    void main()
    {
    	IT0=0;
    	EX0=1; 
    	EA=1;
    	while(1)
    	{
    		switch(key)
    		{
    			case 1:one();break;
    			case 2:two();break;
    			case 3:three();break;
    			case 4:four();break;
    		}
    	}
    }
    void Int0()	interrupt 0
    {
    	if(K1==0)
    	{
    		while(K1==0);
    		key=1;
    	}
    	if(K2==0)
    	{
    		while(K2==0);
    		key=2;
    	}
    	if(K3==0)
    	{
    		while(K3==0);
    		key=3;
    	}
    	if(K4==0)
    	{
    		while(K4==0);
    		key=4;
    	}
    }
    

    PDS仿真图:(这个是重点)

    在这里插入图片描述
    这里我是将P3.2引脚通过二极管与按键接在了一起,这样每次按下按键的同时,这条电路为通路,P3.2引脚被接地,中断信号有效,则中断成功。

    第二种 用定时器/计数器代替外部中断

    因为单片机的定时器/计数器本质上就是个加一计数器,当T0或者T1溢出的时候会请求中断。所以根据这个原理,先把定时器/计数器设置成计数模式,初始值为满值,把外部中断源输入到P3.4或者P3.5引脚,这样每输入一个下降沿,都将TF0/TF1置1,中断成立。

    实现代码:

    #include <reg51.h>
    unsigned char key;
    sbit K1=P3^2;
    sbit K2=P3^4;
    sbit K3=P3^3;
    sbit K4=P3^5;
    void one(){}
    void two(){}
    void three(){}
    void four(){}
    
    void main()
    {
    	TMOD=0xee;
    	TH0=0xff;
    	TL0=0xff;
    	TH1=0xff;
    	TL1=0xff;
    	TR0=1;
    	TR1=1;
    	ET0=1;
    	ET1=1;
    
    	IT0=0;
    	EX0=1;
    	IT1=0;
    	EX1=1;
    	 
    	EA=1;
    
    	while(1)
    	{
    		switch(key)
    		{
    			case 1:one();break;
    			case 2:two();break;
    			case 3:three();break;
    			case 4:four();break;
    		}
    	}
    }
    
    void Int0()	interrupt 0
    {
    	if(K1==0)
    	{
    		while(K1==0);
    		key=1;
    	}
    }  
    void t0() interrupt 1
    {
    	if(K2==0)
    	{
    		while(K2==0);
    		key=2;
    	}
    }
    
    void Int1()	interrupt 2
    {
    	if(K3==0)
    	{
    		while(K3==0);
    		key=3;
    	}
    }
    void t1() interrupt 3
    {
    	if(K4==0)
    	{
    		while(K4==0);
    		key=4;
    	}
    }
    
    

    PDS仿真图:(注意引脚)

    在这里插入图片描述
    这里我先将两个定时器/计数器设置为工作方式2并且储值设满(因为是八位的所以最大计数值= 2^8=256),当接在P3.4或者P3.5引脚有电平发生负跳变时(即按钮按下),对应计数器加1产生溢出,发出中断请求,同时,计数器恢复初值(满值)。这样,P3.4或者P3.5引脚每输入一个下降沿(即按钮按下),都将会让对应计数器发出中断请求。

    总结

    以上就是单片机外部中断拓展的两种思路,这两种方法比较容易理解也较容易实现,但是各有各的利弊。

    方法一的利弊

    方法一在代码上没有过多的要求,按照平时书写就能实现。
    缺点在于成品的连接,在一般的单片机学习板上并没有能实现这种方法的连接,所以只能用仿真来模拟。
    优点是程序简洁,占用内存小,而且没有中断源数量的限制,甚至可以只使用一个中断触发端口(P3.2/P3.3),其余的I/O端口都可以作为中断源。

    方法二的利弊

    缺点是程序繁琐,调用资源多,而且有中断源数量的限制,最多只能有“中断端口数+定时器/计数器端口数”个中断源。
    优点是接线简单明了,在一般的单片机学习板上就能实现,不用额外接线。

    后记
    本人是电竞专业大一在读,从高中开始自学c语言和单片机,第一次发文难免有不足之处,如果有哪里不对的地方还请各位大大不吝指教

    展开全文
  • 在 “共同支撑假设 (Common Support)”无法满足或很牵强的情况下,PSM 会系统排除缺乏对照组的样本,进而使得样本代表性变差,影响结果的外部有效性。 1.2 因果分析两个框架:Rubin potential Outcome / RCM 快手...

    文章目录


    1 一些因果推断涉及概念

    1.0 因果推断的几个境界

    《Theoretical Impediments to Machine Learning With Seven Sparks from the Causal Revolution》这篇论文说到了因果推断的三层。

    原论文:
    http://arxiv.org/abs/1801.04016

    在这里插入图片描述

    • 第一层是关联:纯粹的统计关系,X条件下Y会怎么样,也就是现在机器学习中常用的方式,尽可能通过深层次的网络去拟合X和Y的关系
      观察一个购买牙膏的顾客,那么他/她购买牙线的可能性更大;这种关联可以使用条件期望直接从观察到的数据推断得出
    • 第二层是干预:新的冲击下,两者的关联关系 ;这个层次的一个典型问题是:如果我们将价格翻倍会怎样?这些问题无法单独从销售数据中得到解答,因为它们涉及客户响应新的定价的行为的变化。
    • 第三层是反事实推断:相当于对结果来考虑原因,相当于如果我们希望Y变化,那么我们需要对X做出什么样的改变?(下面贴原文,其实蛮费解的。。)
      在这里插入图片描述

    个人观点:因果推断可以补充机器学习方法过程中没有解释清楚的问题,一般ML都是解释X-> Y,但是没有说明白 Y-> X。

    本节参考:
    论文学习笔记1——《机器学习的理论局限与因果革命的7大火花》(因果推理必将带来现有人工智能领域研究的再一次巨大突破)
    因果推断综述及基础方法介绍(一)

    1.1 内生性问题

    1.1.1 内生性解释

    参考:金融学里的内生性和外生性是什么意思?

    在这里插入图片描述经典的多元回归模型开始,下面给出4个基础假定。

    • 假定1:线性关系假定,被解释变量与解释变量存在线性随机函数关系。
    • 假定2:严格外生假定。
    • 假定3:球形扰动假定。
    • 假定4:无完全共线假定,解释变量之间无完全共线性。
      假定2 的文字表述是“当所有时期的解释变量X给定时,每一期的随机干扰项均值都为 0”,外生性假定不满足,这便产生了内生性问题。严格来说,若扰动项与解释变量不满足弱外生性假定,我们称模型存在内生性问题,与扰动项相关的解释变量被称为内生变量

    1.1.2 内生性问题有四种常见形式

    内生性!内生性!解决方法大集合

    • 1.遗漏解释变量X。研究者通常无法控制所有能影响被解释变量的变量,因此遗漏解释变量 (omitted variables) 是很常见的事情。如果遗漏的变量 X2对另一个解释变量 X1有影响,就会产生内生性问题。
      在这里插入图片描述

    • 2.X与Y互为因果,有时也称反向因果关系。

    • 3.选择偏差,选择偏差包括两种形式,即样本选择偏差 (sample selection bias) 和自选择偏差 (self-selection bias);样本选择偏差是指因样本选择的非随机性导致结论存在偏差,本质上也是一种遗漏变量问题 (Heckman,1979)。

    • 4.测量误差问题,当模型使用数据和真实数据存在误差,且满足 CEV 假定时,则会影响估计量的一致性,产生内生性问题。当只有一个解释变量时,CEV 假定下的测量误差将导致 OLS 估计量产生向 0 的偏误,也称为衰减偏误。当模型存在多个解释变量时,其中一个解释变量的测量误差导致 OLS 估计量发生方向不确定的偏移。

    1.1.3 内生性的解决方案

    1.1.3.1 自然实验法——随机实验

    所谓自然实验,就是发生了某些外部突发事件,使得研究对象仿佛被随机分成了实验组或控制组。这是我最喜欢的方法,只是自然实验需要寻找一个事件,并且这个事件只影响解释变量而不影响被解释变量。遇着这种事件是一种缘分,还要能识别出来,这对学者的眼光也是一种挑战。

    1.1.3.2 双重差分法Difference-in-Difference (DID)

    因果推断综述及基础方法介绍(一)
    在这里插入图片描述

    这张图讲得非常清楚,首先为什么我们不能用ATE = E(Yi|Ti=1)−E(Yi|Ti=0),举个 ,我们给一些人发权益,另一些人不发,我们怎么能知道权益带来的购买效果是怎么样的呢?简单的方法就是给发权益的人购买数加和,不发权益的人购买数加和,然后两个加和相减就好啦,但是如果这两部分人本来不发权益的时候购买数就不一样呢?

    那就减两次,从上图来说,我们把这两群人发权益之前t0的购买数相减,得到一个差值,相当于这两群人的固有差距,再把这两群人发权益之后t1的购买数相减,相当于这两群人被权益影响之后的差距,后面的差距减去前面的差距,就会得到权益对于差距有多少提升(降低),以此作为权益的effect。

    这个方法的问题在于有个比较强的要求是,趋势平行,也就是要求t0到t1之间,两群人的购买概率变化趋势是一样的(图中那个平行线),这其实是一个很强的假设,所以这个方法我个人来讲不算非常认可。

    1.1.3.3 工具变量法

    具体参考:因果推断笔记——工具变量、内生性以及DeepIV(六)

    1.1.3.4 Heckman 模型(解决:选择偏误 (sample selection bias))

    Heckman 两阶段模型主要是针对性解决样本选择偏误 (sample selection bias) 导致的内生性问题。Heckman 模型解决的样本选择问题,是由于被解释变量部分观测值的缺失/不可观测导致的。而处理效应模型主要针对核心解释变量为内生虚拟变量的情况,并且处理效应模型中的 值都是可观测的。

    1.1.3.5 其他一些方法

    内生性!内生性!解决方法大集合

    引入固定效应
    固定效应模型在面板数据建模中被广泛使用。顾名思义,固定效应是不随时间或个体变化的因素,它是难以观测的。模型中之所以要加入固定效应,是因为这些因素可能与解释变量相关,如果包含在扰动项中则会产生内生性问题。

    广义矩估计
    动态面板模型是解释变量中包含被解释变量滞后项的模型,可以理解成过去会在某种程度上影响未来的模型。当用差分去除模型中的固定效应时,方程中滞后项的差分便与扰动项的差分相关,产生内生性 (短面板中难以消除,所以也称短面板偏误)。GMM 估计方法通过引入滞后两期及以上的滞后项作为工具变量,并尽可能地满足所有矩条件,得到一个较好的估计量。实质上,GMM 也是工具变量法。

    断点回归
    断点回归的思路是研究某一断点处的政策效应,因为在特定断点处,实验组和对照组可以认为是本质上差异不大的。

    倾向得分匹配模型
    倾向得分匹配模型 (propensity score matching,PSM) 类似于多元线性回归。不过多元线性回归 (MR) 的无偏估计依赖于函数形式的正确设定,否则会出现函数形式误设 (functional form misspecification,FFM) 导致估计量有偏。PSM 模型通过匹配可以减少对函数形式的依赖,放松对多元回归模型的线性假设,进而缓解 FFM 问题。

    关于 PSM 方法有三个误区:

    一是 PSM 方法并没有从根本上解决由选择偏差或遗漏变量导致的内生性问题,更不能代替 Heckman 和 IV 等方法用于解决自选择、遗漏变量等问题;
    二是 PSM 不能被称为 “准实验”,也无法模拟实验条件;
    三是 PSM 的外部有效性问题。在 “共同支撑假设 (Common Support)”无法满足或很牵强的情况下,PSM 会系统排除缺乏对照组的样本,进而使得样本代表性变差,影响结果的外部有效性。

    1.2 因果分析两个框架:Rubin potential Outcome / RCM

    快手因果推断与实验设计
    在这里插入图片描述

    potential outcome model (虚拟事实模型 ),也叫做Rubin Causal Model(RCM),希望估计出每个unit或者整体平均意义下的potential outcome,进而得到干预效果treatment effect(eg. ITE/ATE).
    所以准确地估计出potential outcome是该框架的关键,由于混杂因子confounder的存在,观察到的数据不用直接用来近似potential outcome,需要有进一步的处理。

    核心思想:寻找合适的对照组
    在这里插入图片描述

    1.3 因果分析两个框架: Pearl causal Graph因果图

    快手因果推断与实验设计
    在这里插入图片描述

    有向图描述变量之间的因果关系。通过计算因果图中的条件分布,获得变量之间的因果关系。有向图指导我们使用这些条件分布来消除估计偏差,其核心也是估计检验分布、消除其他变量带来的偏差。
    在这里插入图片描述

    1.4 两个框架之间的联系

    在这里插入图片描述
    目的都是为了计算存在混淆变量时,干预变量时对结果的影响,都需要对因果关系作假设,以及控制带来偏差的变量;
    不同点在于:
    Rubin框架估计的因果效应主要是干预前后的期望差值
    而Pearl框架下,我们估计的是干预前后的分布差异
    Rubin框架解决的问题是因果效应的估计和统计推断
    Pearl框架更偏向于因果关系的识别。

    1.5 一些名词概念与解释

    通俗解释因果推理 causal inference

    • unit:因果推理中的原子研究对象,可以是实物,也可以是概念,可以是一个或者多个。在一些框架下,不同时刻的同一对象被认为是不同的units。
    • treatment:施加给unit的操作。也叫做干预、介入等。
    • variables:unit自带的一些属性,比如患者的年龄,性别,病史,血压等。在treatment过程中不受影响的variable叫做pre-treatment variables,比如患者的性别在多数情况下是不变的;对应的,收到影响的variable叫做post-treatment variables。多数情况下,variables指的是Pre-treatment variables。一些文献中也叫做context。
    • Confounders:会影响treatment选择和结果的一些变量。比如同一剂量的药剂在不同年龄的人群的结果可能不一样,或者说不同年龄的药剂选择会不同。有一些文献中也叫做协变量,covariate。
    • potential outcome:施加给对象的操作所能产生的所有可能产生的结果。包含observed outcome和反事实结果。
    • factual outcome:施加给对象的操作最终观测到的结果,记做Y.
    • 倾向分数propensity score:p(x) = P(Wi = 1|Xi = x),反映出样本x选择treatment的可能性。
    • 选择偏倚selection bias:由于Confounders的存在,treatment组合对照组的分布有可能不一致,因此导致出现偏差,这也使得推理更加困难。
    • pre-treatment variables : 不受干预影响的变量,也叫做背景变量,比如吃药问题的天气
    • post-treatment variables : 受干预影响的变量,比如吃药问题中的食欲

    1.9 因果推断与回归的差异?

    https://www.zhihu.com/question/266812683/answer/505659271

    回归是工具,意味着不管是因果推断还是预测,都可以使用回归;回归在因果推断中,只是拟合条件期望的工具。
    Rubin因果只有在非常强的假设前提下才能使用回归(外生性假设,又名CIA假设,又名unconfoundedness假设)

    1.0 额外:调节效应与中介效应

    中介效应、调节效应是什么?

    由这里出发我们再来看另外一对非常有意思的概念:调节效应与中介效应,这俩应该也是可以用因果链来描述的。
    在这里插入图片描述
    中介作用是研究X对Y的影响时,是否会先通过中介变量M,再去影响Y;即是否有X->M->Y这样的关系,如果存在此种关系,则说明具有中介效应。

    在这里插入图片描述

    调节作用是研究X对Y的影响时,是否会受到调节变量Z的干扰

    可参考:因果推理初探(6)——干预工具(下)

    在这里插入图片描述
    在这里插入图片描述


    2 pearl 因果图的一些定义

    在这里插入图片描述

    在这里插入图片描述
    我们通常通过因果图来进行用户行为链路的研究。Rubin流派常用来估计变量之间的一度关系,但当我们面对一些未知问题时,我们想了解的是有哪些变量真正影响我们关心的结果变量,以及变量之间的相互影响和用户行为链路是什么,有效过程指标是什么,这些时候我们用到因果图的方法。

    在生成因果图中,常遇到的限制是算法层面的,比如我们在优化目标函数的时候,需要遍历所有的因果图,是一个NP-hard问题,我们需要有效的算法得到想要的估计,市面上的算法大概分为两类:

    • Constraint-based Algorithms
    • Score-based Algorithms

    因果图的结构是预设的还是模型结构输出的?
    A:主要是模型输出的,但是在算法中我们可以限定哪些变量是父节点,哪些是子节点,如果最后结果与假设相悖,会发现假设的父节点下是没有任何子节点的。

    2.0 因果图结构的通俗解读

    参考:无监督的视觉常识特征学习——因果关系上的一点探索(CVPR 2020)

    在这里插入图片描述
    死亡与否完全是由感染新冠肺炎决定的,这些观测都是无偏差(无bias)的
    在这里插入图片描述
    虽然死亡与否确实不只由感染新冠肺炎决定,车祸也会导致死亡,但是车祸和肺炎完全没有因果关系,对“感染新冠肺炎”和“死亡”进行观测同样是无偏差(无bias),由于“车祸”和“感染肺炎”是相互独立的,小伙伴们可以很简单的证明出来:
    在这里插入图片描述
    RCT(随机对照试验)的时候,我们完全随机的从人群中选取样本(注意这里是真正的完全随机!)。这就相当于我们人为的切断了混杂因子confounder到感染新冠肺炎之间的连接,因为我们的样本选择是完全随机的,和任何因素都无关。这也是为什么我们说,在随机样本足够的条件下,RCT可以抵消掉混杂因子的影响。注意,此时因果图就变为了:
    在这里插入图片描述
    小伙伴发现了,这里RCT之后的因果图,不就是图2中的第二行那个结构嘛,也就是说RCT最大的作用就是让“年龄”和“感染新冠肺炎”独立。
    这时,因为因果图发生了改变,贝叶斯公式就已经悄然发生了变化,我们把因果图变化前后的贝叶斯公式分别写一下:
    在这里插入图片描述
    注意第二个等号使用了在新的因果图下“年龄”和“感染新冠肺炎”相互独立这一条件。

    2.1 有向无环图(Directed Acyclic Graph) - DAG

    有向图中 “父亲” 和“后代”的概念:有向箭头上游的变量是“父亲”,下游的变量是“后代”。
    在这里插入图片描述

    图模型也并不是 Judea Pearl 发明的。但是,早期将图模型作为因果推断的工具,成果并不深刻,大家也不太清楚仅仅凭一个图,怎么能讲清楚因果关系。教育、心理和社会学中常用的结构方程模型(structural equation model: SEM),就是早期的尝试;甚至可以说 SEM 是因果图的先驱。

    2.2 do 算子——在干预的前提下的概率

    DAG 中的箭头,似乎表示了某种 “因果关系”。但是,要在 DAG 上引入“因果” 的概念,则需要引进 do 算子,do 的意思可以理解成 “干预” (intervention)。
    没有“干预” 的概念,很多时候没有办法谈因果关系。
    根据 do 算子,便可以定义因果作用。比如二值的变量 Z Z Z 对于 Y Y Y 的平均因果作用定义为:
    在这里插入图片描述

    https://www.zhihu.com/question/283897078/answer/756671333
    p(y|do(x))实际上就是一个普通的条件分布,但它不是基于 p(x,z,y,…)的,而是pdo(X=x)(x,z,y,…)。这里的pdo(X=x)是我们如果实际进行干预的话会观察到的数据的联合分布。所以p(y|do(x))是从随机对照试验或A/B测试收集到的数据中学习的条件分布,其中x由实验者控制。

    2.3 “后门准则”(backdoor criterion)和“前门准则”(frontdoor criterion)

    因果推断简介之五:因果图 (Causal Diagram)

    如果整个 DAG 的结构已知且所有的变量都可观测,那么我们可以根据上面 do 算子的公式算出任意变量之间的因果作用。但是,在绝大多数的实际问题中,我们既不知道整个 DAG 的结构,也不能将所有的变量观测到。因此,仅仅有上面的公式是不够的。
    “后门准则”(backdoor criterion)和“前门准则”(frontdoor criterion):

    这两个准则的意义在于:

    • (1)某些研究中,即使 DAG 中的某些变量不可观测,我们依然可以从观测数据中估计出某些因果作用;
    • (2)这两个准则有助于我们鉴别“混杂变量”和设计观察性研究。
      在这里插入图片描述

    简单来看一下:

    • 后门准则:Z可以同时影响or产生 X/Y,那么Z就相当于X/Y因果关系的后门(不影响X-> Y之间,影响两者),Z也是X/Y的混杂因子
    • 前门准则:Z影响X-> Y的前门路径(直接影响X->Y)

    检验得到的结论:

    • 是否有混杂变量在X-> Y之间?
    • 一些变量Z是影响X -> Y的前门路径(Z在X/Y之间,X一定通过Z影响Y),还是后门路径(Z同时影响X/Y)

    2.4 后门、前门准则四则例子

    再来看四个例子:
    在这里插入图片描述

    根据后门准则, X 阻断了 T 到 Y 的后门路径,因此,根据 X 做调整可以得到 T 对 Y 的因果作用。
    如果实际问题符合图(a),那么我们需要用调整后的估计量。
    在这里插入图片描述

    X 是 T 的 “后代” 且是 Y 的“父亲”。很多地方称,此时 X 处于 T 到 Y 的因果路径上(中介效应)。
    直观的看,如果忽略 X,那么 T 和 Y 之间的相关性就是 T 对 Y 的因果作用,因为 T 和 Y之间的后门路径被空集阻断,我们无须调整。
    如果此时我们用 X 进行调整,那么得到的是 T 到 Y 的“直接作用”。

    在这里插入图片描述

    T 和 Y 之间的相关性就是因果作用。但是,复杂性在于 X 和 Y 之间有一个共同的但是不可观测的原因 U。
    此时,不调整的相关性,是一个因果关系的度量。
    但是,如果我们用 X 进行调整,那么给定 X 后,T 和 U 相关,T 和 Y 之间的后门路径被打通,我们得到的估计量不再具有因果的含义。
    这种现象发生的原因是,(T,U,X)(T,U,X) 之间形成了一个 V 结构:虽然 T 和 U 之间是独立的,但是给定 X 之后,T 和 U 不再独立。

    在这里插入图片描述

    这个图常常被 Judea Pearl 用来批评 Donald Rubin,因为它存在一个有趣的 M 结构。
    在这个图中,由于 V 结构的存在,T 和 Y之间的后门路径被空集阻断,因此 T 和 Y 之间的相关性就是因果性。
    但是由于 M 结构的存在,当我们用 X 进行调整的时候, U 和 W 之间打开了一条 “通路”(它们不再独立),因此 T 和 Y 之间的后门路径被打通,此时 T 和 Y之间的相关性不再具有因果的含义。

    2.5 后门调整

    参考:因果推断:因果表征学习的CV落地
    在这里插入图片描述

    之前的【2.4】有提到,Z在X-> Y的后门路径上,除非你用RCT的随机实验,可以打断Z->X的影响;
    那么一般情况下都会利用do算子进行干预,进行【后门调整】,可以看到这里从do(X) -> (X,z)
    这里借鉴一个形象的例子:
    来看看,不做干预下,“人”和“马桶”的图像会偏少,因此 P(Person|Toilet) 的概率会偏小。
    在这里插入图片描述

    加了干预后 P(Y|do(X)):遍历 Z 集合中所有的物体,计算干预后的条件概率,可以看到 P(Y|do(X))>P(Y|X),直觉上在“人”和“马桶”观测数据不足的情况下,因果干预后的条件概率有相应正向调整。
    在这里插入图片描述

    2.6 因果图用DAG来表示的一些问题

    • 复杂系统以及时序的结构中,不一定适用
    • 更为严重的问题是,实际工作中,我们很难得到一个完整的 DAG,用于阐述变量之间的因果关系或者数据生成机制,使得 DAG 的应用受到的巨大的阻碍。

    3 Potential Outcome / RCM 中的一些方法

    快手因果推断与实验设计
    涉及到计量中政策评估【DID, 合成控制, 匹配, RDD四种方法比较, 适用范围和特征】有四种主要的方法:

    在这里插入图片描述

    3.0 处理效应(Treatment Effect,TE)

    3.0.1 个体效应:ITE

    参考:因果推断学习3 — 随机试验
    在这里插入图片描述
    当吃药不头疼了,不吃药头还疼,那我们可能会认为吃药和解决头疼存在因果效应;
    当吃不吃药头都疼,则我们会认为吃药和解决头疼不存在因果效应
    因果效应计算方法。记do(T=1)为施加试验(吃药),do(T=0)为不施加试验(不吃药);Y表达结果(是否头疼)。
    因果效应可以计算为 在这里插入图片描述
    ,代表施加与不施加试验结果的差异。这是针对某个人i的因果效应,称为ITE (Individual treatment effect)

    3.0.2 TE / ATE

    Y1(x),Y0(x)表示个体i接受治疗的个体因果作用,所以个体的TE 处理效应

    TE = Y1(x) - Y0(x)
    

    但是对于单个个体来说,要么接受treatment,要么不接受,Y1(x),Y0(x)中必然会缺失一个,但在T做随机化的前提下,我们可以识别总体的ATE
    在这里插入图片描述
    这是因为
    在这里插入图片描述
    最后一个等式表明ATE可以由观测的数据估计出来。其中第一个等式用到了期望算子的线性性(非线性的算子导出的因果度量很难被识别!);
    第二个式子用到了随机化,即 :

    T⊥(Y(1), Y(0))(⊥表示独立性),
    非常重要 ,也就是T 与 Y需要相互独立,无内生性
    后面的方法都是围绕他展开

    但是实际应用中,随机化实验是最“贵”的因果推断方式,有时候我们无法控制“treatment”,
    更多时候成本实在太高,我们只能拨一小波人进行实验,所以这种“黄金标准”并不算实用。

    3.0.3 ATT实验组处理效应 / ATC对照组处理效应

    在「干预组/实验组」层面,干预效果被称为「干预组的平均干预效果」(Average Treatment Effect on the Treated group, ATT),定义为:
    在这里插入图片描述
    类似地,对照组的平均干预效果被称为 「ATC」。

    3.0.4 异质处理效应 (Heterogenous treatment effects,HTE/CATE)

    简单理解就是按某些规律进行分组之后的ATE,也就是“条件平均处理效应”(Conditional Average Treatment Effect,CATE)

    一种异质处理效应的研究方法是将研究数据进行分组 (如按照男、女性别,或者区域进行划分) ,比较平均处理效果在子组内的效应差异。

    每个子组的平均处理效应被称为“条件平均处理效应”(Conditional Average Treatment Effect,CATE) ,也就是说,每个子组的平均处理效应被称为条件平均处理效应,以子组内的分类方式为条件。

    3.1 方法一:双重差分 - difference-in-difference -DID

    3.1.1 DID介绍

    本节参考:
    因果推断综述及基础方法介绍(一)
    双重差分法(DID)的原理与实际应用

    【3.0章节】 中随机实验有提到,ATE = E(Yi|Ti=1)−E(Yi|Ti=0)的前提是T⊥(Y(1),Y(0)),
    也就是干预与Y是独立的、无因果、非内生
    那如果不符合这个条件应该怎么办?
    有一个比较老且基础的方法是双重差分法,也就是差分两次。

    另外的特点:

    • 在一定程度上减轻了选择偏差和外因带来的影响;
    • 不同于往常基于时序数据的分析,双重差分利用的是面板数据

    在这里插入图片描述
    或者:
    在这里插入图片描述

    这张图讲得非常清楚,首先为什么我们不能用ATE = E(Yi|Ti=1)−E(Yi|Ti=0),举个 ,我们给一些人发权益,另一些人不发,我们怎么能知道权益带来的购买效果是怎么样的呢?简单的方法就是给发权益的人购买数加和,不发权益的人购买数加和,然后两个加和相减就好啦,但是如果这两部分人本来不发权益的时候购买数就不一样呢?

    那就减两次,从上图来说:

    • **第一次差分:**我们把这两群人发权益之前t0的购买数相减,得到一个差值,相当于这两群人的固有差距
    • **第二次差分:**再把这两群人发权益之后t1的购买数相减,相当于这两群人被权益影响之后的差距

    后面的差距减去前面的差距,就会得到权益对于差距有多少提升(降低),以此作为权益的effect。

    这个方法的问题在于有个比较强的假定是,趋势平行,也就是要求t0到t1之间,两群人的购买概率变化趋势是一样的(图中那个平行线),这其实是一个很强的假设,所以这个方法我个人来讲不算非常认可。

    3.1.2 使用时需要满足的假设

    双重差分法的计算过程很简单,即实验组干预前后的均值的差减去对照组干预前后均值的差。
    但若希望得到的结果是准确的,对应的样本数据需要满足下面三个假设:

    • 线性关系假设:该假设来自于线性回归,认为因变量(Treatment)与结果变量存在线性关系
    • 个体处理稳定性假设(The Stable Unit Treatment Value Assumption,SUTVA)
      个体的outcome是取决于个体干预变量treatment的一个函数,该假设由两部分组成
      • 一致性(Consistency):个体接受处理后所导致的潜在结果是唯一的。
        例:我养狗了会变开心,无论是什么狗、不存在因为狗是黑的就不开心
      • 互不干预(No interference):个体接受处理后导致的潜在结果不受其他个体处理的影
        例:我在淘宝上领到了红包之后会更愿意买东西,不因为我同事也领了红包就意愿降低了
    • 平行趋势假设(Parallel Trend Assumption)
      定义:实验组和对照组在没有干预的情况下,结果的趋势是一样的。即在不干预的情况下,前后两个时间点实验组与对照组的差值一致。

    3.1.3 DID + PSM 差异与联用

    3.1.3.1 DID / PSM差异

    DID, PSM 及 DID+PSM 有何差异?DID 要假定不可观测效应随时间变化趋势相同?

    • DID: difference in difference, 双重差分;
    • PSM: propensity score matching, 倾向评分匹配;
    • DID(PS)M: difference in difference (propensity score) matching, 双重差分(倾向评分)匹配

    一个比较简单的差异对比版本:

    • DID是比较四个点,Treated before, treated after; control before, control after。
    • Matching是比较两个点:Treated, control
    • DID+Matching是用matching的方法来确定treated和control。

    在这里插入图片描述
    适用范围:

    • **DID:**适合面板数据,从全部效应中剔除“时间趋势”(姑且勉强称之为时间趋势,即未经政策影响的自然变化,其影响因素是不可观测的,或者说不能穷尽)的影响,此时我们需要一个控制组去衡量这一“时间趋势”,数据前提要求为面板数据。
    • PSM: PSM更加适用于截面数据,或者将面板数据作为截面数据来处理;PSM实际上寻找与处理组尽可能相似的控制组样本,当协变量维度比较多的时候,借助probit或logit模型(分组虚拟变量对协变量进行回归),将多维的协变量信息通过倾向得分(概率拟合值,scalar)来刻画。
    • PSM+DID: DID的一个最重要的前提是平行趋势假设,如果不满足,控制组就不能作为实验组的反事实结果。此时,可以借助PSM的方法,构造一个与实验组满足平行趋势的控制组,接下来按照DID的方法去做就可以了。此时,有同学可能会问,PSM已经构造了一个控制组样本组合,为什么还要多此一举,再加一个DID上去。
      PSM需要控制尽可能多的控制变量,以使分组变量完全随机,而对于有一些变量,一方面不可观测,另一方面又不随时间而改变,此时就可以使用PSM+DID的方法。

    3.1.3.2 DID+PSM连用

    双重差分法(DID)的原理与实际应用

    • 目的:从干预的人群和未干预的人群里找到两批人符合平行趋势假设
    • 业务理解:在这两个人群里找个两批同质的人(该场景下的同质:在treatment维度上有近似表现的- 人)
    • 例子:在探究领取红包对用户购买行为影响的场景下,对用户领取红包的倾向做预测(打分),认为分数相近的用户是matching、即同质的。圈选出分数相同的用户之后再验证平行趋势假设。

    3.1.3 快手使用DID模型

    同一对象的同一干预treatment,前、后两个时间段的差异,

    关键假设是,政策干扰前存在平行趋势,且实验干扰效应不随时间变化。
    双重差分可以用来消除那些对后期可能存在干扰因素,得到实验效果估计。

    在这里插入图片描述
    快手的升级方案:分不同类型进行分项评估
    用户的行为会发生变化,且不同用户的行为是不一致的,当不同表现用户都在实验组,传统的DID模型估计实验效应会产生偏差。
    按照用户的状态是否更改分为不同类型,对不同类型用户分别做DID估计,再进行加权平均,得到修正后DID实验效果值。
    在这里插入图片描述

    3.2 方法二:合成控制SCM——Synthetic Control Method

    当treatment施加到一个群体或者地区上时,很难找到单一的对照组,这种时候采用合成控制方法构造虚拟对照组进行比较,原理是构造一个虚拟的对照组,通过treatment前的数据上学习的权重,拟合实验组在实验开始前的数据,模拟实验组用户在没有接受实验情况下的结果,构造合成控制组,实验开始后,评估实验组和合成控制组之间的差异。

    参考:合成控制法什么鬼? 因果推断的前沿方法指南

    听到最多的例子是,加州于1989年实施的禁烟法案, 但愿看看该法案是否下降了烟草的消费量。由于这个禁烟法案只在加州范围内有政策效果,所以传统的DID方法就没有那么好用了,由于这里的实验组就只有一个成员——加州。ui
    对于这种问题,咱们迫切想要获得因果关系,所以合成控制法就出现了而且获得快速推广。

    SCM的基本思想是,使用其余38个未实施禁烟法案的州的加权平均来合成一个“加州”,经过对比真实的加州和合成的加州在1989年禁烟法案以后香烟消费量的差别来识别出政策效应。code

    在合成控制法中,有一些关键变量比较重要,所以值得咱们提出来单独说一说。如下就是咱们使用一个吸烟数据集,就加州1989年实施的禁烟法案对该州香烟消费量(销售量)的影响所作的合成控制法

    合成的一种方法是利用,其他38个洲,1970-1988数据构造回归,
    然后进行预测,预测接下来1988-2000的情况与实际的情况进行对比

    在这里插入图片描述

    3.3 断点回归模型

    参考:怎么用通俗的语言解释断点回归?它与DID的区别是什么

    该模型的主要思想在于,寻找一个参考变量,该变量的某临界值能够决定哪个个体能够成为政策干预对象即处理组,哪个个体不能成为政策干预对象即控制组,将控制组的结果变量作为处理组的反事实状态。

    断点回归可分为精确断点回归和模糊断点回归。

    精确断点回归假设干预分配完全由参考变量决定,而模糊断点回归则假设干预状态不是完全由参考变量决定,还与其他未观测到的因素有关。

    精确断点回归与其他几种政策评估的不同之处在于,其不满足共同区间假设,即当参考变量大于临界值时,所有个体都进入处理组,而当参考变量小于临界值时,所有个体都进入控制组。

    断点回归模型的主要缺点在于,若个体能够精确控制是否接受政策的参考变量,那么临界点附近的干预状态的分配就接近完全随机实验的结果,断点回归的估计将无效。

    此外,断点回归模型和完全随机实验一样,内部有效性较强,而外部有效性较弱,即只能估计断点处的平均因果效应,不能简单推广到其他位置。

    3.4 Rubin Causal Model(RCM)与倾向性得分

    3.4.0 从matching -> 倾向性得分

    随机化试验那部分我们讲到了:

    T⊥(Y(1), Y(0))(⊥表示独立性)

    这个公式其实包含了较强的可忽略性(Ignorability)假定,但我们之前说了,这种方式比较“贵”,所以通常我们会希望收集足够多的X,使得:
    在这里插入图片描述

    3.4.0.1 精准匹配

    Conditional Independence Assumption (CIA)假定:在这里插入图片描述
    那么这个方法实际操作起来通常就是称之为Exact matching(精准匹配),也就是对于每一个 T=1的用户,我们从 T=0的分组里找一个变量 一模一样的用户,在这个X的条件下,满足T与Y相互独立,此时直接比较两组用户观察结果 的差异就可以得到结论,但是,“匹配用户的变量 完全相等” 这个要求过于严格,不实用。

    3.4.0.2 倾向性得分 / 倾向评分匹配 由来

    由此衍生了用倾向性得分进行匹配的方式Propensity Score Matching,简称 PSM:
    在 PSM 方法中,我们首先对每一个用户计算一个倾向性得分(propensity score),定义为 e(x)=Pr(T=1 | X=x) ,这里面的假定由T⊥(Y(1),Y(0)) | X变为了T⊥(Y(1),Y(0)) | e(x),接着我们根据倾向性得分对于用户进行匹配。

    但是这种方式也是有其局限性的,就是在于treatment group和control group的用户需要足够齐全且维度较高,
    实际应用的时候我们会发现本身两个group的用户有较明显的差异,想要找到倾向性得分相近程度达到要求的用户非常难。
    相关的方法非常多:

    PSS:用倾向性得分来对用户进行分组,称为 subclassification
    PSW:用倾向性得分来对用户进行加权抽样,称为 Inverse Propensity Score Weighting (IPSW) ,权重为
    在这里插入图片描述

    3.4.0.3 精准匹配 -> 倾向评分匹配

    之前提到,
    在这里插入图片描述
    要想估计出ATE且符合CIA假定,就需要严苛的筛选,譬如,想要了解大学生绩点高低与奖学金的比较,需要:绩点3.7的,发了奖金的人 - 没法奖金的人
    条件比较严苛的话,可能找不到,那么就放宽成为区间:绩点 3.5-3.7,发了奖金的人 - 没法奖金的人

    具体可参考:DID, PSM 及 DID+PSM 有何差异?DID 要假定不可观测效应随时间变化趋势相同?

    3.4.1 基于倾向性评分法的因果推断

    倾向性评分法由Rosenbaum和Rubin于1983年首次提出,是控制混淆变量的常用方法,其基本原理是将多个混淆变量的影响用一个综合的倾向性评分来表示,从而降低了混淆变量的维度。
    在这里插入图片描述

    倾向性评分是给定混淆变量W的条件下,个体接受Treatment的概率估计,即 P(T=1|W)。
    需要以Treatment为因变量,混淆变量Confounders为自变量,建立回归模型(如Logistic回归)来估计每个研究对象接受Treatment的可能性。

    回归:T~W
    在这里插入图片描述

    3.4.2 因果效应估计三种方法

    需要择一选择:

    • 倾向性评分匹配法(Propensity Score Matching,PSM)
      PSM将处理组和对照组中倾向性评分接近的样本进行匹配后得到匹配群体,再在匹配群体中计算因果效应。最常用的匹配方法是最近邻匹配法(nearest neighbor matching),对于每一个处理组的样本,从对照组选取与其倾向评分最接近的所有样本,并从中随机抽取一个或多个作为匹配对象,未匹配上的样本则舍去。
    • 倾向性评分分层法(Propensity Score Stratification,PSS)
      PSS将所有样本按照倾向性评分大小分为若干层(通常分为5-10层),此时层内组间混淆变量的分布可以认为是均衡的,当层内有足够样本量时,可以直接对单个层进行分析,也可以对各层效应进行加权平均。当两组的倾向性评分分布偏离较大时,可能有的层中只有对照组个体,而有的层只有试验组的个体,这些层不参与评估因果效应。PSS的关键问题是分层数和权重的设定。可通过比较层内组间倾向性评分的均衡性来检验所选定的层数是否合理,权重一般由各层样本占总样本量的比例来确定。
    • 倾向性评分加权法(Propensity Score Weighting,PSW)
      PSW在计算得出倾向性评分的基础上,通过倾向性评分值赋予每个样本一个相应的权重进行加权,使得处理组和对照组中倾向性评分分布一致,从而达到消除混淆变量影响的目的。

    3.4.3 倾向性评分法的均衡性检验

    倾向性评分法要求匹配后样本的所有混淆变量在处理组和对照组达到均衡,否则后续分析会有偏差,因此需要对匹配之后的样本进行均衡性检验。
    在这里插入图片描述

    3.4.4 反驳

    反驳(Refute)使用不同的数据干预方式进行检验,以验证倾向性评分法得出的因果效应的有效性。反驳的基本原理是,对原数据进行某种干预之后,对新的数据重新进行因果效应的估计。
    理论上,如果处理变量(Treatment)和结果变量(Outcome)之间确实存在因果效应,那么这种因果关系是不会随着环境或者数据的变化而变化的,即新的因果效应估计值与原估计值相差不大。
    反驳中进行数据干预的方式有:

    • 安慰剂数据法:用安慰剂数据(Placebo)代替真实的处理变量,其中Placebo为随机生成的变量或者对原处理变量进行不放回随机抽样产生的变量。
    • 添加随机混淆变量法:增加一个随机生成的混淆变量。
    • 子集数据法:随机删除一部分数据,新的数据为原数据的一个随机子集。

    3.4.5 倾向性得分案例

    具体可见:
    因果推断笔记——python 倾向性匹配PSM实现示例(三)

    3.5 工具变量估计 Instrumental Variables Estimation

    具体参考:因果推断笔记——工具变量、内生性以及DeepIV(六)


    5 因果推断与机器学习

    快手因果推断与实验设计

    如何用data来计算具体的casual effect的数值,这个过程就是Estimation。那么在机器学习方法中,也有一些可以用在Estimation环节的。

    5.1 因果推断与机器学习的异同

    在这里插入图片描述
    因果分析的语言,核心在于因果关系的识别,即合理的估计处理前和处理后现有条件期望的差异,也可以是一种处理缺失数据的问题,在因果推断上我们非常关心的是如何准确的估计结果以及结果的方差。而在机器学习中,我们使用准确度来衡量机器学习模型的好坏,其目标是在训练集上估计一个条件期望,使得测试集上MSE最小。
    机器学习可以通过cross-validation(模型参数)的方法去数据驱动的选择一个最佳模型形式,与传统计量经济学方法相比不需要复杂的假设,例如function form的假设,从这种意义上机器学习能够更准确的预测。
    但是在因果推断问题上,机器学习的局限性在于,无论用什么机器学习方法,因果识别的条件都不能被放松;同时在机器学习模型通常使用的正则化和过拟合处理,会带来有偏估计,因此我们需要消除这种估计的偏差;
    在统计推断上,机器学习的局限性在于,有些模型不能直接计算方差,并且有时即使可以计算,方差的收敛速度也未必能够达到预期,所以针对这些问题,下面介绍了几种方法。

    5.2 方法一:双重机器学习 Double Machine Learning (DML)

    DML则是在进行HTE (Heterogenous Treatment Effect)研究中,通过残差估计矩(服从Neyman orthogonality),即使W估计有偏,依旧可以得到无偏ATE估计!
    在这里插入图片描述

    因果推断会遇到混淆变量的问题,比如想要去分析直播推荐多样性对用户活跃度的影响,但是这些都和用户历史相关。传统计量经济学方法可以解决这个问题,但是依赖很多强假设,强假设下,得到的估计不一定合理,双重机器学习为这个问题提供了解决的思路。

    双重机器学习假设所有混淆变量都可以被观测,其正则化过程能够达到高维变量选择的目的,与Frisch-Waugh-Lovell定理相似,模型通过正交化解决正则化带来的偏差。
    除了上面所描述的,还有一些问题待解决,比如在ML模型下存在偏差和估计有效性的问题,这个时候可以通过Sample Splitting 和 Cross Fitting的方式来解决,具体做法是我们把数据分成一个训练集和估计集,在训练集上我们分别使用机器学习来拟合影响,在估计集上我们根据拟合得到的函数来做残差的估计,通过这种方法,可以对偏差进行修正。在偏差修正的基础上,我们可以对整个估计方法去构造一个moment condition,得到置信区间的推断,从而得到一个有良好统计的估计。

    5.3 方法二:因果随机森林模型

    PSM评分法的树模型 升级版
    可以回顾【3.4章节】
    随机森林就相当于训练一棵预测treatment的树,然后在树的叶子结点做因果推断,如果大家仔细看了前面的倾向性得分的话,会发现其实这个思路其实就相当于propensity matching的树版,可能跟subclassification更相似。
    整体思路:树进行分组,然后对于对于每个叶子内部,将E(处理组) - E(对照组)

    在这里插入图片描述

    我们通常探究策略对于不同用户异质性的影响,即哪些用户更容易被影响以及影响有多大,传统做法是多维分析,但是效率低,容易犯错。这时可以结合机器学习的方法,这里选择了决策树方法,因为决策树的分桶特性能够帮助解决异质性问题,相对于传统方法因果树做了两点改动:

    把数据分成训练集和估计集,一部分训练集去构造树,另一部分估计集去估计因果效应和方差;
    在树的分区方式上,使用各个节点的方差对目标函数加以修正。
    通常情况下,我们结合实验来做分析。比如在实验中,通过因果树得到因果效应的分布,然后挑选出来那些实验效果显著的用户,去分析他们的特征,以及找到敏感用户,帮助我们了解策略的影响,作出下一步迭代。

    5.4 方法三:Meta-Learner for Uplift Modeling

    在这里插入图片描述
    Uplift-modeling是另一种定位敏感人群的方法,和因果树的步骤有差别。核心是利用实验数据对实验结果变量建模,利用得到的模型估计条件平均处理效果。Uplift-modeling具有不同的学习方式,主要有S-Learner 、T-Learner和X-learner。和因果树相比,Meta-Learner是一种间接建模方式,实现快但一些场景下误差较大。

    5.4.1 Conditional Outcome Modeling (COM) -> S-Learner

    在这里插入图片描述
    COM有很多其他名字,比如S-learner等,S代表singe model,表达对于treatment和control组使用的是同一个model。

    存在问题:当数据纬度变大时,容易产生估计偏差 (estimate biased towards 0!),这个很直观,假设数据有100维,T只是其中1维,模型训练时容易忽略这个维度,导致计算出来ATE -> 0,进而引出Grouped COM。

    5.4.2 Grouped COM (GCOM)——T-Learner

    GCOM引入为了解决COM中estimate biased towards to 0的问题,为了加强模型对T的权重,我们在估计 u 时,分别对treatment组和control组使用不同的模型,其他流程与COM一样,也常叫T-Learner。
    在这里插入图片描述

    存在问题:每个estimator只使用部分数据,尤其当样本不足或者treatment、control样本量差别较大时,模型variance较大(对数据利用效率低),我们需要提升数据利用率!进而引出接下来2个model TARNet和X-Learner。

    5.4.3 X-Learner

    充分利用数据估计每个group的estimator,对于数据倾斜很严重的估计有很好的弥补作用。
    在这里插入图片描述

    CIA假设往往不能满足,应该如何降低影响?
    A:现在很多的包括双重机器学习等方法都有很多的扩展,比如当有些合适的工具变量会有些合适的拓展的工具方法,另外可以通过一些matching的方法去构造些满足条件的样本,但是这个东西也不是完全精确,很多时候需要靠人为的逻辑判断。

    其他也可参考:
    智能营销增益(Uplift Modeling)模型——模型介绍(一)
    因果推断—原理与方法(深度好文)


    6 快手的因果推断与实验设计

    快手因果推断与实验设计
    在这里插入图片描述

    6.1 快手:双边实验设计

    在这里插入图片描述
    在双边实验中,同时进行了主播侧和观众侧的分流,主播侧一部分是上了挂件,观众侧一部分能看到一部分看不到,双边实验的优点是可以同时检测两端的效果,同时可以帮助检测到组间的转移和溢出。在了解到组间溢出和干扰下,通过双边实验我们可以更加准确的测算处理效应,在挂件场景下,我们认为N3是代表完全没有处理过的效果,Y代表处理后的结果,N3和Y进行差分,计算产品功能推全后的影响,而且,双边实验能够更好的帮助我们归因。

    在这里插入图片描述

    然而双边实验只能描述简单的组间溢出,在个体和个体之间存在干扰的复杂情况下,双边实验是无法帮助我们判断实验效果,例如直播PK暴击时刻这种情况下,我们通过时间片轮转实验解决,即在一定实验对象上进行实验组策略和对照组策略的反复切换。

    6.2 快手:时间片轮转实验

    在这里插入图片描述
    时间片轮转的核心在于:

    • 时间片的选择

    • 实验总周期选择

    • 随机切换时间点是什么样子的
      当时间粒度约粗糙,时间上的干扰造成的偏差会越小,但是方差会越大,影响实验的检验效果,针对这个问题,采取的方案是最优设计。
      在这里插入图片描述
      最优设计的核心假设是:

    • Outcome有一个绝对上界

    • 用户无法知晓下一个时间是否是实验组

    • 如果时间片之间存在干扰,干扰的影响是固定且有限的

    当我们不知道一个时间片实验时间节点如何设计时,通常采取的步骤是,预估一个时间,通过实验确定carry over的阶数下限是多少,根据阶数下限,找到最优切换时间点,再进行一次实验,通过实验组和对照组的选择来进行因果效应的估计。其缺点在于,实验周期长,没有办法观测到HTE (heterogeneous treatment estimation)。

    6.3 快手:城市实验 + 合成控制

    在这里插入图片描述
    当treatment施加到一个群体或者地区上时,很难找到单一的对照组,这种时候采用合成控制方法构造虚拟对照组进行比较,原理是构造一个虚拟的对照组,通过treatment前的数据上学习的权重,拟合实验组在实验开始前的数据,模拟实验组用户在没有接受实验情况下的结果,构造合成控制组,实验开始后,评估实验组和合成控制组之间的差异。


    如何评价微软(Microsoft)推出的 Python 因果推理库 DoWhy?

    因果推断简介之五:因果图 (Causal Diagram)
    快手因果推断与实验设计

    展开全文
  • 区域间路由汇总和外部路由汇总 汇总可以有效的减少路由器压力。 区域间汇总时,是在第一个ABR上在需要汇总的区域的出接口上汇总的。 区域外部路由汇总时需要在外部路由信息进入OSPF区域时提前汇总。 OSPF更新机制 ...
  • //TCON寄存器中,IT0是外部中断0 的触发方式控制位,ITO = 1,下降沿有效触发 EX0 = 1; //IE寄存器中,外部中断0允许位置1 EA = 1; //IE寄存器中,CPU中断允许总开关 } void main() { Int0Init();//初始化函数 ...
  • (2)设置“入校时间”字段的有效性规则为2005年之前的时间(不含2005年);(3)删除表结构中的“照片”字段;(4)删除表中学号为“000003”和“000011”的两条记录;(5)设置“年龄”字段的默认值为23;(6...
  • 静态随机存取存储器(Static Random Assess Memory,SRAM),其特性与其stm32芯片内存一致,属于易失存储器,当掉电之后没存储器中的内容便会丢失。 TM32控制器芯片内部有一定大小的FLASH及SRAM,简单讲FLASH用来...
  • 如何保证access_token长期有效

    千次阅读 2021-02-26 08:56:52
    为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台开放了许多接口,包括自定义菜单接口、...access_token的有效期是7200秒(两小时),在有效期内,可以一直使用,只有当access_token过期时,...
  • 目录一、实验要求二、分析(一)数码管(二...2、掌握外部中断的中断初始化和中断服务函数的程序编写方法,编程实现实现数码管上显示外部中断计数。 【实验内容】 1、用Proteus绘制硬件原理图,并设置元件参数; 2、用
  • 即变量的可见。 一个变量的作用域可以是代码块作用域,函数作用域,函数原型作用域和文件作用域。 函数作用域:标识符在整个函数中都有效。仅用于goto语句的标签,这意味着即使一个标签首次出现在函数的内层块中...
  • FSMC——扩展外部的SRAM

    千次阅读 2021-09-03 22:09:53
    SRAM:静态随机存取存储器,易失存储器,读写速度非常快,适合做内存 SRAM的引脚图:A是地址线、IO是数据线,就是通过地址去访问数据 整个芯片的内部架构 芯片是通过地址译码器来寻址,找到要访问的存储器矩阵的...
  • linux查看服务端口号 #netstat - atulnp会显示所有端口和所有...#firewall-cmd --zone=public --add-port=80/tcp --permanent #作用域是public,开放tcp协议的80端口,一直有效 #firewall-cmd --zone=public --add-p
  • 业务中台数据一致方案

    千次阅读 多人点赞 2021-10-10 16:40:21
    但是随着应用规模的扩大,原本在单体应用中不是问题的问题,在微服务架构中可能就是比较严重的问题,本文所要探讨的服务之间的数据一致便是其中最具代表的问题。本文将结合常见的电商下单场景来说明业务中台数据...
  • 在创建一个新的Java项目时,创建了以下目录和文件:./projectname.iml./projectname.ipr./projectname.iws./src/我想配置Intellij IDEA,...在intellij思想中添加外部jar的步骤:从工具栏中单击File。项目结构(在Wi...
  • (2.0分)【单选题】当52单片机应用系统需要扩展外部存储器或其他接口芯片时,( )可作为高8位地址总线使用。 (2.0分)【单选题】程序是以( )形式存放在程序存储器中的。 (2.0分)【单选题】52单片机的4个并行I/O端口作为...
  • 许多人担心手机的安全。尽管这似乎是常识,但许多人没有意识到,当能够使用Linux安全电话来保护自己的在线隐私时,利用技术便是如此容易。 最佳Linux保密电话 为旅途做好准备,系好安全带。为了保护您的隐私.
  • 聚类效果评估、内部指标(Jaccard系数、FM指数、Rand指数)、外部指标(DB指数、Dunn指数)、轮廓系数(Silhouette Coefficient) 目录 聚类效果评估、内部指标...聚类性能度量,亦称为聚类“有效性指标”(validity
  • "有效性规则"框中直接输入">=17 And <=55";大于等于18;"有效性规则"框中直接输入">=18"2.设置"聘用时间"字段的默认值为:系统当前日期;默认值"框中直接输入"=date()";3.删除表中职工编号为"000024"和...
  • 【判断题】在进行人力资源供给预测时不需要考虑外部劳动力市场的总体供给情况 【多选题】以下那些指令可以获得角色的大小? 【单选题】在GIS中组织属性数据,应用较多的数据库模型是()。 【单选题】4/4拍属于() ...
  • 文章目录前言NN refreshNodes的可用以及效率问题 前言 我们知道在HDFS里面有,存着一类白名单和黑名单的列表来控制其下允许进行注册的DN节点。这样可以防止一些外部恶意节点注册到我们的NN上来。在HDFS的概念里,...
  • 在区块链的区块、链、奖励机制、合约、金融等等环节,我们都分析了这些环节的空间结构及其鲁棒。同时确立了赛博空间学的第一定律。这条定律揭示了区块链技术的一个通向现实世界通道。借助于这种穿透诸赛博空间的...
  • 如果您使用的是配备 Apple T2 安全芯片的 Mac,则“启动安全实用工具”提供以下三项功能来帮助保护您的 Mac 免受未经授权的访问:固件密码保护、安全启动,以及外部启动。 打开“启动安全实用工具” 1.将您的 ...
  • UE4文件读取插件

    千次阅读 2021-02-11 13:32:55
    我们可以查看一下源码: 8.Create Bitmap 创建或者生成一个位图 我们可以指定要生成图的路径和名字 ,它可以和Generate Next Bitmap Filename 保证名字的唯一 防止覆盖最先生成的图片 Data With : 数据中提供的...
  • 可以看到,从“最短路径”到“单源最短路径”再到“全最短路径”,是一个输入的递进关系,简单的话可以通过循环来解决,但是有更加优化的算法可以做的更有效率。 最小生成树。探索能将所有节点连接起来的最短路径。 ...
  • 属于宇宙冰箱厂的外部利益相关者的是 答案:看左侧 题目:组织的利益相关者分为外部利益相关者和内部利益相关者。属于宇宙冰箱厂的内部利益相关者的是()。 答案:看左侧 题目: 根据Ansoff矩阵,宇宙冰箱厂采取的...
  • Linux操作系统实时

    千次阅读 2021-05-17 21:12:12
    另个一被Donald Gillies提出定义为:一个实时系统是指计算的正确不仅取决于程序的逻辑正确,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。实时系统对响应时间有严格要求。实时...
  • 微服务系统中的数据一致,你都会了吗

    万次阅读 多人点赞 2021-09-17 23:11:34
    你好,我是看山。 从单体架构到分布式架构,从巨石架构到微服务...需要注意一下,本文所设计的数据一致,不是多数据副本之间保持数据一致,而是系统之间的业务数据保持一致。 本地事务 在早期的系统中,我们可.
  • 数据库完整包括哪三种

    千次阅读 2021-01-19 12:36:51
    数据库完整性包括哪三种1、实体完整性实体完整性是对关系中的记录唯一性,也就是主键的约束。...2、域完整性域完整性是对数据表中字段属性的约束,通常指数据的有效性,它包括字段的值域、字段的类型及字段的...
  • 数据库有哪几种完整

    千次阅读 2021-01-25 16:07:09
    数据库中任何数据改动,都必须乎合所有完整性限制及数据有效性检验。1、实体完整性实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。定义...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 409,667
精华内容 163,866
关键字:

外部有效性

友情链接: run_cycle2.rar