如何使用SPSS进行PSM操作

Python042

如何使用SPSS进行PSM操作,第1张

安装SPSS 18.0统计软件——我提供的几个小工具都是针对SPSS 18.0的,所以建议安装这个版本;

到这个链接下载工具包,解压缩,获得3个文件(R-2.8.1-win32.exe,PASWStatistics_RPlugIn_1802_win32.exe,psmatching_2.spd),以下都用得着。注:这3个文件对应的是18.0版本的SPSS,如果你使用的是更高版本的SPPS,请在如下步骤的“原始下载链接”中下载对应的文件);

运行R-2.8.1-win32.exe(原始下载链接),安装R for Windows;

运行PASWStatistics_RPlugIn_1802_win32.exe(原始下载链接),安装SPSS的R语言插件;

打开SPSS软件,在菜单里操作:Utilities – Custom Dialogs – Install Custom Dialog (实用程序 – 定制对话框 – 安装自定义对话框),选中psmatching_2.spd文件(原始下载链接)以安装。

重启SPSS,在Analysis(分析)菜单里就可以看到PS Matching了。

Python与R的区别:

虽然R语言更为专业,但Python是为各种用例设计的通用编程语言。如果你第一次学编程,会发现Python上手更容易,应用范围也较广,如果你对编程已经有了一定的基础,或者就是以数据分析为中心的特定职业目标,R语言可能会更适合你的需求,Python和R也有很多相似之处,两者都是流行的开源编程语言,都得到了广泛的支持。

Python是近几年增长非常快的编程语言,是面向对象的,它为项目提供了稳定性和模块化,为Web开发和数据科学提供了灵活的方法,掌握Python是程序员在商业、数字产品、开源项目和数据科学以外的各种Web应用程序中工作所必需的技能。

R是一种特定于领域的语言,用于数据分析和统计,它使用统计学家使用的特定语法,是研究和学术数据科学世界的重要组成部分,R遵循开发的过程模型,没有将数据和代码分组,比如面向对象的编程,而是将编程任务分解为一系列的步骤和子程序,这些过程使可视化操作变得更加简单。

学习Python的三个理由:

1、对初学者是友好的,它使用了一种逻辑和易于接近的语法,使识别代码字符串更加容易,减少了学习困难和一些挑战。

2、Python是多用途的,并不局限于数据科学,它还能很好的处理基于web的应用程序,并且支持多种数据结构,包括使用SQL的数据结构。

3、Python是可伸缩的,比R语言运行速度更快,可以和项目一起增长和扩展,提供了必要的有效工作流程,使工作得以实现。

学习R的三个理由:

1、R为统计而建,R使特定类型的程序构建和交流结果变得更加直观,统计学家和数据分析人员用R语言,会更容易使用标准机器学习模型和数据挖掘来管理大型数据集。

2、R是学术性的:在学术界工作,R几乎是默认的。R非常适合机器学习的一个子领域,称为统计学习。任何有正式统计背景的人都应该识别R的语法和结构。

3、R对分析是直观的,它还提供了一个非常适合于科学家使用的数据可视化类型的强大环境。

倾向性得分匹配是一类基于反事实理论的数据预处理方法,在医学和政策研究中被广泛应用。R中有几个很优秀的包可用于开展倾向性得分匹配,而其中功能较强、知名较广、使用方便的当属Matchit,这个包与cobalt包联合使用,基本能完成PSM全流程分析。

下面我们用一个简单的例子,来演示一下如何用上述两个包完成一次倾向性得分匹配。我们用到的数据集是Matchit包自带的lalonde数据,此套数据用来评估某项就业政策对个人收入的影响。

我们首先尝试用最近邻方法对数据进行匹配(这是matchit函数采用的默认方法),随后用cobalt包的bal.tab方法来评估匹配的效果。

从结果来看匹配效果并不好,所有协变量的Diff.Adj都不够显著。下面再把倾向性得分的核密度图画出来观察。

可见匹配对于数据分布的改善并不多,最近邻匹配对于lalonde数据不是很有效。接下来我们用一些比较高级的方法来进行匹配。

情况确实有所改善,且匹配后的倾向性得分分布大体重合。

完成倾向性得分匹配后,如何提取匹配好的数据呢,还有如果我们对bal. plot 画的图不满意,或图像不符合杂志社的要求,我们该怎样利用匹配结果自己画图呢。这就需要我们深入解析matchit函数的返回值了,上述工作才能算是learn the hard way。这些都留待我们下回分解。