多元统计分析 R与Python 的实现
笔记内容来源于书籍。
第1章 前言
R软件是由统计学家编写,主要用于数据分析,但Python是通用软件,可以完成任何计算机能够完成的任务。相比于R,Python的帮助文档不够丰富,输出的统计结果也不如R软件全面。
第2章 矩阵代数回顾
[
a
11
a
12
.
.
.
a
14
a
21
a
22
.
.
.
a
24
.
.
.
.
.
.
.
.
.
.
.
.
a
m
1
a
m
2
.
.
.
a
m
n
]
\begin{bmatrix} a_{11}&a_{12} &... &a_{14} \\ a_{21}&a_{22} &... &a_{24} \\ ...&... &... &... \\ a_{m1}&a_{m2} &... &a_{mn} \end{bmatrix}
?
??a11?a21?...am1??a12?a22?...am2??............?a14?a24?...amn???
??
- 一堆概念
转置 行向量、列向量 对称矩阵 上三角矩阵 下三角矩阵 对角矩阵 单位矩阵 正交矩阵 矩阵的秩 矩阵的迹
用初等变换将矩阵变换为行阶梯型矩阵,非零行的数量就是秩。
第3章 回归
第5章 主成分分析
基本介绍
主成分分析(principal component analysis)是一种降维方法,数据的性质决定能否进行主成分分析,以及使用该分析是否有意义。
- 完全独立的变量没有降维的必要性。
- 不相关的白能量将组成新的线性组合,这些组合成为成分,在因子分析中也称为因子。
- 一般来说,因子分析降维的效果优于主成分费。但主成分分析更加简单,因子分析需要很强的关于模型的数学假定。
计算过程
- 步骤1: 求协方差矩阵及样本相关阵的特征值和特征向量
- 步骤2:求各个成分的贡献率和累积贡献率。步骤2一定要做一个碎石图,用来确定主成分分析的变量个数
- 步骤3: 根据贡献率选取少数重要成分(在主成分分析中选取多少成分说法不一,有的说成分累积贡献率要达到70%以上,有的则要求更高)
- 步骤4: 主成分和原始变量的相关系数计算与载荷图
R语言代码
library("FactoMineR")
library("factoextra")
u<-w[,-c(12:15)]
row.names(u)=u[,1]
u.r<-PCA(u[,1],scale.unit=TRUE, graph=FALSE)
print(u.r)
fviz_eig(u.r, addlabels=TRUE, ylim=c(0,50))
(u.eigen<-get_eigenvalue(u.r))
fviz_contrib(u。r,choice="var",axes=1)
fviz_pca_var(u.r)
fviz_pca-var(u.r,col.war="cos2",
gradient.cols=c"#00AFBB","#E7B800","#FC4E07",repel=TRUE)
其他介绍
主成分分析在图像处理中的应用:主要进行图像压缩和识别。
第4章 分类
和回归分析类似,分类是统计学习中的有指导(或有监督)学习之一。在经典统计中,分类被称为判别分析。而聚类是无指导学习。
对于两水平分类,经典统计主要用Logistic回归方法(二分类)。
分类与聚类的区别
分类和聚类看上去很像,但聚类是无监督学习,训练集数据本身的观测值并没有属于某一群的标签。
分类的一些算法
在分类的算法上,有经典的判别分析。包括线性判别分析和二次判别分析。 二分类因变量的Logistic回归。 判断线性回归的准确性即灵敏性,用ROC曲线很有必要。 机器学习算法:adaboost,随机森林算法,决策树,支持向量机。
第5章 主成分分析
降维就是用根据原始变量构造的少数变量来代替多数变量。 主成分分析的在以下条件下无意义:
- 数据各变量不相关
主成分分析是在变量相关的时候寻找不相关的线性组合。这些不相关的组合实际上形成了新的变量,在主成分分析中,这些组合称为成分,而在因子分析中称为因子。 一般而言,因子分析降维的效果可能优于主成分分析,主成分分析的优点是原理简单,计算容易。 主成分分析涉及的图件有: - 崖底碎石图、载荷图、主成分贡献图
第6章 因子分析
主成分分析主要为了降维,但是因子分析也可以用于降维。 因子分析主要用于挖掘隐变量,称之为因子。 回归或者分类方法可以用来研究因变量和自变量之间的关系。因子分析则用来研究许多因变量之间的关系,目的是找到影响这些因变量的不可观测的独立变量,而由因子分析得到的结果大督导室假设性的或者实验性的,这是由于人们不能观测到这些自变量。
第7章 聚类分析
聚类分析和分类方法没有必然联系。聚类分析涉及到一个重要的计算就是“距离”的计算,常见的包括: 欧氏距离:
∥
x
?
y
∥
2
=
∑
i
=
1
p
(
x
i
?
y
i
)
2
\begin{Vmatrix}x-y\end{Vmatrix}_2=\sqrt{\sum_{i=1}^{p}(x_i-y_i)^2}
∥
∥?x?y?∥
∥?2?=i=1∑p?(xi??yi?)2
? 平方欧氏距离、Manhattan距离、Chebychev距离、Mahalanobis距离等。 除了点之间的距离之外,聚类分析的某些方法还需要定义类间距离。
分层聚类
分层聚类有两种形式,一种是聚合形式,另一种是拆分形式。例如聚合形式是先把每一个观测值看成1类,在根据点间距离逐步合并。
聚类数目的选择
- Gap方法
Gap方法就是计算聚类度量的一个你和有毒度量。 使用cluser程序包的clusGap可以确定聚类个数 需要找到曲线的最大值,而且在其一个标准差之内没有其他的点。
library("cluster")
(z<-clusGap(w,FUN=Means,5))
plot(z,main="Gap statistic")
library("NbClust")
a<-NbClust(scale(w1),distance="euclidean",min.nc=2,max.nc=8,method="complete",index="all")
第8章 典型相关分析 典型相关分析用于识别和测量两组变量之间的关联。
第9章 对应分析
属于可视化探索性数据分析,可描述二维和多维列联表数据。
第10章 多维尺度变换
多维尺度变换也成为多维标度或多维缩放,是一组对象之间的距离或者不相似度的直观表示,最典型的对象是地理位置,当然也可以是观点、颜色、面孔或者任何种类的实体或者抽象的概念。
|