原文鏈接:http://tecdat.cn/?p=23973
原文出處:拓端數據部落公眾號
R語言是一門非常方便的數據分析語言,它內置了許多處理矩陣的方法。
作為數據分析的一部分,我們要在有價證券矩陣的操作上做一些工作,只需幾行代碼。
有價證券數據矩陣在這里
-
-
-
-
D=read.table("secur.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)]
-
> plot(sM)
-
我們對變量標准化並減少變量(或改變度量)非常感興趣
-
-
-
> sMcr=sM
-
> for(j in 1:2) sMcr[,j]=(sMcr[,j]-mean(sMcr[,j]))/sd(sMcr[,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]=pd_cal(xu)/srt(s(u^2))u[j]
-
+ }
-
+ return(px)
-
+ }
-
例如,如果我們在 x 軸上投影,
-
-
-
-
> point(poj(scr,c(1,0))
-
-
-
然后我們可以尋找軸的方向,這為我們提供具有最大慣性的點
-
> 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)
在開始主成分分析之前,我們需要操作數據矩陣,進行預測。
最受歡迎的見解
1.matlab偏最小二乘回歸(PLSR)和主成分回歸(PCR)
2.R語言高維數據的主成分pca、 t-SNE算法降維與可視化分析