精华内容
下载资源
问答
  • 由于《An Introduction to Statistical Learning with R》...这些方法会在后面的模拟实验以及真实数据中进行应用,并且比较书上传统的方法与下述三种方法的真实变量筛选效果。 首先介绍将L0L0L^0范数与L1L1L^1范...

    由于《An Introduction to Statistical Learning with R》书中的方法书中的方法都是一些比较基础的方法,在做模拟实验以及真实超高维数据时,会出现很多局限性。因此本文后半部分介绍了课本上未提及到的一些方法。这些方法会在后面的模拟实验以及真实数据中进行应用,并且比较书上传统的方法与下述三种方法的真实变量筛选效果。

    首先介绍将L0L^0范数与L1L^1范数相结合的SCAD方法。


    SCAD(Smoothly Clipped Absolute Deviation)

    与岭回归相比,SCAD降低了模型的预测方差,与此同时与Lasso相比,SCAD又缩小了参数估计的偏差,同时它还有很多前面算法所不具备的优秀性质,因而受到了广泛的关注。

    SCAD将前面博客提到的gλ(β)=λf(β)g_\lambda(\beta) = \lambda f(\beta),变为如下形式:
    gλ(β)={λβj,0βj<λ,(βj22aλβj+λ2)/(2a2),λβj<aλ,(a+1)λ2/2,βjaλ.g_\lambda(\beta) = \left\{ \begin{array}{ll} \lambda |\beta_j|, & 0 \leq |\beta_j| < \lambda,\\ -(|\beta_j| ^ 2 - 2a \lambda |\beta_j| + \lambda^2)/(2a-2), & \lambda \leq |\beta_j| < a\lambda,\\ (a+1)\lambda^2 / 2, & |\beta_j| \geq a \lambda. \\ \end{array} \right.

    其中,λ0,a>2\lambda \geq 0, a>2,Fan和Li\cite{article11} 建议a取3.7。特别地,若设计矩阵XX正交时,SCAD法参数估计显式表达式如下:
    β^SCAD={sign(βj^)βj^λ),0βj<2λ,((a1)βj^sign(βj^)aλ)/(a2),2λβj^<aλ,βj^,βj^aλ. \hat{\beta}^{SCAD} = \left\{ \begin{array}{ll} sign(\hat{\beta_j}) |\hat{\beta_j}| - \lambda ), & 0 \leq |\beta_j| < 2 \lambda,\\((a - 1)\hat{\beta_j} - sign(\hat{\beta_j})a\lambda)/(a-2), & 2\lambda \leq |\hat{\beta_j}| < a\lambda,\\ \hat{\beta_j}, & |\hat{\beta_j}| \geq a \lambda. \\\end{array} \right.

    这里写图片描述

    上图说明了L0L^0惩罚,L1L^1惩罚,与SCAD三者惩罚之间的差别。可以看出,L0L^0方法只会进行变量筛选,不会进行压缩,L1L^1(LASSO)既会进行变量筛选,也会对系数继续一定的调整。而SCAD可以从图中很明显的其结合了两种方法,对系数较大的变量不进行惩罚,对系数较少的进行压缩或者删去,因此这种方法既可以筛选变量,也有着Oracle的性质,使其预测效果和真实模型别无二致。

    SCAD虽然有相应的迭代算法,但是由于其复杂度高,所以计算速度相对较慢。另外老师上课讲过的将L1L^1L2L^2范数相结合的Elastic Net方法\cite{article16},也是基于前面的一种衍生方法,本文不再进行阐述。


    SIS(Sure Independence Screening)

    当今大数据时代,维数远大于样本量的情况已经非常多见。尽管前面所提出的方法,而且也能一定程度上解决髙维数据问题。但当遇到超高维数据,即维数P无穷大时,上述的算法也会出现问题。针对这类超高维问题,Fan和Lv\cite{article12} 提出了SIS的方法。

    针对线性回归模型(2),按照SIS的思想,首先YY为中心化向量,计算YY与每一个自变量xix_i的相关系数,记为
    ω=XTY,\omega = X^T Y ,
    其中 ω=(ω1, ,ωp)T\omega = (\omega_1,\cdots,\omega_p)^T,若ωi\omega_i越大,说明xix_iYY相关性越强。所以,可以根据ωi|\omega_i|的大小来进行变量选择。对任意的γ(0,1)\gamma \in (0,1),对ωi|\omega_i|进行从大到小排序,然后取其一个子集

    Mγ={1ip:ωi是前[γn]个最大的},M_\gamma = \lbrace 1 \leq i \leq p:|\omega_i| \text{是前}[\gamma n] \text{个最大的} \rbrace,

    其中,nn是样本数,[γn][\gamma n]γn\gamma n的整数部分,进而保证了[γn]<n[\gamma n] < n,与之对应的自变量则入选模型。如果觉得选择[γn][\gamma n]不便于确定,可以选择n1n - 1n/lognn/\log n

    而关于相关系数,可以选用自己认为合适的。本文后面的模拟选用传统的Pearson相关系数,以及近几年比较火的可用于检验独立的无参数假设的距离相关性(Distance Covariance),下面其计算公式:

    距离相关性(Distance Covariance)

    aj,k=XjXk,j,k=1,2,,n,bj,k=YjYk,j,k=1,2,,n,\begin{aligned} a_{j,k}&=\|X_{j}-X_{k}\|,\qquad j,k=1,2,\ldots ,n,\\b_{j,k}&=\|Y_{j}-Y_{k}\|,\qquad j,k=1,2,\ldots ,n, \end{aligned}
    其中:||\cdot||表示Euclidean范数(欧几里得距离),有:
    Aj,k:=aj,kajak+a,Bj,k:=bj,kbjbk+b, A_{j,k}:=a_{j,k}-{\overline {a}}_{j\cdot }-{\overline {a}}_{\cdot k}+{\overline {a}}_{\cdot \cdot },\qquad B_{j,k}:=b_{j,k}-{\overline {b}}_{j\cdot }-{\overline {b}}_{\cdot k}+{\overline {b}}_{\cdot \cdot },

    其中:aj\overline {a}_{j\cdot}表示由aj,ka_{j,k}组成的矩阵,第jj行均值,ak\overline {a}_{\cdot k} 表示第kk列均值,以及a\overline {a}_{\cdot \cdot }XX样本中所有数取平均。bb的符号标记同aa一样,则样本的距离相关性定义为:
    dCovn2(X,Y):=1n2j=1nk=1nAj,k Bj,k.\text{dCov}_{n}^{2}(X,Y):={\frac {1}{n^{2}}}\sum _{j=1}^{n}\sum _{k=1}^{n}A_{j,k}\,B_{j,k}.


    利用随机森林进行变量筛选

    其实使用随机森林进行变量筛选是一个比较小众的方法,但其实代表了一类方法。模型本身是用于预测的模型,但在预测过程中,可以对变量重要性进行排序,然后通过这种排序来进行变量筛选。这类方法其实还适用于最近比较火的xgboost,lightgbm等一些非常流行的基于树的机器学习算法,在实际应用中,效果都非常突出。

    本文只以较为基础的随机森林中的变量筛选为例:

    变量重要性评判用Gini指数为标准,针对一棵树中的每个节点kk,我们都可以计算一个Gini指数:
    Gk=2p^k(1p^k),G_k = 2 \hat{p}_k (1 - \hat{p}_k),
    其中p^k\hat{p}_k表示样本在节点kk属于任意一类的概率估计值。

    一个节点的重要性由节点分裂前后Gini指数的变化量来确定:
    Ik=GkGk1Gk2,I_{\triangle k} = G_k - G_{k1} - G_{k2},
    Gk1G_{k1}Gk2G_{k2}分别表示GkG_k产生的子节点。针对森林中的每棵树,都用上述的标准来递归产生,最终随机抽取样本和变量,产生森林,假设森林共产生TT棵树。

    森林中,如果变量XiX_i在第tt棵树中出现MM次,则变量XiX_i在第tt棵树的重要性为:
    Iit=j=1MIj.I_{it} = \sum_{j = 1}^M I_{\triangle j}.

    XiX_i在整个森林中的变量重要性为:
    I(i)=1nt=1TIit.I_{(i)} =\frac{1}{n} \sum_{t = 1}^T I_{it}.

    最终我们根据变量重要性来选择变量,选择的个数可以用SIS中的方法,选取n1n - 1n/lognn/\log n个。

    至此,变量筛选的一些方法已进行了简要的概述,包括课本中的以及一些延伸的方法。下面将用模拟实验以及真实数据,来对这些方法进行比较分析。


    原始对偶激活集算法(PDAS)

    原始对偶激活集算法(Primal Dual Active Set,PDAS)是一个非常新的方法,但做的事情是最优子集选择的事情。其主要思想是引入激活集,对所有的β\beta进行批量迭代更新。这个方法的优势在于,可以处理超高维数据(上万维),而最优子集选择一旦超过了50维,基本就完全没办法进行运算。后面我们也将采用PDAS来进行模拟。

    其算法如下:

    1. 给定某固定的TT,初始的β0\beta^0d0=g(β0)h(β0)d^0=-\dfrac{g(\beta_0)}{h(\beta_0)},根据β0\beta^0d0d^0得出A0\mathcal{A}^0I0\mathcal{I}^0。令k=0k=0
    1. For k=0,1,2,,Kmaxk=0,1,2,\ldots,K_{max}, do
      (2.a) 更新(βk+1,dk+1)(\beta^{k+1},d^{k+1}):
      {βIkk+1=0dAkk+1=0βAkk+1=arg min l(βAkY,XAk)dIkk+1=g(βIkk)h(βIkk) \left\{ \begin{array}{ll} \beta_{I^k}^{k+1}=0\\ d_{A^k}^{k+1}=0\\ \beta_{A^k}^{k+1}=arg\,min\,l(\beta_{A^k}|\textit{Y},\textit{X}_{A^k})\\ d_{I^k}^{k+1}=-\dfrac{g(\beta_{I^{k}}^{k})}{h(\beta_{I^{k}}^{k})} \end{array} \right.
      (2.b) 通过以下方式计算新的激活集Ak+1\mathcal{A}^{k+1}和非激活集Ik+1\mathcal{I}^{k+1}:
      Ak+1={j:h(βjk+1)βjk+1+djk+1h(βjk+1)βjk+1+djk+1T,}, A^{k+1}=\lbrace{j}:\sqrt{-h(\beta_{j}^{k+1})}\vert\beta_{j}^{k+1}+d_{j}^{k+1}\vert\geqslant\sqrt{-h(\beta_{j}^{k+1})}\Vert\beta_{j}^{k+1}+d_{j}^{k+1}\Vert_{T,\infty}\rbrace,
      Ik+1=(Ak+1)c I^{k+1}=(A^{k+1})^c
      (2.c) 如果Ak+1=Ak\mathcal{A}^{k+1}=\mathcal{A}^{k},则停止迭代;否则令k=k+1k=k+1,继续(2.a)和(2.b)步。
      (2.d) 输出β=βk+1\beta=\beta^{k+1}

    后面我们将对前面提及的一些算法进行模拟,以及真实案例操作。传送门:一些变量筛选方法——4、模拟实验

    展开全文
  • 原标题:SPSS分析技术:回归模型的自变量筛选方法;欢迎关注天善智能微信公众号,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区。 对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的...

    原标题:SPSS分析技术:回归模型的自变量筛选方法;

    欢迎关注天善智能微信公众号,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区。 对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入头条数据爱好者交流群,数据爱好者们都在这儿。

    基础回顾

    上篇文章,我们以两个自变量的分析案例为例,介绍了如果使用SPSS进行多重线性分析,如果是新朋友,可以点击下面的链接回顾:数据分析技术:多重线性模型;也难也不难的建模从这里开始吧!

    回归模型的种类是非常多的,可以是线性,也可以非线性的,所以用多重线性回归模型作为建模知识介绍的开始是简单和易于理解的。今天我们要介绍的是在多重线性回归模型中,自变量进入模型的方法。我们以上篇文章的案例背景为例,娱乐公司在某个城市投资新的KTV连锁店之前,只考虑到影响营业额的因素有年轻人口数量和该城市的人均收入水平两个自变量,如果考虑的影响因素更多,比如店址的人流量,入店消费的平均值等因素,那么如何判断所有的自变量是否适合加入模型呢?这就需要用到自变量筛选方法。

    研究者在收集资料时,常常害怕遗漏信息,所以总是尽可能多的收集各种与研究有关的资料,这样的做法虽然能够避免信息的丢失,但是也带来了调查成本居高不下,建立回归模型无所适从,不知哪些自变量需要引入,哪些自变量应该舍弃等问题。以上这些问题可以在一定程度上用变量筛选的方法解决。此外,需要强调的是,一个好的回归模型的产生一定是建立在分析者十分熟悉研究背景的基础之上的,如果得到的回归模型在专业和研究环境内无法解释和应用,那这样的模型就是“乐色”了。

    自变量筛选方法

    常用的自变量筛选方法有两种:1、残差平方和(预测值与真实值的差值平方)准则;2、回归系数的显著性检验。前者是从整个回归模型角度出发,考虑引进一个新的自变量前后,残差的变化情况,从而确定该自变量的效率;后者是对每个自变量的回归系数做显著性检验,通过则说明自变量有意义。它们的考虑角度不同,作用确实殊途同归的。

    SPSS提供的自变量进入回归方程的方法有以下几种:输入、步进、除去、后退和前进。

    输入法,在英文版本里称为Enter,是SPSS默认的自变量进入回归模型的方式。它将自变量框中所有的自变量都纳入到回归模型中,不涉及自变量筛选问题。

    前进法(Forward),它是一种观前不顾后的自变量筛选方法。首先分析N个自变量与因变量的相关关系,假设只有n个自变量与因变量的相关关系是显著的;那么首先将显著性最大的自变量纳入到回归模型中。第二步是在已经引入自变量X1的基础上,分别检验自变量组合(X1+X2),(X1+X3),……,(X1+Xn)的n-1个回归模型,将检验概率值最小且有统计学意义的那个自变量引入模型,如果没有自变量组合有统计学意义,则运算过程终止。反复执行这个过程,直至模型外的自变量均无统计学意义为止。

    除去法(Remove),规定为Remove的自变量被强制剔除出模型。但SPSS会给出如果将其引入模型的参数估计及检验结果。

    后退法(Backward),它与前进法的过程相反。首先对因变量拟合包含全部N个自变量的线性回归模型,考察其中无统计学意义的n个自变量,将其中检验概率值最大者首先剔出模型,如果所有的自变量均有统计学意义,则运算过程终止。第二步,对因变量拟合包含剩下的n-1个自变量的线性回归模型,同样剔除检验概率值最大且无统计学意义的变量。如此反复进行,直至模型中剩余的所有自变量均有统计学意义为止。

    步进法(Stepwise),也称逐步回归法,它是前进法和后退法的结合。步进法的前两步与前进法的前两步相同,得到X1+Xi的,包含两个自变量的回归模型。第三步是考察第一步引入模型的自变量X1是否仍有统计学意义,若没有统计学意义,则将其剔出模型,拟合包含第二步引入模型的自变量Xi与其它n -2个自变量的模型,将其中检验概率值最小且有统计学意义的自变量引入模型,若n-2个模型都没有统计学意义,则运算过程终止。如果第一步引入的自变量X1有意义,那么拟合的是X1+Xi+Xj的n-2个模型,将其中检验概率值最小且有统计学意义的自变量引入模型,若n-2个模型都没有统计学意义,则运算过程终止。如此反复,直到模型外的自变量都没有统计学意义,而模型内的自变量都有统计学意义。从步进法的过程来看,该方法是一种观前顾后的“谨慎”方法,每向模型中引入新自变量,还要考察之前引入的自变量是否依旧有意义,它是我们最常用的自变量筛选方法。

    案例分析

    本案例来自外国某篇研究不同种类土地使用面积(英亩)与固体垃圾排放量(吨)之间的关系。纳入考虑的土地使用类型有:工业区土地面积的大小,钢铁制造企业用地面积,运输及批发商业用地面积,零售业用地面积以及餐馆与宾馆用地面积这五种。用回归分析模型来研究这五种土地使用面积与固体垃圾排放量之间的关系。

    (例题数据文件已经上传到QQ群,群号请见文章底部温馨提示)

    分析步骤

    1、选择菜单【分析】-【回归】-【线性】。因为需要建立的是固体垃圾产生量与各种用途的土地面积之间的多重线性模型,所以将固体垃圾产生量选为因变量,将各种用途的土地面积选为自变量。

    2、在自变量筛选方法里选择最为稳妥的步进法。然后点击选项按钮,可以看到在步进法的条件里,自变量进入和除去的概率值分别是0.05和0.1,也就是说自变量进入的条件比删除的条件更为严格。然后点击确定,输出结果。

    结果解释

    1、模型摘要。从分析结果可知,采用步进法,最后拟合出了四个多重线性模型。在表格下方列出了四种模型的自变量数量和类型。通过比较调整后的R方(排除了自变量的影响),可知,最后一种模型的R方值是最高的。接下来,我们需要再参考对模型和回归系数的显著性检验结果,从而确定那种模型是最好的。

    2、下表是四种模型的方差检验解雇,从结果可知,四种模型的显著性都小于0.01,达到显著性水平,说明四种模型都是有意义的。

    3、下表是对每种模型的回归系数的显著性检验结果。从结果可知,所有回归系数的显著性检验结果都小于0.01,是有意义的。

    4、下表是每个模型中,被排除在外的自变量的偏回归系数,偏相关系数和共线性统计容差的结果,这些结果可以帮助我们判断自变量之间是否存在共线性关系。

    以上分析过程只是建立多重线性模型的第一步,下面对这些模型进行修正和共线性判断,才能最终得到最合理的多重线性回归模型,由于回归模型的修正工作内容较多,将放在下一篇文章中具体介绍。大家需要注意,无论是什么回归模型的建立不是一蹴而就的工作,而是一个不断尝试建立-检验-修正-检验-确定的复杂过程,只有经过这样过程建立的回归模型才是合理而可用的。此外,生活和工作检验在模型的建立过程中同样发挥了重要的作用,只有对因变量的影响因素(自变量)十分的了解,才有建立模型的素材。

    转载请保留以下内容:

    本文来源自天善社区老谢老师的博客(公众号)。

    原文链接: https://ask.hellobi.com/blog/lifestatistics/7893返回搜狐,查看更多

    责任编辑:

    展开全文
  • 一些变量筛选方法——1、综述

    万次阅读 多人点赞 2018-05-11 00:32:32
    由于《An Introduction to Statistical Learning with R》课程论文需要我们进行对一些变量筛选方法与降维的方法进行综述,所以这里将分几个部分,将学到的一些变量筛选方法写在博客之中。写成一篇长博客看得比较吃力...

    写在最前

    由于《An Introduction to Statistical Learning with R》课程论文需要我们进行对一些变量筛选方法与降维的方法进行综述,所以这里将分几个部分,将学到的一些变量筛选方法写在博客之中。写成一篇长博客看得比较吃力,写的也比较慢,所以这里慢慢一部分一部分的来写。


    综述

    高维统计问题来自科学研究和技术发展的多个领域,在科学与人文等不同领域中变得越来越重要,从基因组学,生物医学再到经济学,金融学等。它体现在统计学中的许多当代问题中(Hastie,Tibshirani和Friedman)。例如,在使用基因微阵列(Microarray)或蛋白质组学数据(Proteomics Data)中,数以千计的基因数据以及分子或离子的表达作为自变量,而在当考虑交互时,维度则会更为迅速的增长,导致更高的维度。此外,高维数据还包括高分辨率图像数据,语音数据,文本数据,金融数据,纵向数据等等。 Donoho 说明了高维数据分析的发展需要,并提出“维度诅咒”。 Fan和Li 在如今对高维度的统计挑战进行了全面的综述。

    针对一个统计方法,统计准确性、模型可解释性和计算复杂性是衡量其好坏的三个重要指标。在传统的研究中,观测值的数量远大于变量或参数的数量。在这种情况下,三个方面都不需要牺牲别人的效率。然而,当维度pp与样本大小nn相当或更大时,传统方法面临重大挑战。因此,如何设计更有效推断的统计程序,如何使估计的模型可以解释,以及如何使统计程序在计算上高效和稳健成为了非常重要的研究问题(Fan和Lv)。

    高维数据分析需要新的统计方法和理论,变量筛选是高维数据分析的基础。其主要是通过统计方法从繁多的变量中选出对响应变量最大的解释变量,它是统计分析和推断的重要环节。变量筛选的结果好坏直接影响模型的质量,进而对统计分析与预测精度产生极大的影响。

    变量筛选方法自上世纪60年代提出以来就一直是统计学研究的热点课题之一。课本中所提及的变量筛选方法都是一些较为传统与流行方法,其分别是:子集选择法(Subset Selection)系数压缩法(Shrinkage)降维法(Dimension Reduction)子集选择法分为最优子集选择逐步筛选法等,这部分方法依赖于下述模型评判指标:

    • Mallows 提出运用Cp去评估一个以普通最小二乘法(Ordinary Least Square或OLS)为假设的线性回归模型的优良性,从而用于模型选择。
    • 日本学者 Akaike 在1974年基于极大似然方法提出了AIC准则,它建立在熵的概念基础上,可以权衡所估计模型的复杂度和此模型拟合数据的优良性。
    • Schwarz 在Bayes方法的基础上提出BIC准则。与AIC相比,BIC加强了惩罚力度,考虑了样本量,从而在选择变量进入模型上更加谨慎。
    • Seymour Geisser 提出了交叉验证法(Cross validation),利用交叉验证结合最小平方误差的方法,是一种在没有任何前提假定的情况下直接进行参数估计的变量选择方法。

    压缩系数法包括岭回归LASSO等。这两种方法可以用于自变量相关性非常强时,在进行线性回归进行参数估计时,会导致解不可逆,并且十分不稳定。岭回归由于使用L2范数作为限制,所以只能将估计的参数进行压缩,使得模型更加稳定,但不能对变量进行筛选。而LASSO由于使用了L1范数为限制条件,可以使得pp维的回归参数变为稀疏的,也就是使许多分量为零,其中非零分量表示重要变量。

    书上提到的其它降维法则包括了主成分回归以及偏最小二乘回归主成分回归法主要是先对自变量进行主成分分析,然后挑选变化后的,较为重要的一些新变量进行回归。这部分新变量的构造不依赖于因变量,相当于无监督学习。而偏最小二乘回归相当于在主成分回归的基础上再进行适当的添加,新变量的构造不仅依赖于原本的自变量,还受因变量的影响。

    变量筛选的稀疏性原理假定只有少数预测因子对响应做出贡献,这一原则在高维数据分析中经常被采用并被认为是有用的。遵循这个一般原则,已经发展了大量的通过惩罚最小平方或可能性的变量选择方法来估计稀疏模型并同时选择显着变量。上述这几种方法是书上提到的一些方法,但在如今大数据的环境下,在不同的实际应用中,我们很难保证某种方法是绝对最好的。各种各样新的变量筛选方法如雨后春笋般涌现:如利用随机森林进行变量筛选方法,Fan和Li 结合L0与L1范数提出的SCAD (Smoothly Clipped Absolute Deviation)等。尤其是近几年,基因组学等领域的现代应用将数据的维度推向更大规模,数据维度可能随着样本规模呈指数增长。针对这种超高维数据,近几年的文献中又出现了许多方法,例如:Fan 提出的SIS(Sure Independence Screening)。该方法几乎可以确保那些对因变量有显著影响的自变量能够被挑选出来;与此同时筛选的过程是独立的,即单独衡量每个自变量与因变量之间的相关性。

    我们综合了课本上的几种变量筛选的方法,与时下比较流行的变量筛选算法。对这些算法模型进行详细地叙述,并将部分算法进行比较。后面本文会通过R软件编程,使用几组模拟实验实现并比较了若干变量选择方法。最后使用一个实际案例在说明不用变量筛选方法在实际数据中的表现。


    下接:一些变量筛选方法——2、《An Introduction to Statistical Learning with R》上的数据降维方法

    展开全文
  • 基于相关性分析和主成分分析的变量筛选方法 https://www.zybuluo.com/notmylove/note/1508052 主成分分析法指标筛选 既然在课程专题四中讲到主成分分析法,那么这里再进一步介绍主成分分析法,概括起来说,...

     

    基于相关性分析和主成分分析的变量筛选方法

     

     

    https://www.zybuluo.com/notmylove/note/1508052

    主成分分析法 指标筛选


    既然在课程专题四中讲到主成分分析法,那么这里再进一步介绍主成分分析法,概括起来说,主成分分析主要由以下几个方面的作用。

    • 主成分分析能降低所研究的数据空间的维数(降维)。即用研究m维的Y空间代替p维的X空间(m
    • 多维数据的一种图形表示方法(可视化)。我们知道当维数大于3时便不能画出几何图形,多元统计研究的问题大都多于3个变量。要把研究的问题用图形表示出来是不可能的。然而,经过主成分分析后,我们可以选取前两个主成分或其中某两个主成分,根据主成分的得分,画出n个样品在二维平面上的分布况,由图形可直观地看出各样品在主分量中的地位,进而还可以对样本进行分类处理,可以由图形发现远离大多数样本点的离群点。
    • 由主成分分析法构造回归模型。即把各主成分作为新自变量代替原来自变量x做回归分析
    • 用主成分分析筛选回归变量。回归变量的选择有着重的实际意义,为了使模型本身易于做结构分析、控制和预报,好从原始变量所构成的子集合中选择最佳变量,构成最佳变量集合。用主成分分析筛选变量,可以用较少的计算量来选择量,获得选择最佳变量子集合的效果。

    前面三种都挺好理解,这里首先着重分析一下怎么用主成分分析来筛选回归变量

    主成分分析法

    主成分分析( principal component analysis,PCA) ,也称主 
    分量分析或矩阵数据分析。它通过变量变换的方法把相关的变量变为若干不相关的综合指标变量,从而实现对数据集的降维,使得问题得以简化。

    基本原理

    主成分分析的原理可以简单的陈述如下:借助一个正交变换,将其分量相关的原随机向量转化成其分量不相关的新随机变量,使之指向样本点散布最开的n个正交方向,然后对多维变量系统进行降维处理,使之能以一个较高的精度转换成低维变量系统。通常数学上的处理就是将原来n个指标作线性组合,作为新的综合指标,并且这些新的综合指标之间是相互无关的。

    计算过程

    1. 构造样本矩阵 


      其中,表示第组样本数据中的第个变量的值.

       

    2. 对矩阵做标准化变换得矩阵


      其中

       

    3. 对标准化阵求相关系数矩阵

        


      这里有一点需要注意的是:标准化后的矩阵Z的相关系数矩阵(就是每列变量之间的相关系数构成的矩阵)是等于矩阵Z的协方差矩阵。因为前面也有讲过相关系数就是标准化了的协方差(无量纲化)。也就是说.

       

    4. 对相关系数矩阵R求特征值与特征向量 
      解样本相关矩阵R 的特征方程得n个特征值, 并且(为矩阵R是非负定矩阵)

    5. 确定值,使信息的利用率达到 80% 以上。 

      这里就相当于我们专题四讲到的二八分析法了

       

    6. 求出每个特征值的特征向量,并单位化 
      对每个解方程组,得特征向量,再单位化得 

    7. 将标准化后的指标变量转换为主成分 
        


        其中称为第一主成分, 称为第二主成分....

       

    8. 对个主成分进行综合评价 
        对个主成分进行加权求和,即得最终评价值,权数为每个主成分的方差贡献率(单个公因子引起的变异占总变异的比例,说明此公因子对因变量的影响力大小,换句话理解就是这个主成分对信息的利用率).

    基于相关性分析的指标筛选原理

    两个指标之间的相关系数,反映了两个指标之间的相关性。相关系数越大,两个指标反映的信息相关性就越高。而为了使评价指标体系简洁有效,就需要避免指标反映信息重复。通过计算同一准则层中各个评价指标之间的相关系数,删除相关系数较大的指标,避免了评价指标所反映的信息重复。通过相关性分析,简化了指标体系,保证了指标体系的简洁有效,这部分内容在以前的文章中已有介绍。这次通过和主成分分析来结合使用。

    基于主成分分析的指标筛选方法

    因子载荷的原理

    通过对剩余多个指标进行主成分分析,得到每个指标的因子载荷。因子载荷的绝对值小于等于1,而绝对值越是趋向于1,指标对评价结果越重要。

    那么因子载荷怎么得到的呢?其实很简单,过程如下:

    主成分分析的基本模型

    设:是第个主成分(); 是第个特征值对应的特征向量的第个分量;为第个指标的观测值;-主成分的个数;-指标的个数。则第个主成分为 


    含义:第个主成分表示为评价指标的线性组合,反映了原有海选指标的信息。

     

    筛选过程

    根据主成分分析法的计算过程,求得相关系数矩阵的特征值 , 反映了第个主成分所表示的原始信息含量,即所解释原始指标的数据总方差,则主成分表示的原始指标数据的方差贡献率为: 


    主成分表示的原始指标数据的方差贡献率,即为第个主成分所表示的原始信息含量占所有主成分所表示的全部原始信息含量的比例. 
    因子载荷 :
    得到了因子载荷矩阵就可以进行指标筛选了,因子载荷反映指标对评价结果的影响程度,通过主成分上因子载荷的绝对值晒选指标,越大表示指标对评价结果越有显著影响,越应该保留;反之,越应该删除。通过对相关性分析筛选后的指标进行主成分分析,得到每个指标的因子载荷,从而删除因子载荷小的指标,保证筛选出重要的指标。

     

    相关性分析和主成分分析相同点

    1. 基于相关性分析的指标筛选和基于主成分分析的指标筛选,均是在准则层内进行指标的筛选处理,准则层之间不进行筛选。这种做法的原因是,通过人为地划分不同准则层,反映评价事物不同层面的状况,避免误删反应信息不同的重要指标。

    2. 基于相关性分析的指标筛选和基于主成分分析的指标筛选的思路,均是筛选出少量具有代表性的指标。

    相关性分析和主成分分析不同点

    1. 两次筛选的目的不同:基于相关性分析的指标筛选的目的是删除反应信息冗余的评价指标。基于主成分分析的指标筛选的目的是删除对评价结果影响较小的评价指标。

    2. 两次筛选的作用不同:基于相关性分析的指标筛选的作用是保证筛选选出的评价指标体系简洁明快。基于主成分分析的指标简选的目的是筛选出重要的指标。

    总结

    通过基于相关性分析的第一次指标定量筛选。通过相关性分析的方法,进行第一次定量筛选,剔除了反应信息重复的指标,保证筛选后的指标体系简洁有效。基于相关性分析的第二次指标定量晒选。通过对评价指标进行主成分分析,删除因子载荷小的评价指标,保证筛选出重要的指标。

    matlab程序

    主成分分析法实现很简单,python直接调用包就行,这里提一下matlab上的简单实现,针对具体问题的程序,有需求再找我吧。

    %输入数据(以矩阵形式输入)
    X = [];
    
    %数据预处理:标准化
    mu = mean(X);
    X_norm = bsxfun(@minus, X, mu);
    sigma = std(X_norm);
    X_norm = bsxfun(@rdivide, X_norm, sigma);
    
    %协方差矩阵
    covMat = cov(X_norm);
    
    %奇异值分解,U为特征向量,S为特征值
    [U, S] = svd(covMat);
    
    %提取特征值
    lambda = diag(S);
    %累积信息占比,也就是累积方差贡献率
    fprintf('累积信息占比:%.4f \n',  cumsum(lambda)/sum(lambda));
    
    %求因子载荷矩阵
    B = U .* sqtr(lambda');
    

    +

    •  
    •  
    •  
    •  
    •  
    •  
    •  
    展开全文
  • 前面提到,这里介绍的变量筛选的方法全部是基于《An Introduction to Statistical Learning with R》书中的方法,所以这里先开始介绍课本上的变量筛选方法,然后再进行延伸。 课本上数据降维方法 标准的...
  • 由于现有模型或者方法不能有效处理超高维数据,因此需要对超高维数据进行一定的降维,以便能够利用现有模型或者方法进行处理,因而变量筛选或者选择是分析和处理高维数据的关键一步.本论文的研究工作主要有以下两个方面...
  • 一些变量筛选方法——6、代码

    千次阅读 多人点赞 2019-01-16 15:45:25
    之前有小伙伴说希望公开之前变量筛选文章的代码,这里时隔好多个月,或许都一年了,将之前的代码整理出来了。 当时由于时间有限,只有几天的时间将论文和代码赶出来,所以写的不是很好,全程for循环,还请见谅! ...
  • 一些变量筛选方法——4、模拟实验

    千次阅读 2018-05-19 00:34:25
    本系列博客聚焦于变量筛选方法,所以前文中提及PCR与PLSR由于只能使数据进行降维,而不能进行变量选择,所以下面的模拟不使用这两种方法。 模拟实验 为了比较算法的优劣,我们构造了下列模拟(前两个是...
  • 一些变量筛选方法——5、真实数据与总结

    万次阅读 多人点赞 2018-05-22 08:26:50
    这里使用两个真实数据进行前面所述方法的应用。 真实数据 在实际数据运用中,针对高维和超高维数据的情况,算法该如何使用?如何实现?这里我们使用两组数据,一组是课本中提到的Hitters数据,另一组...
  • SPSS线性回归提供5种自变量筛选的回归方法,包括Enter、Stepwise、Forward、Backward还有Remove。偏重于统计方法应用的人可能觉得这没啥,它多任它多,我自选择stepwise。可是对于新手以及较真的人来说,这里就会很...
  • 基于相关性分析和主成分分析的变量筛选方法主成分分析法 指标筛选既然在课程专题四中讲到主成分分析法,那么这里再进一步介绍主成分分析法,概括起来说,主成分分析主要由以下几个方面的作用。主成分分析能降低所...
  • 目录##变量筛选方法预测与回归诊断其他统计量SAS中Weight和Freq的区别Refreence1. 变量筛选方法全回归模型 (None)向前发(Forward) -- 逐步引入法向后发(Backward) --逐步剔除法逐步筛选法 (Stepwise)最大Rsquare增量...
  • 光谱数据分析中的通用非线性变量筛选方法
  • 回归模型的变量筛选与预测

    千次阅读 2019-06-21 10:27:35
    我眼中的回归变量筛选 变量筛选是回归建模过程关键的一步,由于变量间的... 在所有变量筛选方法中,向前法、向后法以及逐步回归法的使用频率较高,因为这类方法操作简单、运算速度快,非常实用,这种方法选出的...
  • 前言:之前的文章(高维数据中特征筛选方法的思考总结——单变量分析筛选法)中,对单变量分析筛选变量进行了初步考量,本文将进一步总结多变量分析筛选法。由于本文多处摘录网上的博客,只是进行了归纳整理,因此...
  • 【临床研究】---多元回归分析中的变量筛选问题方法选择的思考路径:1、变量筛选方法的归纳1)变量筛选的一般流程:①逐个变量:单因素回归分析②分析P值:依据样本量大小情况调整P值选择范围③纳入规则:将单因素...
  • 利用激光诱导击穿光谱(LIBS)技术,对油漆涂层中的重金属Pb进行定量检测研究。优化实验参数后,利用多通道光谱仪采集...CARS变量筛选方法能够从光谱中有效筛选出与Pb相关的重要信息,能够结合PLS准确检测油漆涂层中的Pb。
  • 降维方法分为两大类:单变量分析降维法、多变量分析降维法。单变量降维常常使用FC值或者P值,多变量降维常常使用LASSO和PLS等方法。对于这个问题,将分为两篇文章进行探讨,本文着重探讨单变量分析筛选法。 常规...
  • 增强对特征和特征值之间的理解结合Scilit-learn中的例子接受几种常用的特征选择方法1.去除变化小的特征:Removing features with low variance假设某特征的特征值只有0和1,并且在所有输入样本中,9...
  • 筛选变量方法-IV

    千次阅读 2018-10-24 12:11:03
     IV和WOE的差别,就在于IV在WOE基础上乘以一个权重(py1-py0),这个权重也是变量筛选考虑使用IV而非WOE去筛选变量的重要。 woe的取值为实数,含有负数,当我们衡量一个变量的预测能力时,使用的指标的评价一般...
  • 数据预处理:变量筛选和变换

    千次阅读 2018-09-19 14:21:27
    变量筛选和变换 我们在尽心数据处理中会遇到变量的筛选问题 这里我们不是PCA(主成分分析),就是简单的人工变量筛选, 比如就像提取其中几个变量,或者想删除一些变量,还有就是某一个变量根据内容的一些简单筛选和...
  • 风控建模六:变量相关性分析及筛选方法 不论是开发逻辑回归评分卡,还是GBM机器学习模型 import pandas as pd import numpy as np from sklearn.cluster import KMeans from sklearn.preprocessing import ...
  • 微信公众号:医学统计与R语言Code√输入1:install.packages("rio")library(rio)qol1import("qol.sav")linqoldata=qol1)summary(linqol)√结果1:Call:lm(formula=生理功能~newincome+Q34+newQ35+Q36,data=qol1)...
  • 在上一篇文章《数据准备<3>:数据预处理》中,我们提到降维主要包括两种方式:基于特征选择的降维和基于维度...本篇主要介绍特征(变量)筛选的基本思路与方法,为简洁,下文均使用“变量筛选”指代。 变量...
  • 变量筛选-理论篇》中,我们介绍了变量筛选的三种方法:基于经验的方法、基于统计的方法和基于机器学习的方法,本文将介绍后两种方法在Python(sklearn)环境下的具体实现。 1.环境介绍 版本:python2.7 工具:...
  • 01 模型简介最优子集回归是多元线性回归方程的自变量选择的一类方法。从全部自变量所有可能的自变量组合的子集回归方程中挑选最优者。如m个自变量会拟合2m-1个子集回归方程,然后用回归方程的统计量作准则(如交叉验证...
  • 变量选择方法-基于SVM

    2018-06-05 11:28:11
    当面临许多变量时,很自然的要进行变量的初次筛选,以便减缓后续的建模计算压力。本文提出了一种新的有效的变量选择方法,不依赖于模型的清晰指定,故而具有很大的灵活性与适应范围。
  • 逐步回归是通过假设检验的方法筛选强特征,但如果直接用特征变量和结果变量做回归,看系数的正负和大小来判断变量的相关性,其实也是合理的,但是为了考虑变量间的相互作用在回归模型中对结果的影响,通常还是应用...
  • 模拟退火筛选变量

    2019-01-28 14:30:49
    本文主要是采用模拟退火的方法选择变量,采取的评价方法是基于五折CV的auc值均值 # -*- coding: utf-8 -*- &quot;&quot;&quot; Created on Sun Jan 27 23:15:34 2019 模拟退火调筛选变量 @author: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 887
精华内容 354
关键字:

变量筛选方法