R語言用主成分分析(PCA)PCR回歸進(jìn)行預(yù)測(cè)汽車購買信息可視化
原文鏈接:http://tecdat.cn/?p=26672
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
在這個(gè)項(xiàng)目中,我討論了如何使用主成分分析?(PCA) 進(jìn)行簡(jiǎn)單的預(yù)測(cè)。
出于說明目的,我們將對(duì)一個(gè)數(shù)據(jù)集進(jìn)行分析,該數(shù)據(jù)集包含有關(guān)在 3 個(gè)不同價(jià)格組內(nèi)進(jìn)行的汽車購買信息以及影響其購買決定的一組特征。
首先,我們將導(dǎo)入數(shù)據(jù)集并探索其結(jié)構(gòu)。
head(caref)
眾所周知,PCA?使用歐幾里得距離來推導(dǎo)分量,因此輸入變量需要是數(shù)字的。正如我們所看到的,除了“組”變量之外,所有數(shù)據(jù)都是數(shù)字格式,因此我們不必執(zhí)行任何轉(zhuǎn)換。
為了查看數(shù)字變量在 3 個(gè)價(jià)格組中的表現(xiàn),我分別為每個(gè)數(shù)字變量生成箱線圖。
ggplot(cr_e.m, aes(x = varle, y = vle, fill = Gup)) +
geom_boxplot()
通過觀察上圖,我們可以了解到每個(gè)價(jià)格組的消費(fèi)者對(duì)所考慮的特征有不同的看法(即,給出不同的評(píng)分)。(“安全”特征的變化較小,在所有 3 個(gè)價(jià)格組中具有更高的排名/重要性)
現(xiàn)在為了更好地可視化這 3 個(gè)價(jià)格組集群如何在 3D 空間中出現(xiàn),我使用 3 個(gè)特征變量構(gòu)建了一個(gè) 3D 圖,顯示給定評(píng)級(jí)之間的顯著差異。
same3dpot <- with(carpef, scttro3d(Enirnmnt,Innoaon,Prtge
在上圖中,我們可以看到來自每個(gè)價(jià)格組的數(shù)據(jù)點(diǎn)(集群)之間的明顯差異。
在繼續(xù)應(yīng)用 PCA 之前,現(xiàn)在我將檢查輸入變量之間是否存在任何相關(guān)性。
corrplot(oras)
可以看出,“創(chuàng)新”、“安全”和“聲望”特征之間似乎有明顯的相關(guān)性。
通常在構(gòu)建模型時(shí),我們會(huì)刪除一些(不必要的)相關(guān)預(yù)測(cè)變量而不包括模型,但鑒于我們正在執(zhí)行 PCA,我們不會(huì)這樣做,因?yàn)閼?yīng)用 PCA 的想法是生成新的主成分(它們不會(huì)相互關(guān)聯(lián))并用降低的維度替換當(dāng)前的預(yù)測(cè)變量集。
pcmol <- prcomp(ca_eeued, scale. = TRUE, center = TRUE)
通過觀察 PCA 的輸出,我們可以看到前兩個(gè) PC 解釋了數(shù)據(jù)中 89% 的可變性。
通過包括 3 個(gè) PC,該模型將解釋 97% 的可變性,但由于 2 個(gè) PC 可以解釋大約 90% 的數(shù)據(jù),因此我將只使用 2 個(gè) PC。
此外,通過觀察下面的碎石圖和每個(gè)PC的重要性,我們也可以理解,只用兩個(gè)PC是可以的。
sumacamel = summary(adel)
plot(pc_el,type = "l")
由于我們只堅(jiān)持前兩個(gè)主成分,現(xiàn)在我檢查每個(gè)預(yù)測(cè)變量對(duì)每個(gè)主成分的影響量。
下面我根據(jù)它們對(duì)每個(gè)PC 的影響按降序排列了這些特性。
#對(duì)于PC 1
longScrsPC_1 <- pcael$roto[,1]
faccore_PC_1 <- abs(odingcre_PC_1)
fa_scre_PC_1raked <- nmes(rt(fac_cos1,decreasing = T))
pamod$roatn[fa_coC__and,1]
現(xiàn)在我們最終在這兩個(gè) PC 上繪制原始數(shù)據(jù),并檢查我們是否可以分別識(shí)別每個(gè)價(jià)格組的數(shù)據(jù)點(diǎn)。
#PC_n2 <- qplot(x=PC1, y=PC2
我們可以看到數(shù)據(jù)點(diǎn)是根據(jù)它們所在的每個(gè)價(jià)格進(jìn)行聚類的!
使用上述特征,現(xiàn)在我們將嘗試根據(jù)他/她對(duì)所考慮的特征給出的評(píng)級(jí)來預(yù)測(cè)一個(gè)人會(huì)購買哪種類型的汽車!
讓我們假設(shè)一個(gè)客戶對(duì)每個(gè)特征給出了以下評(píng)級(jí):
安全:9 環(huán)境:8 創(chuàng)新:5 聲望:4
現(xiàn)在讓我們嘗試預(yù)測(cè)該客戶將屬于哪個(gè)價(jià)格組:
new_ser <- c(9,8,5,4)
new_cus_group <- predict(pcmdl, newdata = car_pef_ecew_c[nrow(),]
lt_3 <- pot_2 + ge_point(aes(x=newcus_
通過觀察這個(gè)新觀察值在 PC1 和 PC2 上的位置,我們可以得出結(jié)論,新客戶更有可能購買價(jià)格組 B 的汽車!如果我需要做出一些不同的預(yù)測(cè),我個(gè)人會(huì)使用這種方法,因?yàn)樗浅?焖偾乙子诶斫夂徒忉尅_@種方法可以擴(kuò)大規(guī)模以構(gòu)建 PC 回歸模型,尤其是當(dāng)預(yù)測(cè)變量相關(guān)且需要正則化時(shí)。
最受歡迎的見解
1.R語言多元Logistic邏輯回歸 應(yīng)用案例
2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實(shí)現(xiàn)
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
4.R語言泊松Poisson回歸模型分析案例
5.R語言回歸中的Hosmer-Lemeshow擬合優(yōu)度檢驗(yàn)
6.r語言中對(duì)LASSO回歸,Ridge嶺回歸和Elastic Net模型實(shí)現(xiàn)
7.在R語言中實(shí)現(xiàn)Logistic邏輯回歸
8.python用線性回歸預(yù)測(cè)股票價(jià)格
9.R語言如何在生存分析與Cox回歸中計(jì)算IDI,NRI指標(biāo)