sas:主成分分析
来源:互联网 发布:数据黑产吧 编辑:程序博客网 时间:2024/05/17 22:43
最近和同学讨论他们要做的电子医疗系统的时候,聊到单因素分析和主成分分析,一想自己对这方面也不是很懂,就用sas做了一套标准的流程,记录如下:
个人总结:如果遇到多因素分析,想要很多很多个自变量与因变量进行线性回归分析必须进行降维,一种很好的解决方案就是主成分分析。
引言
主成分分析,举了这么个例子:就像你选女人,有身材、相貌两个指标,如果身材、相貌都很突出,那当然很好选择;但如果两个女人,一个身材突出,一个相貌出众,看着都很喜欢,那可如何是好!这个时候通过主成分分析,汇总出一个指标,这个指标可以一定程度上代替原来的身材、相貌,这时就可以排序做出选择了。
这例子当然有很多缺陷,但至少指出了主成分分析的目的之一:减少决策变量数,也就是降维。主成分分析的另一个目的是防范多重共线性。实际问题往往涉及很多变量,但某些变量之间会有一定的相关性,我们希望构造较少的几个互不相关的新指标来代替原始变量,去除多重共线性,减少所需分析的变量,同时尽可能减少这一过程的信息损失。主成分分析正是基于这样的目的而产生的有效方法。
主成分分析流程
1、原始数据标准化。
2、计算标准化变量间的相关系数矩阵。
3、计算相关系数矩阵的特征值和特征向量。
4、计算主成分变量值。
5、统计结果分析,提取所需的主成分。
实例(个人觉得说了再多,其实一个实例就懂了)
下表列出了1999年全国31个省、直辖市和自治区(港、澳、台不在其中)的城镇居民家庭平均每人全年消费性支出的八个主要变量数据,请从八个变量中识别出主成分。
变量说明(随便从网上找的数据)
x1:食品 x2:交通和通讯
x3:衣着 x4:娱乐教育文化服务
x5:家庭设备用品及服务 x6:居住
x7:医疗保健 x8:杂项商品和服务
1.对照省份可用sas做表
data comp;input name $ x1-x8;cards;北京2959.19730.79749.41513.34467.871141.82478.42457.64天津2459.77495.47697.33302.87284.19735.97570.84305.08河北1495.63515.90362.37285.32272.95540.58364.91188.63山西1406.33477.77290.15208.57201.50414.72281.84212.10内蒙古1303.97524.29254.83192.17249.81463.09287.87192.96辽宁1730.84553.90246.91279.81239.18445.20330.24163.86吉林1561.86492.42200.49218.36220.69459.62360.48147.76黑龙江1410.11510.71211.88277.11224.65376.82317.61152.85上海3712.31550.74893.37346.93527.001034.98720.33462.03江苏2207.58449.37572.40211.92302.09585.23429.77252.54浙江2629.16557.32689.73435.69514.66795.87575.76323.36安徽1844.78430.29271.28126.33250.56513.18314.00151.39福建2709.46428.11334.12160.77405.14461.67535.13232.29江西1563.78303.65233.81107.90209.70393.99509.39160.12山东1675.75613.32550.71219.79272.59599.43371.62211.84河南1427.65431.79288.55208.14217.00337.76421.31165.32湖北1783.43511.88282.84201.01237.60617.74523.52182.52湖南1942.23512.27401.39206.06321.29697.22492.60226.45广东3055.17353.23564.56356.27811.88873.061082.82420.81广西2033.87300.82338.65157.78329.06621.74587.02218.27海南2057.86186.44202.72171.79329.65477.17312.93279.19重庆2303.29589.99516.21236.55403.92730.05438.41225.80四川1974.28507.76344.79203.21240.24575.10430.36223.46贵州1673.82437.75461.61153.32254.66445.59346.11191.48云南2194.25537.01369.07249.54290.84561.91407.70330.95西藏2646.61839.70204.44209.11379.30371.04269.59389.33陕西1472.95390.89447.95259.51230.61490.90469.10191.34甘肃1525.57472.98328.90219.86206.65449.69249.66228.19青海1654.69437.77258.78303.00244.93479.53288.56236.51宁夏1375.46480.89273.84317.32251.08424.75228.73195.93新疆1608.82536.05432.46235.82250.28541.30344.85214.40;run;2.假定相互独立,得到特征向量proc princompdata = mylib.compout = mylib.changecompprefix = comp /*(具体数据分析过程只需要看数据,避免其他的干扰,改成代号名称)*/outstat = mylib.result;var x1-x8;run ;
会得到以下结果:
除此之外,得到的changecomp表为:
得到的result表为:
3.快速得到主成分
首先我们需要知道主成分分析希望能够达到什么样的目的:
将多个指标转换为少数几个相互独立的且包含原来指标大部分信息(一般是80%或85%)的综合指标
假如你并不想知道各种结果的含义,只想知道那些是主成分,那其实只需要用到上面的“相关矩阵的特征值”表的最后两列:比例和累积
累积从哪一行大于85%就行了;本实例是从第三行,因为这3个变量合起来解释了原来8个变量87.81%的信息,能够满足要求。
4.详细解读各种表
表1:PRINCOMP 过程
31个观测代表数据中的31个省份/直辖市;
8个变量代表最开始的8个成分
表2:简单统计量
这个表也很简单,均值x不用说,StD是标准差,即方差开个正根
表3:相关矩阵
相关系数又称皮氏积矩相关系数(Pearson product-moment correlation coefficient,PPCC),就是我们高中统计学独立检验时候的r值;
当r>0时,表示两变量正相关,当r<0时,表示两变量为负相关。当|r|=1时,表示两变量为完全线性相关即函数关系。当r=1时,称为完全正相关,而当r=-1时,称为完全负相关。当r=0时,表示两变量间无线性相关关系。
当︱r︱≥0.8时,可视为高度相关;当0.5≤︱r︱<0.8时,可视为中度相关;当0.3≤︱r︱<0.5时,视为低度相关;当︱r︱<0.3时,说明两个变量之间的相关程度极弱。
本表里的x1与x5、x1与x8、x3与x6高度相关;x2与x7负相关
表4:相关矩阵的特征值
列1.特征值越大,表示对应的主成分变量包含的信息越多,对原始变量的解释力度越强。
列2.相邻两行特征值之间的差值
列3.改行特征值/总特征值的和
列4.前面几行的列3的和
(误区:变量不是越多越好,否则不能达到降维的目的,一般等sqrt(num))
表5:特征向量
这个和特征值都是线性代数的内容,幸亏还是学过这门课。
表3是A,表5的每一列是V,表4的特征值是lmt
5.除此之外的一些东西
1.以comp1与comp2分布散点图:(载荷图)
proc plot
data=mylib.changecomp vpct=100;/*vpct后的数值表示图所占页面的长度*/
plot comp1*comp2 ='*'$ name/
/* ='*'表明图中的散点用*表示,还可用#等*/
/*美元符号后写标签变量 name 代表每个点根据name变量命名*/
haxis=-3.5 to 3 by 0.5
HREF=-2,0,2 vaxis=-3 to 6 by 0.5
VREF=-2,0,2; /*HREF代表垂直于水平轴-2,0,2处画参考线,VREF同理*/
title '主成分散点图'
; /*title为结果命名。Plot:主成分散点图,否则Plot:SAS系统*/
run;
2.changecomp表的comp变量是怎么来的
主成分变量是原始变量的线性表示,用公式表示如下:;
X表示原始变量对应数据组成的矩阵(以下称为原始数据矩阵),U是特征向量以列向量形式依次排列组成的矩阵(以下称为特征向量矩阵)。
但是这样做有问题,原始数据还未标准化;
proc standarddata = mylib.compout = mylib.standardmean = 0std=1;var x1-x8;run ;
正确的公式应该是;
3.变量是否线性相关
proc corrdata = mylib.changecompout = mylib.compcorr;var comp1-comp8;with comp1-comp8;run ;
可以看出,主成分变量之间的相关系数都为零。
- SAS:SAS主成分分析
- SAS主成分分析
- sas:主成分分析
- SAS 主成分分析
- 【SAS】主成分分析 因子分析
- SAS PRINCOMP 主成分分析
- SAS进行主成分分析(Principal Component Analysis,PCA)
- SAS:主成分分析(Principal Component Analysis,PCA)
- 主成分分析 PCA
- 主成分分析
- 主成分分析
- 主成分分析法
- 主成分分析方法
- 主成分分析 PCA
- 主成分分析
- PCA--主成分分析
- 主成分分析
- PCA主成分分析
- 1.2.21 Map.values方法——获取Map集合中的所有键值对象
- SpringMVC开发笔记
- 2016/5/27 1004. 简单减法
- Qt之自定义布局管理器(QCardLayout)
- 通过命令的方式实现计算机定时关机
- sas:主成分分析
- 自制Camera例子——相机效果
- 问题:In IOS8 wakeups limit
- Solr -- 查询语法/参数
- js一键复制,Clipboard.js:不用Flash实现剪贴板功能的轻量级JavaScript库
- 修改postgres时区
- 前端开发笔记--关于插件
- VS2013常用快捷键
- 修改document.domain会引起的问题