99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時(shí)代主成分分析與因子分析及SPSS實(shí)現(xiàn)
主成分分析與因子分析及SPSS實(shí)現(xiàn)
2018-05-25
收藏

主成分分析與因子分析及SPSS實(shí)現(xiàn)

一、主成分分析

(1)問題提出
在問題研究中,為了不遺漏和準(zhǔn)確起見,往往會(huì)面面俱到,取得大量的指標(biāo)來進(jìn)行分析。比如為了研究某種疾病的影響因素,我們可能會(huì)收集患者的人口學(xué)資料、病史、體征、化驗(yàn)檢查等等數(shù)十項(xiàng)指標(biāo)。如果將這些指標(biāo)直接納入多元統(tǒng)計(jì)分析,不僅會(huì)使模型變得復(fù)雜不穩(wěn)定,而且還有可能因?yàn)樽兞恐g的多重共線性引起較大的誤差。有沒有一種辦法能對(duì)信息進(jìn)行濃縮,減少變量的個(gè)數(shù),同時(shí)消除多重共線性?
這時(shí),主成分分析隆重登場。
(2)主成分分析的原理
主成分分析的本質(zhì)是坐標(biāo)的旋轉(zhuǎn)變換,將原始的n個(gè)變量進(jìn)行重新的線性組合,生成n個(gè)新的變量,他們之間互不相關(guān),稱為n個(gè)“成分”。同時(shí)按照方差最大化的原則,保證第一個(gè)成分的方差最大,然后依次遞減。這n個(gè)成分是按照方差從大到小排列的,其中前m個(gè)成分可能就包含了原始變量的大部分方差(及變異信息)。那么這m個(gè)成分就成為原始變量的“主成分”,他們包含了原始變量的大部分信息。
注意得到的主成分不是原始變量篩選后的剩余變量,而是原始變量經(jīng)過重新組合后的“綜合變量”。
我們以最簡單的二維數(shù)據(jù)來直觀的解釋主成分分析的原理。假設(shè)現(xiàn)在有兩個(gè)變量X1、X2,在坐標(biāo)上畫出散點(diǎn)圖如下:


可見,他們之間存在相關(guān)關(guān)系,如果我們將坐標(biāo)軸整體逆時(shí)針旋轉(zhuǎn)45°,變成新的坐標(biāo)系Y1、Y2,如下圖:
根據(jù)坐標(biāo)變化的原理,我們可以算出:
Y1 = sqrt(2)/2 * X1 + sqrt(2)/2 * X2
Y2 = sqrt(2)/2 * X1 – sqrt(2)/2 * X2
其中sqrt(x)為x的平方根。
通過對(duì)X1、X2的重新進(jìn)行線性組合,得到了兩個(gè)新的變量Y1、Y2。
此時(shí),Y1、Y2變得不再相關(guān),而且Y1方向變異(方差)較大,Y2方向的變異(方差)較小,這時(shí)我們可以提取Y1作為X1、X2的主成分,參與后續(xù)的統(tǒng)計(jì)分析,因?yàn)樗鼣y帶了原始變量的大部分信息。
至此我們解決了兩個(gè)問題:降維和消除共線性。
對(duì)于二維以上的數(shù)據(jù),就不能用上面的幾何圖形直觀的表示了,只能通過矩陣變換求解,但是本質(zhì)思想是一樣的。
二、因子分析
(一)原理和方法:
因子分析是主成分分析的擴(kuò)展。
在主成分分析過程中,新變量是原始變量的線性組合,即將多個(gè)原始變量經(jīng)過線性(坐標(biāo))變換得到新的變量。
因子分析中,是對(duì)原始變量間的內(nèi)在相關(guān)結(jié)構(gòu)進(jìn)行分組,相關(guān)性強(qiáng)的分在一組,組間相關(guān)性較弱,這樣各組變量代表一個(gè)基本要素(公共因子)。通過原始變量之間的復(fù)雜關(guān)系對(duì)原始變量進(jìn)行分解,得到公共因子和特殊因子。將原始變量表示成公共因子的線性組合。其中公共因子是所有原始變量中所共同具有的特征,而特殊因子則是原始變量所特有的部分。因子分析強(qiáng)調(diào)對(duì)新變量(因子)的實(shí)際意義的解釋。
舉個(gè)例子:
比如在市場調(diào)查中我們收集了食品的五項(xiàng)指標(biāo)(x1-x5):味道、價(jià)格、風(fēng)味、是否快餐、能量,經(jīng)過因子分析,我們發(fā)現(xiàn)了:
x1 = 0.02 * z1 + 0.99 * z2 + e1
x2 = 0.94 * z1 – 0.01 * z2 + e2
x3 = 0.13* z1 + 0.98 * z2 + e3
x4 = 0.84 * z1 + 0.42 * z2 + e4
x5 = 0.97 * z1 – 0.02 * z2 + e1
(以上的數(shù)字代表實(shí)際為變量間的相關(guān)系數(shù),值越大,相關(guān)性越大)
第一個(gè)公因子z1主要與價(jià)格、是否快餐、能量有關(guān),代表“價(jià)格與營養(yǎng)”
第二個(gè)公因子z2主要與味道、風(fēng)味有關(guān),代表“口味”
e1-5是特殊因子,是公因子中無法解釋的,在分析中一般略去。
同時(shí),我們也可以將公因子z1、z2表示成原始變量的線性組合,用于后續(xù)分析。
(二)使用條件:
(1)樣本量足夠大。通常要求樣本量是變量數(shù)目的5倍以上,且大于100例。
(2)原始變量之間具有相關(guān)性。如果變量之間彼此獨(dú)立,無法使用因子分析。在SPSS中可用KMO檢驗(yàn)和Bartlett球形檢驗(yàn)來判斷。
(3)生成的公因子要有實(shí)際的意義,必要時(shí)可通過因子旋轉(zhuǎn)(坐標(biāo)變化)來達(dá)到。
三、主成分分析和因子分析的聯(lián)系與區(qū)別
聯(lián)系:兩者都是降維和信息濃縮的方法。生成的新變量均代表了原始變量的大部分信息且互相獨(dú)立,都可以用于后續(xù)的回歸分析判別分析、聚類分析等等。
區(qū)別:
(1)主成分分析是按照方差最大化的方法生成的新變量,強(qiáng)調(diào)新變量貢獻(xiàn)了多大比例的方差,不關(guān)心新變量是否有明確的實(shí)際意義。
(2)因子分析著重要求新變量具有實(shí)際的意義,能解釋原始變量間的內(nèi)在結(jié)構(gòu)。
SPSS沒有提供單獨(dú)的主成分分析方法,而是混在因子分析當(dāng)中,下面通過一個(gè)例子來討論主成分分析與因子分析的實(shí)現(xiàn)方法及相關(guān)問題。
 
一、問題提出
 
男子十項(xiàng)全能比賽包含100米跑、跳遠(yuǎn)、跳高、撐桿跳、鉛球、鐵餅、標(biāo)槍、400米跑、1500米跑、110米跨欄十個(gè)項(xiàng)目,總分為各個(gè)項(xiàng)目得分之和。為了分析十項(xiàng)全能主要考察哪些方面的能力,以便有針對(duì)性的進(jìn)行訓(xùn)練,研究者收集了134個(gè)頂級(jí)運(yùn)動(dòng)員的十項(xiàng)全能成績單,將通過因子分析來達(dá)到分析目的。
 
二、分析過程
 
變量視圖:
 
數(shù)據(jù)視圖(部分):
菜單選擇(分析->降維->因子分析):

打開因子分析的主界面,將十項(xiàng)成績選入”變量“框中(不要包含總分),如下:
點(diǎn)擊”描述“按鈕,打開對(duì)話框,選中”系數(shù)“和”KMO和Bartlett球形度檢驗(yàn)“:

上圖相關(guān)解釋:
”系數(shù)“:為變量之間的相關(guān)系數(shù)陣列,可以直觀的分析相關(guān)性。
”KMO和Bartlett球形度檢驗(yàn)“:用于定量的檢驗(yàn)變量之間是否具有相關(guān)性。
點(diǎn)擊”繼續(xù)“,回到主界面,點(diǎn)擊”抽取“,打開對(duì)話框。
”方法“ =>”主成分“,”輸出“=>”未旋轉(zhuǎn)的因子解“和”碎石圖“,”抽取“=>”基于特征值“,其余選擇默認(rèn)。

解釋:
①因子抽取的方法:選取默認(rèn)的主成分法即可,其余方法的計(jì)算結(jié)果可能有所差異。
②輸出:”未旋轉(zhuǎn)的因子解”極為主成分分析結(jié)果。碎石圖有助于我們判斷因子的重要性(詳細(xì)介紹見后面)。
③抽?。簽槌槿≈鞒煞郑ㄒ蜃樱┑姆椒?,一般是基于特征值大于1,默認(rèn)即可。
點(diǎn)擊”繼續(xù)“,回到主界面,點(diǎn)擊”確定“,進(jìn)入分析。
輸出的主要表格如下:
(1)相關(guān)性檢驗(yàn)
因子分析要求變量之間有相關(guān)性,所以首先要進(jìn)行相關(guān)性檢驗(yàn)。首先輸出的是變量之間的相關(guān)系數(shù)矩陣:

可以直觀的看到,變量之間有相關(guān)性。但需要檢驗(yàn),接著輸出的是相關(guān)性檢驗(yàn):
上圖有兩個(gè)指標(biāo):第一個(gè)是KMO值,一般大于0.7就說明不了之間有相關(guān)性了。第二個(gè)是Bartlett球形度檢驗(yàn),P值<0.001。綜合兩個(gè)指標(biāo),說明變量之間存在相關(guān)性,可以進(jìn)行因子分析。否則,不能進(jìn)行因子分析。
(2)提取主成分和公因子
接下來輸出主成分結(jié)果:

這就是主成分分析的結(jié)果,表中第一列為10個(gè)成分;第二列為對(duì)應(yīng)的”特征值“,表示所解釋的方差的大??;第三列為對(duì)應(yīng)的成分所包含的方差占總方差的百分比;第四列為累計(jì)的百分比。一般來說,選擇”特征值“大于1的成分作為主成分,這也是SPSS默認(rèn)的選擇。
在本例中,成分1和2的特征值大于1,他們合計(jì)能解釋71.034%的方差,還算不錯(cuò)。所以我們可以提取1和2作為主成分,抓住了主要矛盾,其余成分包含的信息較少,故棄去。
下面,輸出碎石圖,如下:
碎石圖來源于地質(zhì)學(xué)的概念。在巖層斜坡下方往往有很多小的碎石,其地質(zhì)學(xué)意義不大。碎石圖以特征值為縱軸,成分為橫軸。前面陡峭的部分特征值大,包含的信息多,后面平坦的部分特征值小,包含的信息也小。
由圖直觀的看出,成分1和2包含了大部分信息,從3開始就進(jìn)入平臺(tái)了。
接下來,輸出提取的成分矩陣:

上表中的數(shù)值為公因子與原始變量之間的相關(guān)系數(shù),絕對(duì)值越大,說明關(guān)系越密切。公因子1和9個(gè)運(yùn)動(dòng)項(xiàng)目都正相關(guān)(注意跑步運(yùn)動(dòng)運(yùn)動(dòng)的計(jì)分方式,時(shí)間越短,分?jǐn)?shù)越高),看來只能稱為“綜合運(yùn)動(dòng)”因子了。公因子2與鐵餅、鉛球正相關(guān),與1500米跑、400米跑負(fù)相關(guān),這究竟代表什么意思呢?看來只能成為“不知所云”因子了。
(三)因子旋轉(zhuǎn)
前面提取的兩個(gè)公因子一個(gè)是大而全的“綜合因子”,一個(gè)不知所云,得到這樣的結(jié)果,無疑是分析的失敗。不過,不要灰心,我們可以通過因子的旋轉(zhuǎn)來獲得更好的解釋。在主界面中點(diǎn)擊“旋轉(zhuǎn)”按鈕,打開對(duì)話框,“方法”=>“最大方差法”,“輸出”=>“旋轉(zhuǎn)解”。

點(diǎn)擊“繼續(xù)”,回到主界面點(diǎn)擊“確認(rèn)”進(jìn)行分析。輸出結(jié)果如下:
這是選擇后的成分矩陣。經(jīng)過旋轉(zhuǎn),可以看出:
公因子1得分越高,所有的跑步和跨欄成績越差,而跳遠(yuǎn)、撐桿跳等需要助跑類項(xiàng)目的成績也越差,所以公因子1代表的是奔跑能力的反向指標(biāo),可稱為“奔跑能力”。
公因子2與鐵餅和鉛球的正相關(guān)性很高,與標(biāo)槍、撐桿跳等需要上肢力量的項(xiàng)目也正相關(guān),所以該因子可以成為“上肢力量”。
經(jīng)過旋轉(zhuǎn),可以看出公因子有了更合理的解釋。
(四)結(jié)果的保存
在最后,我們還要將公因子儲(chǔ)存下來供后續(xù)使用。點(diǎn)擊“得分”按鈕,打開對(duì)話框,選中“保存為變量”,方法采用默認(rèn)的“回歸”方法,同時(shí)選中“顯示因子得分系數(shù)矩陣”。

SPSS會(huì)自動(dòng)生成2個(gè)新變量,分別為公因子的取值,放在數(shù)據(jù)的最后。同時(shí)會(huì)輸出一個(gè)因子系數(shù)表格:

由上圖,我們可以寫出公因子的表達(dá)式(用F1、F2代表兩個(gè)公因子,Z1~Z10分別代表原始變量):

F1 = -0.16*Z1+0.161*Z2+0.145*Z3+0.199*Z4-0.131*Z5-0.167*Z6+0.137*Z7+0.174*Z8+0.131*Z9-0.037*Z10
F2同理,略去。
注意,這里的變量Z1~Z10,F(xiàn)1、F2不再是原始變量,而是標(biāo)準(zhǔn)正態(tài)變換后的變量。


推薦學(xué)習(xí)書籍
《CDA一級(jí)教材》適合CDA一級(jí)考生備考,也適合業(yè)務(wù)及數(shù)據(jù)分析崗位的從業(yè)者提升自我。完整電子版已上線CDA網(wǎng)校,累計(jì)已有10萬+在讀~

免費(fèi)加入閱讀:https://edu.cda.cn/goods/show/3151?targetId=5147&preview=0

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }