R语言是一门非常方便的数据分析语言,它内置了许多处理矩阵的方法。
作为数据分析的一部分,我们要在有价证券矩阵的操作上做一些工作,只需几行代码。
有价证券数据矩阵在这里
D=read.table("secu.txt",header=TRUE) M=marix(D\[,2:10\]) head(M\[,1:5\])
谱分解
对角线化和光谱分析之间的联系可以从以下文字中看出
> P=eigen(t(M)%*%M)$vectors > P%*%diag(eigen(t(M)%*%M)$values)%*%t(P)
首先是这个矩阵的谱分解与奇异值分解之间的联系
> sqrt(eigen(t(M)%*%M)$values)
和其他矩阵乘积的谱分解
> sqrt(eigen(M%*%t(M))$values)
现在,为了更好地理解寻找有价证券的成分,让我们考虑两个变量
> sM=M,c(1,3) ,c(1,3) > plot(sM)
我们对变量标准化并减少变量(或改变度量)非常感兴趣
> sMcr=sM > for(j in 1:2) sMcr,j ,j=(sMcr,j ,j-mean(sMcr,j ,j))/sd(sMcr,j ,j) > plot(sMcr)
在对轴进行投影之前,先介绍两个函数
> pro_a=funcion(x,u + ps=ep(NA,nrow(x)) + for(i i 1:nrow(x)) ps\[i=sm(x\[i*u) + return(ps) + } > prj=function(x,u){ + px=x + for(j in 1:lngh(u)){ + px,j ,j=pd_cal(xu)/srt(s(u^2))uj j + } + return(px) + }
例如,如果我们在 x 轴上投影,
> point(poj(scr,c(1,0))
然后我们可以寻找轴的方向,这为我们提供具有最大惯性的点
点击标题查阅往期内容
python机器学习:推荐系统实现(以矩阵分解来协同过滤)
01
02
03
04
> iner=function(x) sum(x^2) > Thta=seq(0,3.492,length=01) > V=unlslly(Theta,functinheta)ietie(roj(sMcrc(co(thet)sinheta))) > plot(Theta,V,ype='l')
> (ange=optim(0,fun(iothet) -ertieprojsMcrc(s(teta), si(ta)))$ar)
通过画图,我们得到
> plot(Mcr)
请注意,给出最大惯性的轴与谱分解的特征向量有关(与最大特征值相关的轴)。
>(cos(ngle),sin(ange)) \[1\] 0.7071 0.7070 > eigen(t(sMcr)%*%sMcr)
在开始主成分分析之前,我们需要操作数据矩阵,进行预测。