2013-01-04 58 views
1

PCA將原始數據點投影到一個新的座標系中,我想確定連接舊座標系的原點和R中新座標系的原點的矢量。PCA:如何獲得指向新座標系原點的矢量?

這就是我迄今編碼:

data <- data.frame(cbind(c(5,15,21,29,31,43,49,51,61,65), 
c(33,35,24,21,27,16,18,10,4,12))) 


# Subtract columns by their mean and 
# divide with their standard deviation 
scaled_data <- scale(data, center=TRUE, scale=TRUE) 
scaled_data 
plot(scaled_data) 

# Correlation Matrix 
corrmat <- cor(scaled_data) 
corrmat 

# Compute Eigenvalues and Eigenvectors 
eigen <- eigen(corrmat) 

eigenvectors <- eigen$vectors 
eigenvectors 

eigenvalues <- eigen$values 
eigenvalues 

# Transform data 
transformed_data <- (data.matrix(scaled_data) %*% eigenvectors)*sqrt(2) 
transformed_data 

plot(transformed_data) 
+0

可能愚蠢的問題(我的,不是你的):爲什麼起源不一樣嗎?它會向您購買什麼以將原始翻譯作爲轉化的一部分? –

+0

計算分數時,sqrt(2)項的起源是什麼?謝謝。 –

+0

我從書中獲取這個值來獲得轉換數據的簡單數字。必須忘記刪除它。忘掉它。 –

回答

1

新的座標系的原點是您的數據集的重心(質又名中心):

colMeans(data) 
# X1 X2 
# 37 20