均值、方差、平方差、均方差、标准差含义及区别是什么?公式是什么,如何计算?C++代码如何编写?
【代码】均值、方差、平方差、均方差、标准差含义及区别是什么?公式是什么,如何计算?C++代码如何编写?
·
均值、方差、平方差、均方差(标准差)的含义及区别如下:
- 均值(Mean):表示数据的中心位置或集中趋势,计算公式为 μ = ∑ i = 1 n x i n \mu = \frac{\sum_{i=1}^{n} x_i}{n} μ=n∑i=1nxi,其中 n n n 是数据的个数, x i x_i xi 是每个数据点。
- 方差(Variance):衡量数据与均值的离散程度,计算公式为 σ 2 = ∑ i = 1 n ( x i − μ ) 2 n \sigma^2 = \frac{\sum_{i=1}^{n} (x_i - \mu)^2}{n} σ2=n∑i=1n(xi−μ)2。
- 平方差(Sum of Squared Differences):表示数据点与某个特定值(如均值)之间的差的平方的总和,计算公式为 ∑ i = 1 n ( x i − μ ) 2 \sum_{i=1}^{n} (x_i - \mu)^2 ∑i=1n(xi−μ)2。
- 均方差(Standard Deviation):也称为标准差,是方差的平方根,表示数据的离散程度,计算公式为 σ = ∑ i = 1 n ( x i − μ ) 2 n \sigma = \sqrt{\frac{\sum_{i=1}^{n} (x_i - \mu)^2}{n}} σ=n∑i=1n(xi−μ)2。
- 协方差(Covariance):衡量两组数据之间相关性的指标,计算公式为 c o v ( X , Y ) = ∑ i = 1 n ( x i − μ x ) ( y i − μ y ) n − 1 cov(X, Y) = \frac{\sum_{i=1}^{n} (x_i - \mu_x)(y_i - \mu_y)}{n-1} cov(X,Y)=n−1∑i=1n(xi−μx)(yi−μy),其中 X X X 和 Y Y Y 是两组数据, μ x \mu_x μx 和 μ y \mu_y μy 分别是 X X X 和 Y Y Y 的均值。
在C++中,可以使用以下代码来计算这些统计量:
#include <iostream>
#include <vector>
#include <cmath>
#include <numeric>
#include <algorithm>
double mean(const std::vector<double>& data) {
return std::accumulate(data.begin(), data.end(), 0.0) / data.size();
}
double variance(const std::vector<double>& data) {
double mean_val = mean(data);
return std::accumulate(data.begin(), data.end(), 0.0,
[mean_val](double sum, double val) { return sum + (val - mean_val) * (val - mean_val); }) / (data.size() - 1);
}
double sum_of_squared_differences(const std::vector<double>& data) {
double mean_val = mean(data);
double sum = 0.0;
for (const auto& val : data) {
sum += std::pow(val - mean_val, 2);
}
return sum;
}
double standard_deviation(const std::vector<double>& data) {
return std::sqrt(variance(data));
}

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)