如何知道椭球体的长度而不使用 R 中的特征值绘制它们

问题描述 投票:0回答:1

我有 3 个参数:A、B 和 C,每个参数都有 20000 个数据。当我将它们放在 3D 图中时,它们形成一个点云,A 位于 X 轴,B 位于 Y 轴,C 位于 Z 轴。我想在90%协方差误差椭圆体中修复这个点云,并在> 1000个样本中单独确定长度,即宽度、高度和长度。宽度为 X 轴,高度为 Y 轴,长度为 Z 轴)。因此,对于每个样本:

1) 我用 var() 计算 协变矩阵

covMat <- var(cbind(A,B,C)) 
covMat
           A          B          C
A 0.08269010 0.05330448 0.05329601
B 0.05330448 0.33033311 0.14017367
C 0.05329601 0.14017367 0.18732865

2) 我用 eigen() 计算 特征值

evals<-eigen(covMat)$values
evals
[1] 0.43162433 0.10861830 0.06010923

#我得到3个特征值,从大到小排序

3) 我确定 90% 协方差误差椭球体的 长度

ell.len <- 2*sqrt(6.251*evals)
ell.len
[1] 2.971533 1.666728 1.325708

棘手的事情:由于特征值总是按递减顺序我如何知道 ell.len 的哪个数字对应于每个长度(宽度、高度和长度),因为有时高度可能会更大比宽度和长度以及其他组合。我想知道这一点,因为我想在每个样本中确定椭圆体何时长(高度 > 宽度 > 长度)、扁圆(高度 > 宽度 > 高度 > 长度)和其他可能的组合 (n = 1000)。

提前非常感谢您,希望我的问题很清楚。

r eigenvalue
1个回答
0
投票

您可以绕过

eigen
功能并仅使用

eigen <- .Internal(La_rg(covMat, TRUE))$values
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.