matlab实现矩阵主成分分析后的线性回归,得到新矩阵,进行残差分析

有一个基因表达数据的csv表,对这个csv表的矩阵进行主成分回归,每一行表示一个样本,矩阵如图所示:

img

①导入csv,获得原始大矩阵。提取出标准差不为0的列,组成新数据集M。
②提取出数据集M中的奇数列,组成小数据集N。利用N的每一列的均值和标准差,对M进行zscore得到矩阵Q。即减去N每一列的均值再除以标准差。
③做PCA分析(用SVD),输入矩阵为N,输出矩阵为主成分的系数阵,只保留系数阵的前四列
④用矩阵Q乘上系数阵的前三列,得到前四个主成分。
⑤做线性回归,y是矩阵Q的每一列,x为④的前四个主成分,得到预测矩阵P。然后将对应的残差组成新数据集,残差即P和M比较。
⑥P代替M的值,放回原始大矩阵中的位置,得到最终结果的矩阵,导出excel/csv

我想处理矩阵都是几万列,还挺大的。

例如:
0.15151358 0.113185598 0.121024137 0.058085701 0.079925792
0.236672805 0.116622684 0.123587177 0.049071578 0.082240824
0.1883595 0.099203571 0.107588611 0.054505577 0.072782752
0.195273668 0.090009783 0.093320598 0.05730524 0.068899438
0.102381218 0.083341965 0.08405292 0.057177345 0.089196684
0.165175176 0.097491731 0.157332995 0.06781864 0.068983886
0.202489741 0.089872906 0.090850417 0.060775286 0.077484749
0.156448683 0.139834418 0.124897494 0.054719368 0.100663391
0.191621125 0.084123034 0.116084797 0.059838373 0.07498987
0.150275506 0.115832183 0.111888816 0.048329987 0.082293666
0.293642607 0.088307391 0.082644012 0.052553508 0.078851503
0.201783834 0.097513892 0.136435519 0.05823373 0.076123889
0.3807087 0.156580163 0.096686748 0.066837681 0.070101836
0.233769957 0.091295828 0.120806694 0.052392431 0.076465648
0.132583045 0.091439954 0.114266236 0.05589904 0.076550252

你把基因列表发给我看一下