- 聚類分析
百度百科:聚類分析指將物理或抽象對象的集合分組為由類似的對象組成的多個類的分析過程。同一個簇中的對象有很大的相似性,而不同簇間的對象有很大的相異性。
方法——(還可直接用SPSS)
1. 系統聚類法(適用於數據量比較小的情況)
2. K-均值法:先把樣品粗略分為K個初始類別,逐個分派樣品到其最近均值的類中(通常用標准化數據計算歐式距離),重新計算類的均值,直到沒有新元素的進出情況。
matlab代碼——
Y=pdist(X); SF=squareform(Y); Z=linkage(Y,'average'); dendrogram(Z); T=cluster(Z,'maxclust',n) %n是類的最大數目 %代碼參考:https://blog.csdn.net/henu111/article/details/81512314
- 因子模型&主成分分析
因子模型的提出主要是為了解決數據維度過大的問題,假設原有P個X變量,現通過用少於P的m個F變量對X進行衡量,其中A為變換系數矩陣,里面的元素可以稱為因子載荷,類比標准化后的β參數,其絕對值越大越好。
其中因子載荷 aij 的統計意義就是第i個變量與第 j 個公共因子的相關系數即表示 Xi 依賴 Fj 的份量(比重))
構建因子模型一共有三種方法(計算因子載荷的三種方法)——
- 主成分分析法
a.對原始數據X進行標准化處理為Z,同時根據標准化的數據計算簡單相關系數矩陣R/協方差矩陣Σ;根據相關系數矩陣R/協方差矩陣Σ解出特征值和主成分系數,並且把特征值從大到小進行排列。
[coeff,latent,explained] = pcacov(X); %coeff是主成分系數;latent是特征值;explained是每個主成分方差占總方差的百分比
這里matlab輸出的主成分系數行代表原始變量X,列代表主成分Z,每一列Z是用表格中的數據*X組合而出。
b.根據特征值和主成分系數計算得因子載荷矩陣B:
c.根據特征值大於1或者累計特征值比率大於某個特定值來確定要在列上選擇多少公共因子進入因子模型分析。
d.根據上述因子載荷矩陣進行因子旋轉得C。其中因子旋轉即正交變換,不僅是找出公共因子以及對變量分組,更重要的是找出每個公共因子的含義。而因子旋轉一共也有三個旋轉方法:方差最大化/四次方最大旋轉/等量最大法;下面的代碼采用第一種方法:
[lambda2,t] = rotatefactors(lambda(:,1:num),'method','varimax');
e.計算因子得分:得分F = X*R'*C'(相當於是用X來表示F,之前是用F來表示Z);最后再根據F1,F2,F3,……等公共因子的各自得分*因子貢獻率的權重算出最后得分F
f.根據最后得分F與有實際經濟意義的變量進行回歸分析,得到因子分析法的回歸方程
2.主因子法
3.極大似然估計
[lambda,psi,T,stats,F] = factoran(X,m,param,val); %X為分析數據矩陣,m為公共因子個數,param和val分別表示正交因子旋轉矩陣的屬性及其取值(默認為最大方差正交變換) %lambda是因子載荷矩陣,psi為個體因子方差向量,T為因子旋轉矩陣,stats是一系列檢驗統計量(以公共因子為m是H0假設),F是公共因子得分