精华内容
下载资源
问答
  • MySql模糊搜索结果按匹配度排序
    千次阅读
    2018-07-19 19:00:36

     

    SELECT *
    FROM mov_video_info
    WHERE title LIKE '%魔兽%'
    ORDER BY REPLACE(title,'魔兽','')
    LIMIT 10

     

     

    通过替换关键字为空字符串来改变排序规则。

    更多相关内容
  • 战略新兴产业异质与融资模式匹配度研究.docx
  • 为了解决基于资源传输的链路预测方法忽略节点间匹配度对资源传输过程影响的问题,提出了一种基于资源传输匹配度的复杂网络链路预测方法。首先,对资源传输路径上的2个端点进行详细分析,提出任意节点间匹配度的量化...
  • 本文在机位匹配度最高条件下,构建了以.近机位使用率和停机位预分配方案鲁棒为目标的两阶段分配模型,以求解机场的.停机位预分配问题。首先,基于硬约束条件,以机位匹配度最高为目标进行求解。.然后,根据所得...
  • 论文研究-城市道路网络功能匹配度分析模型.pdf, 为合理地...最后结合算例,给出了城市道路网络功能匹配度计算的具体步骤并说明了该分析方法及分析模型的可行和有效
  • 提出了基于匹配度的广度优先推理方法,给出了匹配度的计算方法;实现了用于确定发酵过程生物量软测量混合模型结构的推理过程。实验表明,与基于穷举法的深度优先推理方法比较,基于匹配度的广度优先推理方法能够有效...
  • 在匹配过程中,首先提出了圆环匹配算法,它通过构建匹配圆环完成相似性匹配,并且通过多次重启提高相似性匹配的准确和效率;然后在规约算法的基础上,提出了期望匹配的改进算法,它通过增加包络约束消除期望匹配...
  • 连通是车辆导航中车辆与地图匹配的一个重要...该匹配度通过反馈方式在下一次匹配的连通因素中加以利用。实验表明带匹配度的反馈模糊地图匹配方法可以使连通得到更加合理有效的使用,从而使地图匹配效果得到改善。
  • 针对传统特征匹配算法在实际的应用中存在搜索范围广...仿真验证试验中,图像特征匹配准确平均提高7%左右,试验结果表明:基于显著区域检测的特征匹配算法,能有效地降低图像背景对图像匹配的干扰,提高匹配的精度。
  • 对历史研究数据进行探索采集,将采集到的数据进行信息参数化处理,确定匹配算法参数,采用WRED工具实现对数据的预处理,利用树干式模型加速数据的计算与查询提高计算效率,分别从数据生成、碎片数据和数据重要三...
  • 几种图像相似度量的匹配性能比较 几种图像相似度量的匹配性能比较
  • 针对最佳伙伴相似(BBS)图像匹配算法计算复杂度高、目标定位不准确等问题,提出了一种改进的图像匹配算法。根据模板图像的尺寸自适应选择图像分块大小,以减少匹配点集中点的数目,从而减小BBS算法的运算量;根据子块的...
  • 通过SIFT算法提取图像中的特征点,并可以显示匹配点对,由匹配点计算单应,可以通过调节siftmatch中的阈值改变匹配点的精确
  • 在区间值模糊推理过程中,为合理地计算输入事实与规则前件的匹配程度,给出区间值模糊集的模糊加权均衡匹配度的定义,不仅考虑了每个前件分量在推理中的不同影响程度,而且考虑到每个分量匹配程度的均衡要求,进而...
  • 通过将匹配支持的相似测度引入SIFT特征匹配算法,提出了一种能够应用于不同源遥感影像的自动匹配方法。首先,建立待匹配影像中特征点的SIFT特征描述符;然后,以待匹配点与参考点间的欧氏距离为相似测度,挑选...
  • 将曼哈顿距离替代欧氏距离作为两个图像块之间的相似度量, 在此基础上, 滑动窗口逐像素匹配得到新的由BBS响应值构成的置信图, 对该置信图进行阈值筛选, 并对剔除较小值后的置信图滤波处理后, 将最亮连通区域...
  • 前言 操作系统:CentOS6.9 Solr版本:6.1,测试发现Solr6的都是可以的,7的没有试 ...数据有不同数据的类型(可以认为是...1. 匹配度越高的排名越靠前, 2. 数据类型越重要的排名越靠前, 3. 字段越重要的...

    前言

    操作系统:CentOS6.9
    Solr版本:6.1,测试发现Solr6的都是可以的,7的没有试

    需求:

    数据有不同数据的类型(可以认为是不同数据库表,Solr中有一个字段专门用来标识数据的类型),
    不同的字段类型,
    数据还有不同的日期
    现在要查询一个长文本,查询结果要满足以下要求:

    1. 匹配度越高的排名越靠前,
    2. 数据类型越重要的排名越靠前,
    3. 字段越重要的排名越靠前,
    4. 时间越近的排名越靠前

    像这种情况如何合理的控制Solr查询的命中的数量和质量呢?
    构造以下文本片段:

    我要买绝地武士星空仪
    买绝地武士星空仪
    买星空绝地武士仪
    黑武士星空仪
    我要买小米
    

    进一步分析我们会发现其实我们要做的主要是两件事儿

    1. 查询
    2. 排序

    查询:

    在使用多个条件进行查询的时候,或者对查询内容进行分词的时候,Solr可能返回满足所有条件的结果或者满足部分条件的结果。solrQueryParser控制这一行为,这个属性是配置在schema.xml文件里的:

    <solrQueryParser defaultOperator="AND"/>
    

    属性值只可以是"AND"和"OR"。
    AND将返回所有条件(分词)的结果
    OR将返回满足任一条件的结果
    这里使用OR操作,edismax的mm参数可以控制匹配度
    不过这个配置项需要删掉,不知道是为什么,加上这个配置后,就算是"OR",也达不到想要的效果
    查询的时候会自动对要查询的关键字进行分词,分词后它们的关系是OR
    另外可以再在要查询的关键字前后加上"*"
    OK查询完了,下面说说排序,妈的,最难的就是这个
    ##排序
    最简单的排序就是设置sort参数,一般是sort一个时间,不过这里光一个sort参数是不能满足需求的,怎么办呢?
    有三种实现方式:

    1. 定制Lucene的boost算法,加入自己希望的业务规则;

    2. 使用Solr的edismax实现的方法,通过bf查询配置来影响boost打分。

    3. 在建索引的schema时设置一个字段做排序字段,通过它来影响文档的总体boost打分。

    具体怎么用的,可以去网上查,这里仅提供实现思路及解决方案
    这三种实现方式归根到底其实就是就是Solr打分方式

    这是采用第二种方案,使用edismax可以控制Solr的评分排序规则,
    使用mm,来控制模糊查询的匹配程度
    使用bq,来控制不同数据类型的重要性
    使用qf,来控制不同的字段的重要性
    使用bf,来控制日期的重要性
    使用pf,来控制要查询的文本片段之间的关系

    mm参数:

    用来控制模糊查询的匹配程序如要搜索以下文本片段:我要买绝地武士星空仪
    查询的时候会进行分词分成以下几个词:我,要,买,绝地,武士,星空,仪
    Solr分词

    一个文本片段分词分成了7个,mm配置为80%那么,7个词至少得匹配6个

    ###bq参数:
    bq是boost query的简写,给符合查询条件的添加添加权重,
    比如说bq设置为title:“shanghai”^10.0,它的意思就是给所有查询结果中条件字段名为title字段值为shanhai的条件添加权重为10.0,
    多个条件的话用空格隔开

    ###qf参数:
    这个参数用于指定q参数的条件要查哪个些字段,并给这些字段添加不同的权重
    如:title^10.0意思为查询title字段,并给这个字段添加权重为10.0
    多个字段用空格隔开

    bf参数:

    意思是通过数学公式来影响评分,不局限在qf中的字段
    如:recip(div(ms(NOW+8HOUR,capture_time),86400000),1,1,1)
    recpi函数:recip(x,m,a,b)转换为数据公式为:a/(m*x + b),a,b,m为常数,x为变量
    div函数:除法div(a,b)表示:a/b
    ms函数:表示两个日期相减
    NOW+8HOUR表示当前时间加上8个小时,Solr使用的是UTC时区与比东8区少了8个小时
    capture_time:Solr中一个数字类型的字段
    86400000:一天时间的毫秒数
    通过这个函数就可以根据capture_time生成不同的权重,capture_time离当时时间越近权重越大,越远权重越小,如果是未来则为负

    ###pf参数:
    可以配置pf参数与qf参数一样
    pf和qf参数的格式是一样的,不同的是pf会更加注重短语匹配
    比如说:搜索"绝地武士星空仪"
    绝地武士星空仪的权重就比星空绝地武士仪的权重大

    ##配置
    网上好多地方都是直接用一个URL链接进行配置的,其实可以直接配置到Solr里面,这样每次查询的时候就不用加这么多参数了。
    可以把edismax配置到solrconfig.xml文件的"/select" 的requestHandler

    <requestHandler name="/select" class="solr.SearchHandler">
        <lst name="defaults">
            <str name="echoParams">explicit</str>
            <str name="defType">edismax</str>
            <str name="mm">80%</str>
            <str name="q.alt">*:*</str>
            <!-- recip(abs(div(ms(NOW+8HOUR,capture_time),86400000)),1,1,1) -->
            <str name="bf">
            recip(div(ms(NOW+8HOUR,capture_time),86400000),1,1,1)
            </str>
            <!--
            -->
            <str name="bq">docType:(真实 | 虚拟)^10.0 OR docType:聊天^5.0</str>
            <str name="qf">
              SUMMARY^10.0 MSG^10.0 TITLE^10.0 KEYWORD^10.0 FILE_NAME^5.0 CONTENT^1.0
            </str>
            <str name="pf">
              SUMMARY^10.0 MSG^10.0 TITLE^10.0 KEYWORD^10.0 FILE_NAME^5.0 CONTENT^1.0
            </str>
            <str name="rows">10</str>
            <str name="fl">*,score</str>
        </lst>
    </requestHandler>
    

    中间遇到下面这个问题也记录一下
    问题描述:
    用Solr搜索一个比较长的文本片段搜不出结果。比如说,搜索:"我一定要买绝地武士星空仪"或者搜索:“我要买绝地武士星”。构造的数据中有好多相关的数据,但是都没有显示出来。
    Solr_OR
    原因:
    Solr的配置文件schema.xml中配置了对要搜索的关键字进行完全匹配,即必须包含所有搜索的关键字,而且只能多不能少,比如说"我一定要买美丽的绝地武士的星空仪"是可以被搜索出来的,“我要绝地武士星空仪"就搜索不出来(少了"一定”)。而"我要买绝地武士星"之所以搜不出来是因为Solr认为星空仪、星空是一个词,因此进行了索引,但是认为"星"不是一个词,没有进行索引所以查不出来。

    展开全文
  • 为了提高一键式检测中图像匹配精度和速度,提出一种基于轮廓曲线的快速高精度图像配准算法:根据定义的图像匹配差异度量,采用图像金字塔搜索匹配策略,利用相应的相似度量进行图像匹配。具体流程为:对采集图像和...
  • 利用相似度和欧式距离系数建立了描述数据样本间近似程度的归一化综合指标 相似离,并通过灰度数据向量集的相似离描述图像的匹配程度。将 SVM人脸检测、图像灰度值相似离度匹配和跟 踪模板更新三种方法结合起来,...
  • 基于OpenCv的旋转匹配

    2018-09-10 00:31:14
    基于OpenCv实现了模板图像的旋转匹配,此代码基于matchTemplate函数封装实现可以得知旋转角度的模板匹配
  • 基于前景理论,通过多属性评价,计算出资源供求双方之间的满意,据此确定匹配主体的偏好序.以偏好序作为匹配依据,设计在考虑匹配数量的前提下,求解稳定匹配方案的“多对多”匹配算法,并论证匹配结果对于匹配优先方的...
  • 提出了一种基于核密度估计相似测度的立体匹配方法。将匹配基元中对应像素点的颜色差值在差值特征空间中进行核密度估计,并以此作为相似测度。在此基础上建立全局能量函数,并采用改进的置信传播算法进行视差图的...
  • 通过研究匹配饱和与目的色域几何特性的关系,将色彩空间划分为5个区,在每个区采用不同匹配策略以提高匹配后色彩的饱和和精度,并在最大彩度点所在区域使用变锚点技术来保证匹配结果的色彩连续。实验结果表明...
  • 针对现有双边匹配决策要求主体给出另一方全体... 进一步以双方主体满意最大为目标, 同时考虑稳定匹配约束条件, 建立单目标优化模型并求解获得匹配方案; 最后, 通过算例分析表明了所提出方法的可操作和有效.</p>
  • ElasticSearch相似度匹配及分词器选择

    千次阅读 2021-06-30 10:08:45
    ES核心相似度匹配逻辑: ES的核心相似度匹配逻辑,或者匹配目的,可以不是很严谨的用以下两句话承载。 局部常见:该单词在文档中多次出现 全局罕见:该单词在语料库中出现的次数并不多。 详见:...

    目录

    ES核心相似度匹配逻辑:

    分词器选择:

    IK 分词器

    分词器使用演示:

    ik分词器最佳实践:

    使用minimum_should_match

    正向匹配度-使用个数

    正向匹配度-使用百分比

    逆向匹配

    组合匹配(Combination)


    ES核心相似度匹配逻辑:

    ES的核心相似度匹配逻辑,或者匹配目的,可以不是很严谨的用以下两句话承载。

    1. 局部常见:该单词在文档中多次出现
    2. 全局罕见:该单词在语料库中出现的次数并不多。

    详见:Elasticsearch中的相似度评分机制_chenxy02的博客-CSDN博客_elasticsearch 相似度

    分词器选择:

    ES相似度匹配的结果与所选择的分词器类别息息相关,常见的分词器如下:

    • Standard:单字切分法,一个字(对于英文为一个单词)切分成一个词,ES默认内置分词器。
    • CJKAnalyzer: 二元切分法, 把相邻的两个字, 作为一个词。
    • SmartChineseAnalyzer: 对中文支持较好, 但是扩展性差, 针对扩展词库、停用词均不好处理。
    • Whitespace分词器:去除空格,不支持中文,对生成的词汇单元不进行其他标准化处理。
    • language分词器:特定语言的分词器,不支持中文。
    • IK-analyzer: 在做中文搜索时,最受欢迎的分词器,支持自定义词库。

    IK 分词器

    IK分词器有两种分词模式:ik_max_word和ik_smart模式。

    1、ik_max_word

    会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。

    2、ik_smart

    会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。

    分词器使用演示:

    使用es内置standard分词算法:

    使用ik_max_word分词算法:

    使用ik_smart分词算法:

    ik分词器最佳实践:

    关于做中文检索时,使用分词器的最佳实践业界有两种说法:

    1、索引时用ik_max_word,在搜索时用ik_smart。即:索引时最大化的将文章内容分词,搜索时更精确的搜索到想要的结果。

    2、创建mapping时指定分词器和查询事指定的分词器,保持一致。

    使用minimum_should_match

    这一部分我们使用的实验数据为:

    POST similarity-score/_doc/_bulk
    {"index":{}}
    {"text":"what is your birthday"}
    {"index":{}}
    {"text":"nothing is impossible"}
    {"index":{}}
    {"text":"Blue sky"}
    {"index":{}}
    {"text":"good morning"}

    ElasticSearch query中的minimum_should_match,最小匹配度。它有很多种配置方式。

    正向匹配度-使用个数

    比如 "minimum_should_match":3 官方原文解释是:Indicates a fixed value regardless of the number of optional clauses。

    这里要说明一下为什么是optional clauses(翻译为可选的子句),因为对于被analyzer分解出来的每一个term都会构造成一个should的bool query的查询,每个term变成一个term query子句。

    比如 "query": "what is your",会被解析成:

    { 
      "bool": { 
        "should": [ 
          { "term": { "body": "what"}}, 
          { "term": { "body": "is"}}, 
          { "term": { "body": "your"}}
        ], 
        "minimum_should_match": 3 
      } 
    } 

    不使用  "minimum_should_match"的情况:

    使用 "minimum_should_match:2"的情况:

    正向匹配度-使用百分比

    比如"minimum_should_match":75%,可以配置一个一个百分比,至少optional clauses至少满足75%,这里是向下取整的。 
    比如有5个clause,5*75%=3.75,向下取整为3,也就是至少需要match 3个clause。 

    注意:由于是向下取整,所以尤其针对短的query,我们把"minimum_should_match"设为大于100% 还是可以得到结果(如下,130*3=3.90,向下取整为3)

    逆向匹配

    逆向匹配和正向匹配相反,比如我们可以近似理解为-25%和75%表示的是一个意思,但是有些小小的差异,比如有5个clause,逆向匹配-25%,5*25%=1.25,取整是1,5-1=4,即要匹配4个clause,而75%算出来是3个clause。 

    组合匹配(Combination)

    比如,"minimum_should_match": 3<90%,官方的解释有点搞,感觉描述的有点复杂。描述如下: 

    A positive integer, followed by the less-than symbol, followed by any of the previously mentioned specifiers is a conditional specification. It indicates that if the number of optional clauses is equal to (or less than) the integer, they are all required, but if it’s greater than the integer, the specification applies. In this example: if there are 1 to 3 clauses they are all required, but for 4 or more clauses only 90% are required. 
    意思是说如果1<clauses<=3,那么两个条件都要满足( they are all required),如果clauses>3,那么只要满足90%这个条件。


    以以上实验为例,当1<clauses<=3,"what"、"is"、"your"都是必需的。

    ---------------------------------------------------------------------------------------------

    参考网址:

    Elasticsearch中的相似度评分介绍 - 云+社区 - 腾讯云

    Elasticsearch搜索中文分词优化-ik_max_word,和ik_smart模式_yinni11的博客-CSDN博客

    ElasticSearch之mapping分词器选择_numbbe的博客-CSDN博客

    elasticsearch中minimum_should_match的一些理解_xiao_jun_0820的专栏-CSDN博客

    展开全文
  • SURF算法具有尺度不变、旋转不变和较好的鲁棒但是不具备实时,ORB算法良好的...实验结果表明,图像尺度变化时,改进的算法在匹配准确较SURF提升5倍,较ORB算法提升3倍,在特征点分布均匀方面也有所改进。
  • 针对纸质伤票信息的自动化采集,提出一种改进模板...实验结果表明,改进的相关系数匹配算法能够提高匹配速度,并具备较强的自适应,数学形态学算法能够根据伤票边缘几何特征精确定位伤票位置,匹配度达到90%以上。
  • 基于行为效果提出服务的匹配算法,定义服务的行为效果包括事件、前置条件和后置结果,通过对事件和前置条件、后置结果进行匹配,计算用户需求和服务描述之间的匹配度,通过实验结果显示了算法的可行和有效
  • 因果推断笔记—— 相关... 倾向评分匹配2 基于倾向评分法的因果推断2.1 因果效应估计三种方法2.2 倾向评分法的均衡检验2.3 反驳3 倾向得分案例解读一(无代码):就业与收入的影响3.1 第一步:使用倾向评分法

    因果推断笔记—— 相关理论:Rubin Potential、Pearl、倾向性得分、与机器学习异同(二)
    因果推断笔记——因果图建模之微软开源的dowhy(一)


    文章目录


    0 观测数据的估计方法

    参考:

    在这里插入图片描述
    在rubin的理论下,
    在观测数据下,为了给实验组寻找合适的对照组,或者消除对照组的影响,有非常多种方式,其中包括:

    • Matching(找对照组)
    • Propensity Score Based Methods(PS中介变量过度)
      • PS Matching ,能解决在高维数据中难以找到相似样本的问题
      • Inverse of Propensity Weighting 方法(IPW)
      • Doubly Robust
    • Directly Confounder Balancing(直接对样本权重进行学习)
      • Entrophy Balancing 方法之中,通过学习样本权重,使特征变量的分布在一阶矩上一致,同时还约束了权重的熵(Entropy)
      • Approximate Residual Balancing。第一步也是通过计算样本权重使得一阶矩一致,第二步与 Doubly Robust 的思想一致,加入了回归模型,并在第三步结合了前两步的结果估计平均因果效应。

    0.1 Matching

    大牛论文:
    Matching methods for causal inference: A review and a look forward

    在这里插入图片描述

    0.2 Propensity Score Based Methods

    关于PS:
    Rubin 证明了在给定倾向指数的情况下,Unconfounderness 假设就可以满足。倾向指数其实概括了群体的特征变量,如果两个群体的倾向指数相同,那他们的干预变量就是与其他特征变量相独立的。

    0.2.1 PSM

    其中PS的方式也可以与Matching进行结合,也就是PSM;
    做 Matching,这样能解决在高维数据中难以找到相似样本的问题

    0.2.2 IPW

    在这里插入图片描述

    Inverse of Propensity Weighting 方法,对于干预变量为1的样本使用倾向指数的倒数进行加权,而对于为0的样本使用(1-倾向指数)的倒数进行加权,两类样本的加权平均值之差就是平均因果效应的大小。
    这里有一个假设,就是估计出的倾向指数与真实的倾向指数是相等的。

    因此这个方法有两个弱点,

    • 一是需要对倾向指数的估计足够精确
    • 二是如果倾向指数过于趋近0或1,就会导致某些权重的值过高,使估计出的平均因果效应的方差过大。

    其他关联可见:倾向得分方法的双重稳健且有效的改进

    经过IPW加权之后,我们大致认为各组样本之间不存在选择性偏差,这时,我们用对照组的观测结果的加权值来估计整体的对照策略的潜在结果期望,用试验组的观测结果的加权值来估计整体的试验策略的潜在结果期望。

    0.2.3 Doubly Robust

    IPW需要样本权重主要围绕倾向的分为核心,倾向得分一旦预测不准,会导致上面的估计方法出现很大的偏差。

    为了解决样本权重过度依赖倾向得分准确性的问题, 大佬又提出了Doubly Robust estimator (DR)方法或者成为增强IPW(AIPW)。
    DR方法具体做法类似于鸡蛋不放在一个篮子里的投资方法,它结合倾向得分和结果回归模型来得到样本权重,其具体做法如下:
    在这里插入图片描述

    这个方法需要根据已有数据,再学习一个预测的模型,反事实评估某个个体在干预变量变化后,结果变量的期望值。
    只要倾向指数的估计模型和反事实预测模型中有一个是对的,计算出的平均因果效应就是无偏的;
    但如果两个模型估计都是错误的,那产生的误差可能会非常大。

    0.2.4 Covariate balancing propensity score (CBPS)

    因果推断综述解析|A Survey on Causal Inference(3)

    IPW方法的倾向得分其实是策略的倾向选择概率,但是选择性偏差带来的是样本之间其他相关变量分布的不平衡。所以使用逆倾向得分属于只考虑了策略的倾向选择概率,却用来平衡样本之间其他相关变量的分布。Covariate balancing propensity score (CBPS),协变量平衡倾向得分方法被设计出来来同时衡量这两方面,来使倾向得分更准确。CBPS得到倾向得分的方式是求解下面的方程:
    在这里插入图片描述

    0.2.5 数据驱动的变量分解算法(D²VD)

    以上的这三种基于倾向指数的方法比较粗暴,把干预变量和结果变量之外的所有变量都当作混淆变量。而在高维数据中,我们需要精准地找出那些真正需要控制的混淆变量。我们提出了一种数据驱动的变量分解算法(D²VD),将干预变量和结果变量之外的其他变量分为了三类:

    1. 混淆变量(Confounders):既会影响到干预变量,还会影响到结果变量

    2. 调整变量(Adjustment Variables):与干预变量独立,但会影响到结果变量

    3. 无关变量:不会直接影响到干预变量与结果变量

    进行分类之后,就可以只用混淆变量集去估计倾向指数。而调整变量集会被视为对结果变量的噪声,进行消减。最后使用经过调整的结果,去估计平均因果效应。我们从理论上证明了,使用这种方法可以得到无偏的平均因果效应估计,而且估计结果的方差不会大于 Inverse of Propensity Weighting 方法。

    在这里插入图片描述

    0.3 Directly Confounder Balancing

    直接对样本权重进行学习。
    这类方法的动机就是去控制在干预变量下其他特征变量的分布。
    上述的样本加权方法可以在将观测到样本其他变量均视为混杂因素的意义上实现平衡。
    然而,在实际情况中,并非所有观察到的变量都是混杂因素。有些变量被称为调整变量,只是对结果有影响,还有一些可能是无关的变量。

    0.3.1 Entrophy Balancing

    方法之中,通过学习样本权重,使特征变量的分布在一阶矩上一致,同时还约束了权重的熵(Entropy)。但这个方法的问题也是将所有变量都同等对待了,把过多变量考虑为混杂变量。

    0.3.2 Approximate Residual Balancing

    第一步也是通过计算样本权重使得一阶矩一致,第二步与 Doubly Robust 的思想一致,加入了回归模型,并在第三步结合了前两步的结果估计平均因果效应。只要样本权重的估计和反事实预测模型中有一个是对的,计算出的平均因果效应就是无偏的。但这里也是将所有变量都同等对待了。


    1 倾向性得分

    具体从因果推断笔记—— 相关理论:Rubin Potential、Pearl、倾向性得分、与机器学习异同(二)摘录的相关的章节

    1.0 ATT与ATE的关系

    双重差分法之PSM - DID(1)

    ATT:参与者平均处理效应(Average Treatment Effect on the Treated,ATT)
    ATE:全部样本的平均处理效应,Average Treatment Effect,ATE)

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

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

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

    估计ATT最理想的方法是找到参与实验的个体在平行时空的自己,并假设平行时空的自己没有参与实验,最后作差得出最纯粹的ATT,但是找到平行时空的自己不现实;
    退而求其次,我们可以使用随机分组的处理组与控制组,作差得到ATT,但现实中个体是否参与实验的选择不随机;
    为了得到随机化分组的样本,找出影响个体是否参与实验的因素,控制两组间因素的取值相等,最后利用处理后的分组样本作差得到ATT。

    在这里插入图片描述
    但是,平行时空中的个体一般是无法找到的(至少现在不能~)
    在这里插入图片描述
    为了使 A T T = A T E ATT = ATE ATT=ATE,其中一个思路就是消掉选择偏差这一部分
    处理组的选择是随机的,就能实现处理组虚拟变量与结果变量均值独立,只要处理组的选择是随机的,两组间的y之差就是我们需要的参与组平均处理效应ATT

    在【淘系技术:倾向得分匹配(PSM)的原理以及应用】提到:
    可以认为ATE是人群整体的干预增量效果,而ATT是实际被干预人群的干预增量效果。
    通常我们通过PSM+DID计算的是ATT,因为ATE还会涉及人群的干预率。更详细的解释可以参考stackexchange上的
    这个回答:https://stats.stackexchange.com/questions/308397/why-is-average-treatment-effect-different-from-average-treatment-effect-on-the-t

    1.1 matching 的讨论

    有一篇专门说matching综述论文:
    Matching methods for causal inference: A review and a look forward

    1.1.1 PSM的一些问题

    PSM(倾向性得分匹配法)与回归相比究竟优越在哪里?

    PSM是为了找到实验组比较适配的对照组,之所有会找,大概率是只有观测数据,没有实验数据。
    实用性角度,matching 把本来就能一步完成的回归,硬生分作两步:

    • 第一步:匹配合适的对照组
    • 第二步:用匹配到的对照组和实验组的数据做回归

    matching 也无法解决隐形的遗漏变量问题(或内生性问题)。
    Matching 是一个有争议的方法,我认识很多老师他们对PSM 包括其它传统的matching是有看法的,觉得有点鸡肋,
    原因一是任何matching都是基于一套weighting 规则, 你咋证明这套weighting 规则就比你直接加控制变量进去好?
    原因二是有时候用了matching 也构建不出一个很好的对照组,规则严了找不到好的common support,规则松了对照组和不matching 前也差不了多少。

    1.1.2 面板数据中:PSM和DID是天生绝配!

    双重差分法之PSM - DID(1)
    双重差分法之PSM - DID(2)

    现实中的政策本质上是一种非随机化实验(或称,准自然实验),因此政策效应评估所使用的DID方法难免存在自选择偏差,而使用PSM方法可以为每一个处理组样本匹配到特定的控制组样本,使得准自然实验近似随机,注意是近似,因为影响决策的不可观测因素在两组间仍然存在差异。

    PSM - DID也并非是解决选择偏差的灵丹妙药,除了PSM本身不能控制因不可观测因素导致的组间差异,在与DID结合时还存在一个更为关键的问题。

    从本质上来说,PSM适用于截面数据,而DID仅仅适用于时间 - 截面的面板数据。

    • 对于PSM,每一个处理组样本匹配到的都是同一个时点的控制组样本,相应得到的ATT仅仅是同一个时点上的ATT。下文psmatch2的输出结果中,ATT那一行结果就仅仅代表同一个时点上的参与者平均处理效应。
    • 对于DID,由于同时从时间与截面两个维度进行差分,所以DID本身适用的条件就是面板数据。因此,由PSM匹配到的样本原本并不能直接用到DID中做回归。

    面对两者适用数据类型的不同,现阶段的文献大致有两种解决思路。

    • 第一,将面板数据视为截面数据再匹配。如上文参考文献中的绝大多数。
    • 第二,逐期匹配。如,Heyman et al.(2007)[11]、Bockerman & Ilmakunnas(2009)[12]等。

    1.1.3 PSM的一些使用条件

    倾向得分匹配法的详细解读

    1.样本量尽量大,如果样本太小,会导致处理组许多样本在控制组中找不到能匹配的样本,或者能匹配,但是距离很远,也就是控制组的这个样本与处理组的这个样本相对是最匹配的,但是绝对匹配度依然不高。

    2.处理组与控制组的倾向得分有较大共同取值范围,否则会丢失较多样本,导致匹配的样本不具备代表性。

    需要注意的是,PSM 只能缓解由可观测变量带来的内生性问题,无法处理最为关键的由不可观测变量带来的内生性问题。以上面的例子为例,如果影响企业是否披露R&D投资的因素是不可观测的,那么PSM就不适用了。并且只是缓解,从根本上处理内生性问题还得用IV方法。

    1.2 相似性的测度标准

    到底多相似(距离、卡尺)算相似呢?标准不同找到的匹配对象就不同。

    距离。一般的欧式距离、标准化的欧式距离、马氏距离。后两者距离测度方法消除了量纲(or 单位)的影响。下面展示一个标准化欧式距离的公式:
    在这里插入图片描述
    卡尺。根据倾向指数设定卡尺,只有再卡尺范围内,才有可能相似。有卡尺的马氏距离匹配将距离定义为:
    在这里插入图片描述

    1.3 匹配实施方法

    1.3.1 近邻匹配(nearest neighbor matching)

    1.3.1.1 1对1匹配

    【概念】指为每一个干预组个体在控制组中寻找个距离最近的控制组个体与其匹配(一夫一妻)。

    【优缺点】最终的匹配样本比较少,估计方差较大,但每个干预组个体寻找到的都是最近的,因而,偏差比较小。

    1.3.1.2 1对多匹配

    【概念】为每个干预组个体在控制组寻找多个个体与其匹配(一夫多妻)。

    【优缺点】寻找的匹配比较多,匹配样本容量比较大,估计精度提高,但由于一对多近邻匹配中,与干预组个体相匹配的第二个、第三个等后面的控制组个体与干预组个体的相似性下降,从而估计偏差会增加。

    权衡后的选择:控制组样本数量很多时,可以考虑一对多近邻匹配。

    1.3.2 其他匹配

    重复匹配。
    重复选择控制组进行匹配能降低匹配偏差,但是会降低最终匹配样本的样本量,估计精度可能下降。

    贪婪匹配vs最优匹配。
    贪婪匹配(个体最优,整体不一定最优)是指对每一个干预组个体都在控制组中寻找一个距离最近的.但是保证每一对距离最近,对全部干预组个体而言,匹配上的控制组样本并不一定是总体上最近的另一种匹配方法。总体上对所有的干预组个体同时进行匹配,寻找对所有干预组个体而言匹配上的总距离最小。
    权衡后的选择:如果关心平均因果效应,选择贪婪匹配即可;如果关心每个个体的匹配效果,最优匹配会得到更为平衡的结果。

    raidus matching 半径、近邻匹配

    选择一个半径内最接近的样本作为控制组,增大了方差,减少了偏差。

    核匹配 kernel and local linear matching
    将处理组样本与由控制组所有样本计算出的一个估计效果进行配对,其中估计效果由处理组个体得分值与控制组所有样本得分值加权平均获得,而权数则由核函数计算得出。
    这种方法的主要在于选择全部对照组的样本作为对照组,通过给与不同样本不同权重的方式予以控制

    分层匹配

    根据协变量的取值进行分层。
    主要思路在于把样本分为几个子样本,确这几个子样本不存在较大差异,然后在子样本内做均值的回归

    1.4 三种常见的Matching方法

    • 倾向性评分匹配法(Propensity Score Matching,PSM)
      PSM将处理组和对照组中倾向性评分接近的样本进行匹配后得到匹配群体,再在匹配群体中计算因果效应。最常用的匹配方法是最近邻匹配法(nearest neighbor matching),对于每一个处理组的样本,从对照组选取与其倾向评分最接近的所有样本,并从中随机抽取一个或多个作为匹配对象,未匹配上的样本则舍去。

    • 倾向性评分分层法(Propensity Score Stratification,PSS)
      PSS将所有样本按照倾向性评分大小分为若干层(通常分为5-10层),此时层内组间混淆变量的分布可以认为是均衡的,当层内有足够样本量时,可以直接对单个层进行分析,也可以对各层效应进行加权平均。当两组的倾向性评分分布偏离较大时,可能有的层中只有对照组个体,而有的层只有试验组的个体,这些层不参与评估因果效应。PSS的关键问题是分层数和权重的设定。可通过比较层内组间倾向性评分的均衡性来检验所选定的层数是否合理,权重一般由各层样本占总样本量的比例来确定。

    • 倾向性评分加权法(Propensity Score Weighting,PSW)
      一般有两种加权方法:逆概率处理加权法(the inverse probability of treatment weighting,IPTW)和标准化死亡比加权法(the standardized mortality ratio weighting,SMRW)

    PSW在计算得出倾向性评分的基础上,通过倾向性评分值赋予每个样本一个相应的权重进行加权,使得处理组和对照组中倾向性评分分布一致,从而达到消除混淆变量影响的目的。

    1.5 淘宝中使用PSM的案例心得

    因果推断:效应估计的常用方法及工具变量讨论

    倾向性得分匹配(PSM,Propensity Score Method)

    主要是基于用户特征来预测用户被活动干预的概率作为倾向得分,选取和实验组用户倾向得分最接近的用户作为对照组;“倾向性得分” 是一个用户属于实验组的 “倾向性”,理论上,如果我们对每一个实验组用户都在对照组里匹配一个得分相等的用户,就能得到同质的实验组和对照组,进而来做组间比较。“倾向性得分匹配” 适用于样本属性的维度很高或者有一些(不好切断的)连续变量,为实验组找到匹配的对照组,消除混杂因子。
    在这里插入图片描述

    广义精确匹配(CEM,Coarsened Exact Matching)

    主要是使用核心混杂因子(对“果”/“因变量” 影响较大的用户特征)进行匹配,每个实验用户匹配到的N个同特征用户作为对照组,取N个同特征用户的核心指标均值作为实验用户的对照。CEM主要用于用户量特别大的场景,在这种情况下预测倾向得分依赖于大量的计算资源和较优的模型效果,导致PSM会受到一定的影响。

    应用在实际的业务效果/增量衡量中时,对于匹配类方法,在匹配得到同质的实验 vs 对照组的情况下,活动带来的业务效果即为活动开始后实验组和对照组的核心指标差值(Matching)。
    而当在通过以上匹配类方法没能找到完全同质的实验 vs 对照组的情况下,可依据匹配到的实验组和对照组用户,再结合DID的方法来去除干预前两组之间的GAP,通过匹配+DID类方法来计算因果效应(Matching+DID)。
    在这里插入图片描述

    2 基于倾向性评分法理论实现步骤

    【计量地图】倾向得分匹配法(PSM)理论、操作与案例
    倾向性评分法由Rosenbaum和Rubin于1983年首次提出,是控制混淆变量的常用方法,其基本原理是将多个混淆变量的影响用一个综合的倾向性评分来表示,从而降低了混淆变量的维度。
    在这里插入图片描述

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

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

    数据分析36计(九):倾向得分匹配法(PSM)量化评估效果分析

    可以分为以下几个步骤:

    2.1 选择协变量

    倾向得分匹配(PSM)的原理与步骤
    计算倾向得分类似于一个降维的过程,把非常多的协变量维度降为一个维度,就是倾向得分,也就是倾向得分综合包含了所有协变量的信息。两个个体的倾向得分非常接近,并不意味着这两个个体的其他属性也接近,这不好判断。不过根据PSM的原理,倾向得分接近就够了,其他属性也接近更好。

    协变量太多,则维度太高,找到相似的匹配对象不容易,维度越高越不容易,协变量太少则难以说明个体和匹配对象高度相似。所以协变量的选择需要权衡。

    2.2 倾向性得分估算

    -倾向性得分估算:倾向性得分怎么估算?

    • 因变量为是否被干预Treatment,自变量为用户特征变量。套用LR或者其他更复杂的模型,如LR + LightGBM等模型估算倾向性得分。

    2.3 倾向性得分匹配

    倾向性得分匹配:怎么用得分完成匹配?

    有了每个用户的倾向性得分,针对目前的实验组用户,匹配得到一个接近相同的对照组。
    - 1、匹配用的得分:可选原始倾向性得分 e(x) 或者得分的 logit,ln(e(x)/(1−e(x)))。
    - 2、修剪(trimming):先筛选掉倾向性得分比较 “极端” 的用户。常见的做法是保留得分在 [a,b]这个区间的用户,关于区间选择,实验组和对照组用户得分区间的交集,只保留区间中部 90% 或者 95%,如取原始得分在 [0.05,0.95]的用户。
    - 3、匹配(matching):实验组对对照组根据得分进行匹配的时候,比较常见的有以下两种方法。nearest neighbors: 进行 1 对 K 有放回或无放回匹配。
    radius: 对每个实验组用户,匹配上所有得分差异小于指定 radius 的用户。
    - 4、得分差异上限:当我们匹配用户的时候,我们要求每一对用户的得分差异不超过指定的上限。

    2.4 平衡性/均衡性检验检查

    平衡性/均衡性检验检查:怎么知道匹配效果?或者实验组、对照组分布是否均匀?

    怎么衡量 “配平效果 “呢?比较直观的是看倾向性得分在匹配前后的分布、以及特征在匹配前后的 QQ-Plot。匹配后的实验组和对照组的倾向性得分分布更加接近,变量分布也更接近。量化指标 Standarized Mean Difference (SMD)。SMD 的一种计算方式为:(实验组均值 - 对照组均值)/ 实验组标准差。一般如果一个变量的 SMD 不超过 0.2,一般就可以认为这个变量的配平质量可以接受。当一个变量的 SMD 超过 0.2 的时候,需要凭经验确认一下那个变量是不是没有那么重要。

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

    还包括:
    共同支撑检验(common support检验):主要检验的目的是为了确定针对每个处理组,都有对照组与之匹配,一般可以通过倾向匹配得分的分布进行观察,看是否符合,对于没有找到对照组的处理组,去掉其样本
    主要对匹配前后的核密度图进行对比,最好的结果是匹配之后两条线很相近。有的时候也会用第二章条形图。
    在这里插入图片描述
    平衡性检验
    追求的目标:匹配前后各个变量的均值之间没有明显差异(均值偏差小,t值之小不显著)。主要是下面的表格和图。
    在这里插入图片描述

    2.5 因果效应估算

    因果效应估算:匹配后,怎么从匹配后的两组用户中得到因果效应?

    我们的目标是推断实验组的平均干预效应 ATT (Average Treatment Effect on the Treated)。ATT 的定义为 ATT=E[Y1−Y0|T=1]。
    - 现在我们已经有一对接近同质的实验组和对照组了,有很多方法可以用来估算 ATT 。可以直接比较匹配后的实验组和对照组,也可拟合一个由干预和用户特征预测观察结果的线形模型,看看干预 T 的系数是多少。

    看y变量的ATT和显著性,如下图
    在这里插入图片描述

    2.6 敏感度分析与反驳

    敏感度分析与反驳:混淆变量的选择等主观的一些分析是否会得到一致的分析结论?

    敏感性分析主要的目标是衡量当混淆变量(特征)不满足非混淆假设(unconfoundedness )时,分析结论是不是稳健的。简单的做法是去掉一个或者多个混淆变量重复上面的过程。

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

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

    3 倾向性得分案例解读一(无代码):就业与收入的影响

    在这里插入图片描述

    Lalonde数据集是因果推断领域的经典数据集
    数据集共包含445个观测对象,一个典型的因果推断案例是研究个人是否参加就业培训对1978年实际收入的影响。
    treatment变量,就业培训与否0/1
    混淆变量为age、educ、black、hisp、married、nodeg。

    3.1 第一步:使用倾向性评分法估计因果效应

    在这里插入图片描述

    各种倾向性评分法的因果效应估计值在图表7中,由于不同方法的原理不同,估计的因果效应值也不同。其中倾向性评分匹配法(PSM)因果效应估计值为2196.61,即参加职业培训可以使得一个人的收入增加约2196.61美元
    我们计算ATE(Average Treatment Effect),即在不考虑任何混淆变量的情况下,参加职业培训(treat=1)和不参加职业培训(treat=0)两个群体收入(re78)的平均差异,在不考虑混淆变量下,参加职业培训可以使得一个人的收入增加约1794.34美元。

    另外从ATE和几个估计方法的差异来看,ATE 与PSS/PSW差异不大(说明混淆变量影响不大),PSM差异较大,所以可能PSM不太稳定。

    3.2 第二步:评估各倾向性评分方法的均衡性

    图表8展示了各倾向性评分方法中,每个混淆变量的标准化差值stddiff。总体来看,倾向性评分加权法(PSW)中各混淆变量的标准化差值最小(除了hisp),说明PSW中混淆变量在处理组和对照组间较均衡,其因果效应估计值可能更可靠。

    在这里插入图片描述

    3.3 第三步:反驳

    图表8展示了100次反驳测试中,三种倾向性评分法的每类反驳测试结果的均值。我们将三种倾向性评分法在真实数据下的因果效应估计值放在图表9最右侧进行对比。
    在安慰剂数据法中,由于生成的安慰剂数据(Placebo)替代了真实的处理变量,每个个体接收培训的事实已不存在,因此反驳测试中的因果估计效应大幅下降,接近0,这反过来说明了处理变量对结果变量具有一定因果效应。
    在添加随机混淆变量法和子集数据法中,反驳测试结果的均值在1585.19~1681.75之间。

    对比真实数据的因果估计效应值,PSM的反驳测试结果大符下降,说明其估计的因果效应不太可靠;
    PSW的反驳测试结果与真实数据因果效应估计值最接近,说明其因果效应估计值可能更可靠。

    在这里插入图片描述
    所以,可以需要得到的结论:

    • 需要挑选PSM/PSS/PSW中一个合适的方法
    • 然后来看因果是正向还是负向(因果效应估计值的正负)

    4 倾向性匹配案例二(无代码):是否有诊所与死亡率的因果关系

    Propensity Score Matching(PSM)倾向性匹配评分是什么?盘她!

    比较清晰了给出了PSM匹配步骤的做法,不过可惜没有代码

    对比对照组和实验组项目实施前和项目实施后的新生儿死亡率,进行Difference in Difference 的研究,目前我们假设,并没有历史的新生儿死亡率数据
    数据样式:
    在这里插入图片描述
    这里把treatment-T(有没有诊所),Outcome - Y(infant mortality 死亡率),都标明了;两个混杂变量,poverty rate 贫穷率 和per capita doctors 人均医生数。

    目标:为每一个实验组的村庄创建/找到新的对照组: 针对每一个实验组的村庄,找到其特征类似的对照组。

    4.1 PSM Step1:计算Propensity Score

    import statsmodels.api as sm
    formula = "T ~ poverty_rate + per_capita_doctors"
    model = sm.Logit.from_formula(formula, data = data)
    re = model.fit()
    X = data[['poverty_rate', 'per_capita_doctors']]
    data['ps'] = re.predict(X)
    

    这里注意,不是Y ~ f(T,X),而是T~f(Y,X)

    那么最终出来的结果就是,每个村庄有诊所的可能性。

    4.2 PSM Step2:Matching

    计算出Propensity Score后,在对照组中需要寻找到与实验组行为(贫穷率、人均医生数)相似的村庄,此过程被称为Matching。
    在这里我们采取最简单的临近匹配法,对每一个实验组村庄进行遍历,找到ps值最接近的对照组村庄作为新对照组集合中的元素,即为new_control_index。

    在这里插入图片描述
    因为我们需要为有诊所的村庄(T = 1) 一一对应找无诊所(T=0)村庄
    所以,以index=0的实验组村庄为例(ps=0.416571),在健康诊所项目启动前,与其贫穷率、人均医生数最为接近的对照组成员为index=5村庄(ps=0.395162)。

    这里的计算方式就是非常简单的:ps(index=5) - ps(index = 1)是最小

    到此为止,每个实验组村庄都找到了其新的对照组归宿~

    4.3 PSM Step3:实验组 VS 新对照组 评估建立健康诊所对新生儿死亡率的影响

    在这里插入图片描述
    新对照组村庄(未建立健康诊所)新生儿死亡率比实验组村庄(建立健康诊所)足足高出7%,从而证明这个NGO组织的健康诊所项目对新生儿死亡率的降低有显著作用。


    5 倾向性匹配案例(含代码)案例三

    整个代码非常简单,抽取 + 参考
    文档:psmatching
    github:psmatching

    笔者练习代码:causal_inference_demo/psm

    基本实现与案例二无差别,那我们就来看一下。

    import psmatching.match as psm
    import pytest
    
    
    path = "simMATCH.csv"
    model = "CASE ~ AGE + TOTAL_YRS"
    k = "3"
    
    # m = psm.PSMatch(path, model, k)
    
    # Instantiate PSMatch object
    m = PSMatch(path, model, k)
    
    # Calculate propensity scores and prepare data for matching
    m.prepare_data()
    
    # Perform matching
    m.match(caliper = None, replace = False)
    
    # Evaluate matches via chi-square test
    m.evaluate()
    
    

    这里的K=3,代表会找出三个候选集,之前案例二中是一个。

    数据集的样子:

    在这里插入图片描述

    那么此时:case是干预treatment;
    这个公式,"CASE ~ AGE + TOTAL_YRS"就是计算倾向性得分的时候会使用到的

    5.1 倾向性得分计算

    此时在代码内部计算倾向性得分的公式为:

    glm_binom = sm.formula.glm(formula = model, data = data, family = sm.families.Binomial())
    
    data = m.df 
    
    

    使用的是广义线性估计 + 二项式Binomial,最后得到了propensity

    在这里插入图片描述

    5.2 Matching

    m.matches 
    

    这里计算距离的方式,也是最粗暴的:

    dist = abs(g1[m]-g2)
    

    在这里插入图片描述
    所以,matching的过程其实是筛选样本的过程,
    这里最终挑选出来的只有1700+样本(总共有15000个左右)。
    比如这里就是,case_id = 10384的,匹配到的三个样本编码分别为:9504 / 11978 / 595

    当然该案例后续没有给出因果估计量,不过大可以根据m.matched_data后续自己计算。
    整个案例代码开源的比较简陋。。将就着看了。。


    6 一些案例

    6.1 淘系技术:倾向得分匹配(PSM)的原理以及应用

    淘系技术:倾向得分匹配(PSM)的原理以及应用

    示例数据均为虚拟构造数据,仅用于参考说明方法。

    匹配之后,常见的趋势会如下图一所示:

    • 在干预之前,匹配后的实验组和对照组呈现几乎相同或平行的趋势(匹配质量较好的情况下)
    • 在干预后,两组用户在目标指标上会开始出现差异,可以认为是干预带来的影响

    在这里插入图片描述
    增量计算

    因为满足平行趋势假设,我们可以用双重差分法(DID)去计算干预带来的增量;需注意的是,计算实验组与对照组的差异时,我们通常需要取一段时间的均值,避免波动带来的影响。

    最终得到的结论类似于:用户在购买商品后,能够给来访率带来1.5%(30天日均)的提升。

    额外情况:增量后期趋同

    用户在干预之后来访率有一个短暂的提升,但随着时间的推移两组用户趋于一致。这种情况下我们通常认为干预并没有给用户来访带来显著的提升。为了识别出这种情况,我们也可以通过假设检验或计算差值中位数的方式进行验证。

    在这里插入图片描述
    不满足平行趋势假设
    从下图可以看到,左侧区域实验组与对照组的趋势不一致(不平行),这代表我们前面完成的匹配质量较差,需要优化匹配模型。对于平行趋势的检验,除了图示法(肉眼看是否平行)我们也可以通过T检验的方式来验证。
    在这里插入图片描述
    一个PSM的完整流程:

    • 选择同时影响treatment与outcome的特征,基于特征对treatment进行二分类建模,得到倾向分;
    • 在支撑集上,基于重要特征与倾向分进行匹配,为被干预用户找到匹配的样本;
    • 对匹配结果的质量进行检验,检验通过的话进入下一步,否则返回第二步进行匹配的优化;
    • 基于匹配的结果进行平行趋势验证,验证通过后通过双重差分法进行增量计算。

    6.2 阿里妈妈 受众沟通和品牌认知评价

    参考:【阿里妈妈营销科学系列】第三篇:受众沟通和品牌认知评价

    某护肤品牌在某期综艺节目中植入广告进行品牌推广,想衡量本期综艺中的广告创意对品牌认知度的提升作用。
    在这里插入图片描述

    • 处理组: 有效观看该节目的人(广告曝光)
    • 控制组: 没有观看该节目的人 (未广告曝光)
    • Treatment: 有效观看该节目=1
      我们知道,综艺节目有内容受众人群,观看该节目的人和不看的人会有特征上的差异,这些差异会导致广告曝光的品牌认知提升效果衡量出现偏差。

    在这里插入图片描述
    问题:在研究自变量(曝光)对因变量(成交)的关系时,由于存在混淆变量,影响个体被自变量影响的概率,使得处理组和控制组不同质,影响自变量对因变量的“净效果”。混淆变量的影响成为选择性误差。

    被曝光到的群体,如果当时没有被曝光到,会是怎样的结果?
    实际的处理效应(因果)=曝光者的效果- 曝光者假如没有被曝光时候的效果

    在一个个体上最终只有一个结果会出现并被观察到,也就是和个体所接受的处理相对应的那个结果。“假如没有曝光“是可能结果,是想象出来的,所以我们称为反事实。一个应该被曝光到的人,被曝光到和没被曝光到都是潜在结果,但最终的观察事实只有一种,另一个潜在结果是观察不到的。我们能观察到的是,被曝光的处理组,不被曝光的控制组。
    在这里插入图片描述
    某护肤品牌在某期综艺节目中植入广告进行品牌推广,想衡量本期综艺中的广告创意对品牌认知度的提升作用。
    对节目上线一周内有效观看者作为处理组,同期在改视频网站上访问但没有看该节目的人作为原始控制组,通过倾向分匹配模型找出处理组的同质控制组,并评价他们在节目有效观看后品牌回搜率的差异。
    人群同质化前: 处理组 vs 原始控制组 品牌回搜率处理效应0.129%,提升率153%。控制了人群选择效应以后:处理组 vs 同质人群品牌回搜率处理效应为0.063% ,提升率为42%。
    在这里插入图片描述
    当然,事后随机化只是在无法做事前随机化时一种弥补措施,由于无法穷举所有的混杂因素,分析者仅能在已选的混杂因素上去控制两组平衡。

    6.3 因果推断实战:淘宝3D化价值分析小结

    因果推断实战:淘宝3D化价值分析小结
    常用方法一览表:
    在这里插入图片描述
    在这里插入图片描述
    用户可以从商详页,首猜,主搜云卡片等渠道进入样板间,并在样板间内实现多点漫游,换风格,搭配家具,放我家等功能,给用户更场景化,私人化的体验。选取进入3D样板间的用户,利用倾向性得分匹配法(PSM)获取对照组的同质用户,分析用户在各个价值指标的差异。

    基于倾向性得分匹配法 - 量化价值:

    倾向性得分匹配法:一句话概括,就是匹配分数相同的‘同质’用户。由于在观察研究中,混杂变量较多,无法一一匹配,因此将多个混淆变量用一个综合分数作为表征。通过分数对用户进行匹配,最终得到两组‘同质’人群。
    在这里插入图片描述
    使用20余种用户基本特征,行为特征和家居偏好特征作为混杂因素,应用于匹配模型;
    匹配后数据表明,实验组用户的加购率+24.85%,手淘停留时长+27.68%,客单价+29.53%,带货带宽+5.98%,用户决策周期-5.75%

    通过PSM的分析结论,我们定量的验证了3D样板间对手淘各项指标的正向价值,进一步的,我们想要挖掘背后是什么因素使得3D样板间产生了这些价值:

    展开全文
  • 分别计算人员与岗位的满意,在稳定约束的基础上,构建以人员与岗位的满意最大、占有申请者回到原岗位的人数最少为目标的多目标优化模型,通过改进的和声搜索算法求解模型,获得稳定匹配结果;最后,通过算例表明所...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 292,243
精华内容 116,897
关键字:

性匹配度