【发布时间】:2017-07-27 19:09:20
【问题描述】:
我正在对 crunchbase 数据集进行 PCA,以分析每年的投资行为。我为此使用 R。我创建了从 2000 年到 2012 年的情节。但我需要做的是最终创建一个视频,展示投资者(以点表示)如何随着时间的推移而移动。我正在使用 k-means 聚类并使用聚类进行着色。
这是我的问题: 每次我计算新一年的 pca 和 k-means 聚类时,R 都会用不同的颜色绘制聚类。
这就是我想要实现的目标: 保存 2000 年初始每个点(代表投资公司)的颜色,因此如果我计算未来几年的 PCA,我会用 2000 年的相同颜色绘制该点。
棘手的部分: 多年来添加了一些投资公司,我不想为这些年来添加的那些着色。
这是 2001 年的情节:
这只是为不同集群中的所有集群着色。但是没有考虑到2000年点的颜色,所以无法比较。
这是我使用的代码示例:
inv.mat <- cast(invtop[,1:4], investor_name~company_market, sum)
inv.names <- inv.mat$investor_name
inv.mat <- inv.mat[,3:29]
inv.log <- log(inv.mat)
inv.log[inv.log == -Inf] <- 0
fit <- kmeans(inv.log, 4, nstart= 30)
pca <- prcomp(inv.log)
pca <- as.matrix(pca$x)
plot(pca[,2], pca[,1], pch = 16, cex = 1 ,col = fit$cluster, xlab="Principal Component 1", ylab="Principal Component 2", main="VC firms")
【问题讨论】: