R語言之主成分分析 PCA 貢獻率

2021-07-26 03:49:16 字數 1799 閱讀 5188

1、關鍵點

綜述:主成分分析 因子分析典型相關分析,三種方法的共同點主要是用來對資料降維處理的 從資料中提取某些公共部分,然後對這些公共部分進行分析和處理。

#主成分分析 是將多指標化為少數幾個綜合指標的一種統計分析方法

主成分分析是一種通過降維技術把多個變數化成少數幾個主成分的方法,這些主成分能夠反映原始變數的大部分資訊,他們通常表示為原始變數的線性組合。

2、函式總結

#r中作為主成分分析最主要的函式是princomp()函式

#princomp()主成分分析

可以從相關陣或者從協方差陣做主成分分析

#summary()提取主成分資訊

#loadings()顯示主成分分析或因子分析中載荷的內容

#predict()**主成分的值

#screeplot()畫出主成分的碎石圖

#biplot()畫出資料關於主成分的散點圖和原座標在主成分下的方向

3、案例

#現有30名中學生身高、體重、胸圍、坐高資料,對身體的四項指標資料做主成分分析。

#1.載入原始資料

test

x1=c(148, 139, 160, 149, 159, 142, 153, 150, 151, 139,

140, 161, 158, 140, 137, 152, 149, 145, 160, 156,

151, 147, 157, 147, 157, 151, 144, 141, 139, 148),

x2=c(41, 34, 49, 36, 45, 31, 43, 43, 42, 31,

29, 47, 49, 33, 31, 35, 47, 35, 47, 44,

42, 38, 39, 30, 48, 36, 36, 30, 32, 38),

x3=c(72, 71, 77, 67, 80, 66, 76, 77, 77, 68,

64, 78, 78, 67, 66, 73, 82, 70, 74, 78,

73, 73, 68, 65, 80, 74, 68, 67, 68, 70),

x4=c(78, 76, 86, 79, 86, 76, 83, 79, 80, 74,

74, 84, 83, 77, 73, 79, 79, 77, 87, 85,

82, 78, 80, 75, 88, 80, 76, 76, 73, 78)

)#2.作主成分分析並顯示分析結果

test.pr

當cor=false表示用樣本的協方差陣s做主成分分析

summary(test.pr,loadings=true) #loading是邏輯變數當loading=true時表示顯示loading 的內容

#loadings的輸出結果為載荷是主成分對應於原始變數的係數即q矩陣

分析結果含義

#----standard deviation 標準差

其平方為方差=特徵值

#----proportion of variance 方差貢獻率

#----cumulative proportion 方差累計貢獻率

#由結果顯示 前兩個主成分的累計貢獻率已經達到96% 可以捨去另外兩個主成分 達到降維的目的

因此可以得到函式表示式 z1=-0.497x'1-0.515x'2-0.481x'3-0.507x'4

z1= 0.543x'1-0.210x'2-0.725x'3-0.368x'4

#4.畫主成分的碎石圖並**

screeplot(test.pr,type="lines")

p由碎石圖可以看出 第二個主成分之後 圖線變化趨於平穩因此可以選擇前兩個主成分做分析

R語言 PCA 主成分分析)

1 關鍵點 綜述 主成分分析 因子分析 典型相關分析,三種方法的共同點主要是用來對資料降維處理的從資料中提取某些公共部分,然後對這些公共部分進行分析和處理。主成分分析 是將多指標化為少數幾個綜合指標的一種統計分析方法 主成分分析是一種通過降維技術把多個變數化成少數幾個主成分的方法,這些主成分能夠反映...

機器學習演算法之 主成分分析(PCA)

降維是對資料高維度特徵的一種預處理方法。降維是將高維度的資料保留下最重要的一些特徵,去除雜訊和不重要的特徵,從而實現提公升資料處理速度的目的。在實際的生產和應用中,降維在一定的資訊損失範圍內,可以為我們節省大量的時間和成本。降維也成為了應用非常廣泛的資料預處理方法。1 使得資料集更易使用 2 降低演...

風火程式設計 機器學習之主成分分析 PCA

第一主成分 coding utf 8 import numpy as np import matplotlib.pyplot as plt x np.empty 100,2 x 0 np.random.uniform 0.100.size 100 x 1 0.75 x 0 3.np.random.n...