Questions tagged «pca»

主成分分析(PCA)是线性降维技术。它将多变量数据集简化为较小的构造变量集,以保留尽可能多的信息(尽可能多的方差)。这些变量称为主成分,是输入变量的线性组合。

1
一篇论文提到了“蒙特卡罗模拟以确定主成分的数量”;它是如何工作的?
我正在对MRI数据进行Matlab分析,其中我在尺寸为10304x236的矩阵上执行了PCA,其中10304是体素(以像素为单位)的数量,而236是时间点的数量。PCA给了我236个特征值及其相关系数。一切都很好。但是,当需要确定要保留多少个组件时,我要复制的论文说如下(请让我知道是否需要澄清,因为这只是整篇论文的一小部分): 然后,我们进行了蒙特卡洛模拟以确定每次扫描从讨厌的ROI数据中提取的主要成分(PC)的数量。通过对与编码和静止干扰ROI数据等级相同的正态分布数据执行PCA,分别为每个受试者的编码和静止数据生成了预期特征值的零分布。如果PC的相关特征值超过了来自Monte Carlo模拟的特征值的第99个置信区间,则从真实的ROI数据中选择PC进行给定的休息或编码扫描。 Tambini&Davachi,PNAS,2013年,海马多体素模式在编码后休息中的持久性与记忆有关。 我绝对不知道该怎么办。我习惯于根据解释的累积方差来选择组件。我的想法是这样的: 然后,我们进行了蒙特卡洛模拟以确定每次扫描从讨厌的ROI数据中提取的主要成分(PC)的数量。 蒙特卡洛模拟人生只是意味着要进行以下1000次(或类似次数),对吗? 通过对与编码和剩余扰动ROI数据同等等级的正态分布数据执行PCA,可以生成预期特征值的零分布。 首先,我假设“相等等级”基本上意味着我将创建一个与原始矩阵大小相同的矩阵(10304x236)。就“等秩的正态分布数据”而言……这是否意味着我应该根据正态分布创建一个随机数为10304x236的矩阵?Matlab具有一个称为“ normrnd”的功能,可以执行此操作,但需要输入mu和sigma。我会使用与从初始数据集中获得的相同的mu和sigma吗?这或多或少是“期望特征值”的含义,因为我不知道期望特征值的分布是什么样。 我猜我的问题或多或少是我不知道如何对特征值进行“零分布”。

1
为什么主成分分数不相关?
假设是均值数据矩阵。矩阵为,具有m个不同的特征值,特征向量\ mathbf s_1,\ mathbf s_2 ... \ mathbf s_m正交。S = cov (A)m × m m s 1 s 2 s m一个一个\mathbf AS =cov( A)小号=冠状病毒(一个)\mathbf S=\text{cov}(\mathbf A)米× 米米×米m\times m米米ms1个s1个\mathbf s_1s2s2\mathbf s_2smsm\mathbf s_m 第iii个主要成分(有人称其为“分数”)是向量 zi=Asizi=Asi\mathbf z_i = \mathbf A\mathbf s_i。换句话说,它是\ mathbf A的列的线性组合AA\mathbf A,其中系数是\ mathbf S的第iii个特征向量的分量。SS\mathbf S 我不明白为什么zizi\mathbf z_i和zjzj\mathbf z_j对于所有i \ neq j都不相关i≠ji≠ji\neq …

2
一小部分布尔特征样本的PCA和频谱聚类之间的差异
我有50个样本的数据集。每个样本均由11个(可能相关的)布尔特征组成。我想介绍一下如何在2D图上可视化这些样本,并检查50个样本中是否存在聚类/分组。 我尝试了以下两种方法: (a)在50x11矩阵上运行PCA,并选择前两个主要成分。将数据投影到2D图上并运行简单的K均值以识别聚类。 (b)构造一个50x50(余弦)相似度矩阵。运行频谱聚类以降低维数,然后再次进行K均值。 直接进行PCA与使用相似性矩阵的特征值之间在概念上有什么区别?这个比那个好吗? 此外,还有更好的方法以2D形式显示此类数据吗?由于我的样本大小始终限制为50,并且功能集始终在10-15范围内,因此我愿意即时尝试多种方法并选择最佳方法。 相关问题: 通过聚类或PCA对样本进行分组

4
R中的离散时间事件历史(生存)模型
我正在尝试在R中拟合离散时间模型,但不确定如何执行。 我读过您可以将因变量组织在不同的行中,每个时间观察行一个,并将该glm函数与logit或cloglog链接一起使用。从这个意义上讲,我有三列:ID,Event(在每个时间范围内为1或0)和Time Elapsed(自观察开始以来)以及其他协变量。 如何编写适合模型的代码?哪个因变量?我想我可以将其Event用作因变量,并将其包括Time Elapsed在协变量中。但是,会发生什么ID呢?我需要吗? 谢谢。
10 r  survival  pca  sas  matlab  neural-networks  r  logistic  spatial  spatial-interaction-model  r  time-series  econometrics  var  statistical-significance  t-test  cross-validation  sample-size  r  regression  optimization  least-squares  constrained-regression  nonparametric  ordinal-data  wilcoxon-signed-rank  references  neural-networks  jags  bugs  hierarchical-bayesian  gaussian-mixture  r  regression  svm  predictive-models  libsvm  scikit-learn  probability  self-study  stata  sample-size  spss  wilcoxon-mann-whitney  survey  ordinal-data  likert  group-differences  r  regression  anova  mathematical-statistics  normal-distribution  random-generation  truncation  repeated-measures  variance  variability  distributions  random-generation  uniform  regression  r  generalized-linear-model  goodness-of-fit  data-visualization  r  time-series  arima  autoregressive  confidence-interval  r  time-series  arima  autocorrelation  seasonality  hypothesis-testing  bayesian  frequentist  uninformative-prior  correlation  matlab  cross-correlation 

3
通过PCA进行的Mahalanobis距离
我有一个 Ñ × pñ×pn\times p 矩阵,其中 ppp 是基因的数量, ññn是患者人数。任何使用过此类数据的人都知道ppp 总是大于 ññn。使用功能选择我已经ppp 下降到一个更合理的数字 ppp 仍然大于 ññn。 我想根据患者的遗传特征计算其相似度;我可以使用欧式距离,但是马哈拉诺比斯似乎更合适,因为它考虑了变量之间的相关性。问题(如在此说明的交)是Mahalanobis距离,特别是协方差矩阵,不工作时n &lt; pñ&lt;pn < p。当我在R中运行马氏距离时,得到的错误是: Error in solve.default(cov, ...) : system is computationally singular: reciprocal condition number = 2.81408e-21 到目前为止,为了解决这个问题,我使用了PCA,而不是使用基因,而是使用了成分,这似乎使我能够计算出马氏距离。5个分量代表方差的80%,所以现在Ñ &gt; pñ&gt;pn > p。 我的问题是:我可以使用PCA有意义地获取患者之间的马氏距离,还是不合适?是否有替代距离指标在以下情况下起作用n &lt; pñ&lt;pn < p 并且之间也有很大的相关性 ññn 变量?

2
如何找到多边形的协方差矩阵?
假设您有一个由一组坐标(x1,y1)...(xn,yn)(x1,y1)...(xn,yn)(x_1,y_1)...(x_n,y_n)定义的多边形。。。(x n,y n)并且其质心在(0,0)(0,0)(0,0)。您可以将多边形视为具有多边形边界的均匀分布。 我正在寻找一种可以找到多边形的协方差矩阵的方法。 我怀疑多边形的协方差矩阵与面积的第二矩密切相关,但是我不确定它们是否相等。在我链接的Wikipedia文章中找到的公式似乎(这里是一个猜测,对我来说不是很清楚)指的是绕x,y和z轴而不是多边形的主轴的旋转惯量。 (顺便说一句,如果有人可以指出我如何计算多边形的主轴,那对我也很有用) 试图仅对坐标执行PCA是很诱人的,但是这样做会遇到这样的问题,即坐标不一定在多边形周围均匀分布,因此不能代表多边形的密度。一个极端的例子是北达科他州的轮廓,其多边形由紧随红河的大量点定义,再加上仅两个定义该州西部边缘的点。

1
在GWAS数据集的PCA投影中,孩子如何设法将父母团结在一起?
取20个随机点与每个一万维空间从坐标IID ñ(0 ,1 )ñ(0,1个)\mathcal N(0,1)。将它们分成10对(“对”),并将每对的平均值(“子”)添加到数据集中。然后对所得的30点进行PCA并绘制PC1与PC2的关系图。 发生了一件了不起的事情:每个“家庭”形成一个紧密相连的三元组。当然,在最初的10,000维空间中,每个孩子都更接近其父母中的每个,因此可以期望在PCA空间中每个孩子也都离父母更近。但是,在PCA空间中,每对父母也彼此靠近,即使在原始空间中,它们只是随机点! 在PCA预测中,孩子如何设法将父母团结在一起? \quad\quad\quad\quad 人们可能会担心,这在某种程度上受到以下事实的影响:孩子的规范低于父母。这似乎无关紧要:如果我将子代生成为(x + y)/ 2–√(X+ÿ)/2(x+y)/\sqrt{2},其中XXx和ÿÿy是父母点,那么它们平均具有与父母相同的范数。但是我仍然在PCA领域从质上观察到相同的现象: \quad\quad\quad\quad 这个问题使用的是玩具数据集,但其动机是我在一个全基因组关联研究(GWAS)的真实数据集中所观察到的,其中维度是单核苷酸多态性(SNP)。该数据集包含母婴三重奏。 码 %matplotlib notebook import numpy as np import matplotlib.pyplot as plt np.random.seed(1) def generate_families(n = 10, p = 10000, divide_by = 2): X1 = np.random.randn(n,p) # mothers X2 = np.random.randn(n,p) # fathers X3 = (X1+X2)/divide_by # …

3
当n,p都大时,PCA太慢:替代方案?
问题设定 我有高维度(4096)的数据点(图像),我正尝试以2D方式进行可视化。为此,我以类似于以下Karpathy示例代码的方式使用t- sne。 该scikit学习文档,建议使用PCA先降低数据的维度: 如果特征数量非常多,强烈建议使用另一种降维方法(例如,对于密集数据使用PCA或对于稀疏数据使用TruncatedSVD)将尺寸数量减少到合理的数量(例如50个)。 我正在使用Darks.Liu的以下代码在Java中执行PCA: //C=X*X^t / m DoubleMatrix covMatrix = source.mmul(source.transpose()).div(source.columns); ComplexDoubleMatrix eigVal = Eigen.eigenvalues(covMatrix); ComplexDoubleMatrix[] eigVectorsVal = Eigen.eigenvectors(covMatrix); ComplexDoubleMatrix eigVectors = eigVectorsVal[0]; //Sort sigen vector from big to small by eigen values List&lt;PCABean&gt; beans = new ArrayList&lt;PCA.PCABean&gt;(); for (int i = 0; i &lt; eigVectors.columns; i++) { …

2
了解此PCA冰淇淋销售量与温度的关系图
我正在获取温度与冰淇淋销售的虚拟数据,并使用K均值(n个群集= 2)将其分类以区分2类(完全虚拟)。 现在,我正在对此数据进行主成分分析,我的目标是了解我所看到的。我知道PCA的目的是减少尺寸(显然不是在这种情况下)并显示元素的变化。但是,您如何阅读下面的PCA图,即在PCA图中您可以讲述温度与冰淇淋的故事?第一(X)和第二(Y)PC是什么意思?

2
可扩展的尺寸缩减
考虑到特征数量恒定,Barnes-Hut t-SNE的复杂度为,随机投影和PCA的复杂度为使它们对于非常大的数据集“负担得起”。O (n )O(nlogn)O(nlog⁡n)O(n\log n)O(n)O(n)O(n) 另一方面,依赖多维缩放的方法具有复杂度。O(n2)O(n2)O(n^2) 是否存在其他复杂度低于降维技术(除了琐碎的降维技术,例如,看前列?O (n log n )kkkO(nlogn)O(nlog⁡n)O(n\log n)

1
PCA图的楔形表示什么?
在关于文本分类的自动编码器的论文中, Hinton和Salakhutdinov演示了二维LSA(与PCA密切相关)产生的图:。 将PCA应用于绝对不同的略高维度的数据,我得到了一个看起来类似的图:(在这种情况下,我真的很想知道是否有任何内部结构)。 如果我们将随机数据输入到PCA中,则会得到一个圆盘状的斑点,因此这种楔形的形状不是随机的。它本身意味着什么吗?

3
旋转PCA组件以均衡每个组件中的方差
我试图通过对数据集执行PCA并丢弃最后几台PC来降低数据集的维数和噪声。之后,我想在其余PC上使用一些机器学习算法,因此我想通过均衡PC的方差来标准化数据,以使算法更好地工作。 一种简单的方法是简单地将方差标准化为单位值。但是,第一台PC与原始数据集相比,包含的原始方差更多,而我仍然希望为其赋予更多的“权重”。因此,我想知道:是否有一种简单的方法可以拆分方差并与方差较小的PC共享? 另一种方法是将PC映射回原始特征空间,但是在那种情况下,维数也会增加到原始值。 我想最好使结果列保持正交,但这时没有必要。

3
如何判断PCA结果中没有模式?
我有19个变量的1000多个样本数据集。我的目标是根据其他18个变量(二进制和连续变量)预测一个二进制变量。我非常有信心6个预测变量与二进制响应相关联,但是,我想进一步分析数据集并寻找我可能会缺少的其他关联或结构。为了做到这一点,我决定使用PCA和群集。 当对归一化的数据运行PCA时,为了保留85%的差异,需要保留11个组件。 通过绘制对图,我得到了: 我不确定下一步是什么...我在pca中看不到明显的模式,我想知道这是什么意思,以及它是否可能是由于某些变量是二进制变量而引起的。通过运行具有6个聚类的聚类算法,我得到以下结果,尽管有些斑点看起来比较突出(黄色斑点),但这并不是一个确切的改进。 您可能会说,我不是PCA方面的专家,但是我看到了一些教程,以及如何了解高维空间中的结构是多么强大。使用著名的MNIST数字(或IRIS)数据集,效果很好。我的问题是:我现在应该怎么做才能使PCA更加有意义?聚类似乎没有任何用处,我如何判断PCA中没有模式,或者接下来我该怎么做才能在PCA数据中找到模式?
9 pca 

1
如何对主成分应用回归来预测输出变量?
我从tutorial1,link1和link2了解了主成分分析的基础知识。 我有100个变量的数据集(包括输出变量Y),我想通过PCA将变量减少到40个,然后使用这40个变量预测变量Y。 问题1:在获取主成分并选择前40个成分之后,如果对其应用回归,则会得到一些适合数据的函数。但是如何根据原始数据预测变量Y?要预测变量YI的输入有(100-1)个变量,我如何知道要从原始的100-1变量中选择哪个40个变量? 问题2:我将PCA反转了,并从那40个主要组件中获取了数据。但是数据发生了变化,因为我只选择了前40个组件。将回归应用于这些数据是否有意义? 我使用Matlab /八度。
9 regression  pca 

2
主成分分析输出的结论
我试图了解按以下方式进行的主成分分析的输出: &gt; head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa &gt; res = prcomp(iris[1:4], scale=T) &gt; …
9 r  pca  interpretation 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.