
討論:因子分析非正定矩陣是怎么回事兒
在最近的工作中需要用spss做因子分析,但是在具體操作過程中遇到了頭疼的“非正定矩陣的問題”,困擾了很久??戳苏?壇上很多網(wǎng)友的討論和解決辦法,加上自己的一些摸索,也最終找到了問題的原因和解決辦法,現(xiàn)在寫出來與大家分享,希望對有同樣困擾的朋友一些啟示,當(dāng)然其 中一定有不對的地方,歡迎大家一起討論。
一、案例介紹
某運(yùn)營商無線增值業(yè)務(wù)全國各省某一個(gè)月內(nèi)運(yùn)營情況,變量35個(gè),樣本31個(gè)(全國31個(gè)?。?,希望通過因子分析對各省綜合實(shí)力進(jìn)行排序。
二、問題描述
通過spss的因子分析對原始變量進(jìn)行降維處理時(shí),SPSS提示相關(guān)系數(shù)矩陣為“非正定矩陣”,無法給出KMO值,但是SPSS仍然給出了后續(xù)因子分析結(jié)果。
三、疑問
(1)什么是正定矩陣?
(2)因子分析是否一定要求變量的相關(guān)系數(shù)矩陣為正定矩陣?
(3)非正定矩陣的存在對因子分析結(jié)果有何影響?
(4)如何修正使得變成正定矩陣?
四、解決辦法
通過在論壇上查閱人相關(guān)問題,發(fā)現(xiàn)其他網(wǎng)友總結(jié)出現(xiàn)這種情況的原因主要集中在兩點(diǎn):
(1)樣本量太少,而指標(biāo)過多。
(2)某些變量間相關(guān)性太強(qiáng)。
而解決方案分別要求增加樣本,或者剔除某些顯著強(qiáng)相關(guān)的變量。
但是在我的這個(gè)例子里面無法增加樣本,因此只能從變量的相關(guān)性上考慮,看是不是存在一些和其他變量高度相關(guān)的變量。通過查看因子分析結(jié)果中的相關(guān)系數(shù)矩陣,的確發(fā)現(xiàn)大部分變量之間都存在高度相關(guān)性,而且相關(guān)系數(shù)在0.9以上。
但是現(xiàn)在問題來了,那是不是應(yīng)該直接刪除高度相關(guān)的變量?該刪 除哪些變量?按照我的情況估計(jì)很多變量都要剔除了,那對于分析結(jié)果就會產(chǎn)生很大的影響。
為了找出具體是哪些變量導(dǎo)致問題的出現(xiàn),我用了一個(gè)比較笨的辦法:逐一淘汰法。剛開始時(shí)不把所有變量都用來做因子分析,只選取一小部分,例如我先選取了10個(gè)變量做分析,發(fā)現(xiàn)spss沒有再提示“非正定矩陣”而是正常的輸出了KMO檢驗(yàn)值,而且順利完成了因子分析結(jié)果;然后下一步我再逐個(gè)添加其他變量進(jìn)行測試,當(dāng)發(fā)現(xiàn)添加某個(gè)變量spss提示“非正定矩陣”時(shí),就記下這個(gè)變量,然后再換成下一個(gè)變量繼續(xù)測試,直到把所有變量測試完。通過這樣的測試,我終于找到讓spss認(rèn)為“非正定矩陣”的原因:一共有5個(gè)變量,只要不納入這5個(gè)變量進(jìn)行分析,spss就能正常的進(jìn)行因子分析。
找到原因后,我本來想直接刪除掉這5個(gè)變量好了,但是我查看了一下spss因子分析的輸出結(jié)果,發(fā)現(xiàn)了為什么是這5個(gè)變量的原因,如下圖:
上圖的截圖是“解釋的總方差”顯示所有變量的相關(guān)系數(shù)矩陣的所有特征值,大家可以看到在用紅色方框標(biāo)注的5個(gè)特征值,他們的數(shù)值的數(shù)量級都是10的負(fù)16次方、17次方、18次方,甚至出現(xiàn)了負(fù)值,幾乎可以認(rèn)為就是零了,遠(yuǎn)遠(yuǎn)小于其他特征值,根據(jù)之前的逐一測試法確認(rèn),這5個(gè)特征值是與之前發(fā)現(xiàn)的那5個(gè)變量是對應(yīng)的,我想這就應(yīng)該是為什么是這5個(gè)變量導(dǎo)致出現(xiàn)非正定矩陣的原因吧。
那進(jìn)一步思考,特征值過小或者為負(fù)值說明了什么呢,根據(jù)正定矩陣的判定,正定矩陣的充分必要條件是:特征值>0,所有出現(xiàn)負(fù)的特征值就肯定會出現(xiàn)“非正定矩陣”的原因,但就靠這點(diǎn)似乎還不夠,因?yàn)橛行?a href='/map/tezheng/' style='color:#000;font-size:inherit;'>特征值是大于0的,只是非常非常小而已。我推測(僅僅是我推測),因?yàn)槲覀冊谧鲋鞒煞址治龅臅r(shí)候,每個(gè)主成分的方差就等于對于特征值,特征值太小意味著主成分的方差太小,方差太小意味著包含變量的 信息量太少,而我們在做因子分析時(shí)往往也是用主成分法來抽取公因子,所以特征值太小可能也無法滿足正定矩陣的條件,當(dāng)然這是我的推測。
五、總結(jié)
根據(jù)整個(gè)過程,我總結(jié)了一下幾點(diǎn):
(1)出現(xiàn)非正定矩陣的情況,并不一定都是樣本太少(本例中樣本才31,變量有35個(gè))。
(2)剔除變量的時(shí)候,可以利用逐一淘汰法來發(fā)現(xiàn)問題變量,再考慮是否要刪除。
(3)非正定矩陣似乎對因子分析結(jié)果并無太多影響,因?yàn)槲覀兺怀槿×瞬糠止蜃樱ɡ塾?jì)方差貢獻(xiàn)率>85%),特征值過小意味著方差貢獻(xiàn)率也會很小,往往不會被選作公因子,所以對結(jié)果影響不大,這也是為什么spss僅僅是提示,仍然會輸出因子分析結(jié)果的原因。
好了,這個(gè)是我工作中碰到的一個(gè)實(shí)際例子,之前一直困擾了我很久,現(xiàn)在寫出來與大家分享,希望能對有同樣問題的朋友一個(gè)啟發(fā),當(dāng)然里面一定有不對的地方,希望大家多多指正。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10