⓵R语言-17决策树
是一个预测模型,分为回归决策树和分类决策树,根据已知样本训练出一个树模型,从而根据该模型对新样本因变量进行预测,得到预测值或预测的分类
从根节点到叶节点的一条路径就对应着一条规则.整棵决策树就对应着一组表达式规则。 叶节点就代表该规则下得到的预测值。 如下图决策树模型则是根据房产、结婚、月收入三个属性得到是否可以偿还贷款的规则。
核心是如何从众多属性中挑选出具有代表性的属性作为决策树的分支节点。
最基本的有三种度量方法来选择属性
1.信息增益(ID3算法)
信息熵
一个信源发送出什么符号是不确定的,衡量它可以根据其出现的概率来度量。 概率大,出现机会多,不确定性小;反之不确定性就大。 不确定性函数f是概率P的减函数。 两个独立符号所产生的不确定性应等于各自不确定性之和,即f(P1,P2)=f(P1)+f(P2),这称为可加性。 同时满足这两个条件的函数f是对数函数,即
在信源中,考虑的不是某一单个符号发生的不确定性,而是要考虑这个信源所有可能发生情况的平均不确定性。 因此,信息熵定义为
决策树分类过程
2、增益率(C4.5算法)
由于信息增益的缺点是:倾向于选择具有大量值的属性,因为具有大量值的属性每个属性对应数据量少,倾向于具有较高的信息纯度。 因此增益率使用【信息增益/以该属性代替的系统熵(类似于前面第一步将play换为该属性计算的系统熵】这个比率,试图克服这种缺点。
g(D,A)代表D数据集A属性的信息增益,
3.基尼指数(CART算法)
基尼指数:
表示在样本集合中一个随机选中的样本分错的概率。 越小表示集合中选中的样本分错的概率越小,也就是说集合的纯度越高。
假设集合中有K个类别,则:
说明:
1.pk表示选中的样本属于k类别的概率,则这个样本分错的概率是(1-pk)
2.样本集合中有K个类别,一个随机选中的样本可以属于这k个类别中的任意一个,因而对类别就加和
3.当为二分类是,Gini(P)=2p(1-p)
基尼指数是将属性A做二元划分,所以得到的是二叉树。 当为离散属性时,则会将离散属性的类别两两组合,计算基尼指数。
举个例子:
如上面的特征Temperature,此特征有三个特征取值:“Hot”,“Mild”,“Cool”,
当使用“学历”这个特征对样本集合D进行划分时,划分值分别有三个,因而有三种划分的可能集合,划分后的子集如下:
对于上述的每一种划分,都可以计算出基于划分特征=某个特征值将样本集合D划分为两个子集的纯度:
决策数分类过程
先剪枝:提前停止树的构建对树剪枝,构造树时,利用信息增益、统计显著性等,当一个节点的划分导致低于上述度量的预定义阈值时,则停止进一步划分。 但阈值的确定比较困难。
后剪枝:更为常用,先得到完全生的树,再自底向上,用最下面的节点的树叶代替该节点
CART使用代价复杂度剪枝算法:计算每个节点剪枝后与剪枝前的代价复杂度,如果剪去该节点,代价复杂度较小(复杂度是树的结点与树的错误率也就是误分类比率的函数),则剪去。
C4.5采用悲观剪枝:类似代价复杂度,但CART是利用剪枝集评估代价复杂度,C4.5是采用训练集加上一个惩罚评估错误率
决策树的可伸缩性
ID3\C4.5\CART都是为较小的数据集设计,都限训练元祖停留再内存中,为了解决可伸缩性,提出了其它算法如
RainForest(雨林):对每个属性维护一个C集,描述该结点的训练元组,所以只要将C集放在内存即可
BOAT自助乐观算法:利用统计学,创造给定训练数据的较小样本,每个样本构造一个树,导致多颗树,再利用它们构造1颗新树。 优点是可以增量的更新,当插入或删除数据,只需决策树更新,而不用重新构造。
决策树的可化掘
PBC系统可允许用户指定多个分裂点,导致多个分支,传统决策树算法数值属性都是二元划分。 并且可以实现交互地构建树。
rpart是采用cart算法,连续型“anova”;离散型“class”;
2)进行剪枝的函数:prune()
3)计算MAE评估回归树模型误差,这里将样本划分成了训练集和测试集,testdata为测试集
rt.mae为根据训练集得到的决策树模型对测试集因变量预测的结果与测试集因变量实际值得到平均绝对误差
⓶2019-05-17
广义矩估计(GeneralizedMethodofMoment,简称GMM)是一种构造估计量的瞎雀方法,类似于极大似然法(MLE)。 MLE通过假设随机变量服从特定的分布,进而将待估参数嵌入似然函数,通过极大化联合概率密度函数得到参数的估计值。 GMM则是以随机变量遵循特定矩的假设,而不是对整个分布的假设,这些假设称为矩条件。 这使得GMM比MLE更稳健,但会导致估计量的有效性有所降低(估计出的标准误比较大)。
其中,N表示样本数,表示y的第i个观察值。 此处,估计量称为矩估计量(themethodofmomentsestimator),简称MM估计量。 这是因为,该估计量的构造以母体矩条件(populationmomentcondition)为基础,进而用其样本矩条件(依赖于我们使用的数据)做等价代换。 因为我们从总体矩条件开始,然后运用类比原理得到一个依赖于观测数据的估计量。
我们想要估计随机变量的均值,即,其中“母体矩条件(PMC)”为:,为从这个母体中随机抽取的一组样本观察值,则对应的“样本矩条件(SMC)”为。 因此,我们可知母体矩条件的样本均值估计为:,样本矩条件的样本均值估计为:。
例子:自由度为k的随机变量的均值为k,方差为2k,因此两个母体矩条件(PMC)如下:
(1a)
(1b)
这个母体中随机抽取的一组样本观察值,对应的样本矩条件(SMC)为:
(1a)
(1b)
矩估计法是用样本的k阶矩作为总体的k阶矩的估计量,建立含待估计参数的方程,从而可解出待估计参数。
一般地,不论总体服从什么分布,总体期望与方差存在,则根据据估计法,它们的矩估计量分别为:
OLS估计是矩估计的一种形式。 OLS估计的公式为:,其中与不相关,则有。
因此,,其中是母体矩条件,对应的样本矩条件为磨举早:,求解即可得到OLS估计下的。
工具变量法(IV)是为了解决一个违反经典假设问题而设计的,假设条件是:解释变量与随机扰动项不相关。 如果出现了违反该假设的问题,就需要找一个和解释变量高度相关的、同时和随机扰动项不相关的变量。 要注意的问题是,工具变量的设定除了上述两个条件以外,工具变量的个数至少要大于或者等于解释变量的个数,常数项是默认的工具变量,和随机扰动项不相关的解释变量也可以作为工具变量。
工具变量是矩估计的一种形式。 假设公式为:,根据公式可得:,取得工具变量为,其中,得到,则,为母体矩条件,对应的样本矩条件为:,求解即可得到工具变量估计下的。
GMM估计中,假设待估参数的个数为k,矩条件的个数为l:
1.恰好识别(justorexactlyidentified):当k=l时,即待估参数的个数等于矩条件的个数;
2.过度识别(overidentified):当k<l时,即待估参数的个数小于矩条件的个数。
GMM是矩估计(MM)的推广。 在恰好识别情况下,目标函数的最小值等于0,GMM估计量与MM估计量等价;然而在过度识别情况下,MM不再适用,GMM可以有效地组合矩条件,使GMM比MM更有效。 在GMM估计中,答母体矩条件为:,样本矩条件为:,通过求解样本矩条件得到GMM均值估计:。
两阶段最小二乘法其本质上是属于工具变量,回归分两个阶段进行,因此而得名。 具体机理是:
第一步,将结构方程先转换为简化式模型(约简型方程),简化式模型里的每一个方程都不存在随机解释变量问题,可以直接采用普通最小二乘法进行估计。
第二步,由第一步得出的的估计量替换。 该方程中不存在随机解释变量问题,也可以直接用普通最小二乘法进行估计。
例子:一般IV回归模型为:
(a)
其中:
以单内生回归变量的2SLS为例,当只有一个内生回归变量X和一些其他的包含的外变量时,感兴趣的方程为:(b),其中同前可能与误差项相关,但与误差项不相关。
2SLS的总体第一阶段回归将X与外生变量W和工具变量(Z)联系在了一起:
(c)
其中为未知回归系数,为误差项。
在2SLS的第一阶段中,可用OLS估计(c)式中的未知系数,并记由该回归得到的预测值为。 在2SLS的第二阶段中,用OLS估计用第一阶段的预测值替换后的(b)式。 也就是用OLS估计关于,的回归。 得到的估计量就是2SLS估计量。
当存在多个内生回归变量时,除了每个内生回归变量都需要自己的第一阶段回归以外,2SLS的算法是类似的。 其中每个内生回归变量的第一阶段回归形式同(c)式,即因变量是某个X,回归变量是所有工具变量(Z)和所有包含的外生变量(W)。 所有这些第一阶段回归一起得到了每个内生回归变量的预测值。
在2SLS的第二阶段中,用OLS估计内生回归变量()分别用其预测值()替换后的(a)式。 得到的估计量即为2SLS估计量。
上面提到了,只有恰好识别和过度识别才能用IV方法估计。 假设待估参数的个数为k,矩条件的个数为l。 当时,称为“恰好识别”,当时,称为“过度识别”。
一个很重要的命题是:只有过度识别情况下才能检验工具变量的外生性,而恰好识别情况下无法检验。 具体思路如下:工具变量的外生性意味着它们和不相关。 这表明工具变量和近似不相关,其中为基于所有工具变量的2SLS回归估计残差(由于抽样变异性因此是近似的而不是精确地,注意到这些残差是利用X值而不是用其第一阶段的预测值得到的。 )于是,如果工具变量事实上是外生的,那么关于工具变量和包含的外生变量回归中工具变量的系数都应该等于零,而这个假设是可以检验的。
过度识别约束检验(J统计量),又称为Sargan统计量。 令为来自(a)式2SLS估计的残差。 利用OLS估计下面的回归系数:
(d)
其中为回归误差项。 令F表示检验假设的同方差适用F统计量。 则过度识别约束检验统计量为。 如果是同方差的,则在所有工具变量都是外生的原假设下,服从分布,其中为“过度识别度”,也就是工具变量的个数减去内生回归变量的个数。
在Hansen、Singleton(1982)的经典文章中,他们基于消费的资产资本定价模型分析了资产随时间的移动。 在他们的非线性理性预期模型的一个稍微简单的版本中,代表性最大化的期望贴现寿命效用为:,其中受到的预算约束为:,,其中为时刻的阶段性消费,,,是相应到期的价格、数量和资产收益,是实际工资并且是时刻t的代理信息集。 Hansen和Singleton使用一个恒定的相对风险厌恶效用函数,因此优化问题的一阶条件是,这个看起来像一个母体矩条件但是目前的问题是我们有两个参数,只有一个矩条件。 但是,对任意向量,通过一个迭代的条件期望参数Euler方程变成。
因此,从理论上讲,该模型是通过时刻t已知的任何代理变量来识别的,比如或者,并且能够利用GMM方法一致的估计。 与此相反,该模型的极大似然估计需要精确地指定变量的条件分布和大量的数值积分,这些都是计算上的负担。
(1)在stata中,gmm的一般命令形式为:
gmm([reqname1:]rexp_1)([reqname2:]rexp_2)…[if][in][weight][,options]
其中:
1.reqname_j代表第j个剩余方程的表达式
2.rexp_j是第j个残差方程的可替换表达式
(2)在stata中,gmm的矩估计命令形式为:
gmmmoment_pro[if][in][weight],
{equations(namelist)|nequations(#)}
{parameters(namelist)|nparameters(#)}[options]
[program_options]
1.moment_prog是矩估计评估形式
(1)和(2)中的options选项为:
1.derivative([reqname|#]/name=dexp_jk)指定reqname(或#)对参数名的导数;可指定多于一次。
2.Instruments
3.Weightmatrix
4.SE/Robust
5.Reporting
6.Optimization
在对gmm命令的一般形式有了解之后,此处举个简单的例来进行gmm的分析。 以stata自带的数据auto.dta为例,进行以下的GMM实验:
(1)简单线性回归的GMM
stata作为:
sysuseauto,clear
gmm(mpg-{b1}*gear_ratio-{b2}*turn-{b0}),instruments(gear_ratioturn)
结果如下:
(2)利用线性组合的简单线性回归GMM
stata作为:
gmm(mpg-{xb:gear_ratioturn}-{b0}),instruments(gear_ratioturn)
结果如下:
(3)两阶段最小二乘(与ivregress2sls相同)
最小二乘法的stata作为:
ivregress2slsmpggear_ratio(turn=weightlengthheadroom)
结果为:
相应GMM的stata作为:
gmm(mpg-{b1}*turn-{b2}*gear_ratio-{b0}),instruments(gear_ratioweightlengthheadroom)onestep
结果如下:
(4)两步GMM估计(与ivregressGMM相同)
两步GMM估计的stata作为:
ivregressgmmmpggear_ratio(turn=weightlengthheadroom)
或者gmm(mpg-{b1}*turn-{b2}*gear_ratio-{b0}),instruments(gear_ratioweightlengthheadroom)wmatrix(robust)
当然GMM更有名的应用是在动态面板的估计上,我们可以使用xtabond估计动态面板。 以stata自带的数据abdate.dta为例,进行实验:
webuseabdata,clear
xtabondnL(0/1).wL(0/1).k,lags(1)noconstantvce(robust)
结果如下:
用GMM的形式可以表示为:
gmm(D.n-{rho}*LD.n-{xb:D.wLD.wD.kLD.k}),
xtinstruments(n,lags(2/.))instruments(D.wLD.wD.kLD.k,noconstant)
deriv(/rho=-1*LD.n)deriv(/xb=-1)winitial(xtD)onestep
结果如下:
在计量经济学方法研究以及应用中,一般需要恰好识别或者过度识别,虽然过度识别的情况比较多一些,另外这是进行工具变量法的必要条件;若是出现过度识别,则需要进行过度识别检验,也称为Sargen-Baseman检验。
该假设的条件为所有有效的工具变量的个数与内生解释变量一样多,或者说是这个所有的工具变量都是外生的。
GMM中过度识别的命令为estatoverid。
若是Sargen-Baseman检验的统计量对应的p值大于0.05,则认为所有的工具变量都是外生的,也就是有效的,反之则是无效的。 (原假设是所有工具变量是外的,若是p值小于0.05,则拒绝原假设)
此处用stata自带数据auto.dta来进行试验:
sysuseauto,clear
ivregressgmmmpggear_ratio(turn=weightlengthheadroom),wmatrix(robust)small
estatoverid
结果如下:
回归时的结果为
过度识别检验(Sargen-Baseman检验)的结果
根据结果可知,Sargen-Baseman检验统计量对应的p值大于0.05,所有的工具变量都是外生有效的。