[英]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.