皮尔逊相关系数公式c++
时间: 2023-11-18 17:52:22 浏览: 33
皮尔逊相关系数是一种衡量两个变量之间线性关系强度的统计量。它的公式可以用C++来实现如下:
```cpp
#include <iostream>
#include <vector>
#include <cmath>
// 计算平均值
double mean(const std::vector<double>& data) {
double sum = 0.0;
for (const auto& value : data) {
sum += value;
}
return sum / data.size();
}
// 计算皮尔逊相关系数
double pearsonCoefficient(const std::vector<double>& x, const std::vector<double>& y) {
if (x.size() != y.size()) {
throw std::invalid_argument("输入向量的长度不相等"); }
double xMean = mean(x);
double yMean = mean(y);
double numerator = 0.0;
double denominatorX = 0.0;
double denominatorY = 0.0;
for (int i = 0; i < x.size(); ++i) {
numerator += (x[i] - xMean) * (y[i] - yMean); denominatorX += std::pow(x[i] - xMean, 2);
denominatorY += std::pow(y[i] - yMean, 2);
}
double denominator = std::sqrt(denominatorX * denominatorY);
return numerator / denominator;
}
int main() {
// 示例数据
std::vector<double> x = {1.0, 2.0, 3.0, 4.0, 5.0};
std::vector<double> y = {2.0, 4.0, 6.0, 8.0, 10.0};
double coefficient = pearsonCoefficient(x, y);
std::cout << "皮尔逊相关系数: " << coefficient << std::endl;
return 0;
}
```
在上述代码中,我们首先实现了一个计算平均值的函数 `mean`,然后定义了 `pearsonCoefficient` 函数来计算皮尔逊相关系数。最后,在 `main` 函数中给出