簡體   English   中英

主成分分析中的零值處理

[英]Dealing with Zero Values in Principal Component Analysis

我一直在努力使PCA正常運行,我認為這是因為數據集中的值為零。 但是我不知道如何解決這個問題。

第一個問題是,零值不是缺失值(它們是某個部門中沒有工作的領域),因此我可能應該將其保留在那里。 我感到不舒服,因為它們為零,因此可能會被排除在外。

其次,即使我嘗試刪除所有丟失的數據,我仍然會收到相同的錯誤消息。

從以下代碼開始,我收到以下錯誤消息:

urban.pca.cov <- princomp(urban.cov, cor-T)
Error in cov.wt(z) : 'x' must contain finite values only

另外,我可以這樣做:

urban.cut<- na.omit(urban.cut)

> sum(is.na(urban.cut))
  [1] 0

然后再次運行它,並得到相同的問題。

urban.pca.cov <- princomp(urban.cov, cor-T)
Error in cov.wt(z) : 'x' must contain finite values only

這是缺少數據的問題嗎? 根據此PCA教程,我已經對所有變量進行了日志轉換。 這是我的數據結構。

> str(urban.cut)
'data.frame':   5490 obs. of  13 variables:
$ median.lt       : num  2.45 2.57 2.53 2.6 2.31 ...
$ p.nga.lt        : num  0.547 4.587 4.529 4.605 4.564 ...
$ p.mbps2.lt      : num  1.66 4.17 4 3.9 4.2 ...
$ density.lt      : num  3.24 3.44 3.85 3.21 4.28 ...
$ p_m_s.lt        : num  4.54 4.61 4.56 4.61 4.61 ...
$ p_m_l.lt        : num  1.87 -Inf 1.44 -Inf -Inf ...
$ p.tert.lt       : num  4.59 4.61 4.55 4.61 4.61 ...
$ p.kibs.lt       : num  4.25 3.05 3.12 3 3.03 ...
$ p.edu.lt        : num  4.14 2.6 2.9 2.67 2.57 ...
$ p.non.white.lt  : num  3.06 3.56 3.82 2.94 3.52 ...
$ p.claim.lt      : num  0.459 1.287 1.146 1.415 1.237 ...
$ d.connections.lt: num  2.5614 0.6553 5.2573 0.9562 -0.0252 ...
$ SAM.KM.lt2      : num  1.449 1.081 1.071 1.246 0.594 ...

預先感謝您的幫助。

在我看來,R想要有限的值。 -inf不是-inf 它是負無窮大。 如果您確實需要對數據進行日志轉換而不是log 0 ,也許您應該執行log(data + 1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM