到這里已經學了好多的多元分析方法了,有聚類分析法,有主成分分析法,尤其是主成分分析法,為什么還要討論因子分析法呢?很多地方都有對主成分分析法和因子分析法的區別比較,這里就不多說了,只記錄一下最重要的地方。
主成分分析法:是對原始變量的線性組合,且相互垂直。
因子分析法:研究眾多變量之間的內部依賴關系,潛在的假想變量+隨機變量的線性組合。
因子載荷,反映了第 i 個變量與第 j 個公共因子的相關系數,反映了第 i 個變量與第 j 個公共因子的相關重要性。絕對值越大,相關的密切程度越高。
因子載荷矩陣的估計方法:
-
主成分分析法
-
主因子法
-
極大似然估計
這里就只用其中一種方法解決吧,好像大部分都用的是主成分分析法。
舉個栗子吧,P243,公司股票有5個因素影響,探討一下這5個因素的內在聯系。
clc,clear; r=[1.000 0.577 0.509 0.387 0.462 0.577 1.000 0.599 0.389 0.322 0.509 0.599 1.000 0.436 0.426 0.387 0.389 0.436 1.000 0.523 0.462 0.322 0.426 0.523 1.000]; % 利用關系矩陣進行主成分分解 [vec1,val,rate] = pcacov(r); f1 = repmat(sign(sum(vec1)),size(vec1,1),1); vec2 = vec1.*f1; % 使得每個特征向量分量和為正 % 因子分析公式 f2 = repmat(sqrt(val)',size(vec2,1),1); % 全部的因子的載荷矩陣 a = vec2.*f2; % 提取第一個因子的載荷矩陣 a1 = a(:,1); % 計算第一個因子的特殊方差 tcha1 = diag(r-a1*a1'); % 提取兩個因子的載荷矩陣 a2 = a(:,[1,2]); % 計算兩個因子的特殊方差 tcha2 = diag(r-a2*a2'); % 求兩個因子時的殘差矩陣 ccha2 = r - a2*a2' - diag(tcha2); % 求累積貢獻率 con = cumsum(rate);
之前說主成分分析已經是很復雜的多元分析方式了,看來這句話說早咯!!!
首先用主成分分析對相關系數矩陣操作,求出特征向量,特征值,和主成分貢獻率。
然后變形使得每個特征向量的分量和為正。
利用特征值和載荷矩陣公式求出載荷矩陣:

載荷矩陣求出來以后:
然后依然進行需要,選擇因子的個數。
比如選擇一個 F1 公共因子。
那么就可以表示5個變量(5種股票)的內在關系:
並對此進行分析:
特殊方差是什么呢? 其實可以理解為從原來的變量到公共因子空間的轉換效果的一個評價。
公式:

即:
