我需要计算 data.frame 的协方差,但如果 data.frame 只有一行,我会得到 NaN 矩阵。我应该怎么做data.frame的协方差与一行?
主要问题是:我有一个来自正态分布的观察结果(是的,有时它太小了)我想计算均值和协方差矩阵以最大化似然函数
如果只有一个观察结果是可能的吗?
我需要计算 data.frame 的协方差,但如果 data.frame 只有一行,我会得到 NaN 矩阵。我应该怎么做data.frame的协方差与一行?
主要问题是:我有一个来自正态分布的观察结果(是的,有时它太小了)我想计算均值和协方差矩阵以最大化似然函数
如果只有一个观察结果是可能的吗?
摘自?cov
The denominator n - 1 is used which gives an unbiased estimator of
the (co)variance for i.i.d. observations. These functions return
‘NA’ when there is only one observation (whereas S-PLUS has been
returning ‘NaN’), and fail if ‘x’ has length zero.
如果您需要除以n
而不是n-1
,我建议编写一个特殊的协方差函数。
如果您只有一个观察值,则未定义协方差。因此,矩阵NaN
是完全合理的输出。
至于如何在您的问题的背景下最好地处理这个问题,在不了解您的问题的情况下是不可能说的。
根据您的评论,执行以下操作:
检查数据框是否只有一行。如果它只有一行,请使用var
R 中的函数而不是函数来查找方差cov
。如果它有多于一行,请使用cov
.
请注意,向量与其自身的协方差与该向量的方差相同。