关联分析——Pearson C++代码
时间: 2023-10-23 09:13:02 浏览: 45
以下是基于 C++ 实现的 Pearson 相关系数计算代码:
```cpp
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
// 计算平均值函数
double mean(vector<double> nums) {
double sum = 0;
for (int i = 0; i < nums.size(); i++) {
sum += nums[i];
}
return sum / nums.size();
}
// 计算样本标准差函数
double standard_deviation(vector<double> nums, double mu) {
double squared_sum = 0;
for (int i = 0; i < nums.size(); i++) {
squared_sum += pow(nums[i] - mu, 2);
}
return sqrt(squared_sum / (nums.size() - 1));
}
// 计算 Pearson 相关系数函数
double pearson_correlation(vector<double> x, vector<double> y) {
double mu_x = mean(x);
double mu_y = mean(y);
double sigma_x = standard_deviation(x, mu_x);
double sigma_y = standard_deviation(y, mu_y);
double sum = 0;
for (int i = 0; i < x.size(); i++) {
sum += (x[i] - mu_x) * (y[i] - mu_y);
}
return sum / ((x.size() - 1) * sigma_x * sigma_y);
}
int main() {
vector<double> x = {1, 2, 3, 4, 5};
vector<double> y = {2, 4, 6, 8, 10};
double corr = pearson_correlation(x, y);
cout << "Pearson correlation: " << corr << endl;
return 0;
}
```
代码中的 `mean` 函数用于计算平均值,`standard_deviation` 函数用于计算样本标准差,`pearson_correlation` 函数用于计算 Pearson 相关系数。在 `main` 函数中,我们定义了两个向量 `x` 和 `y`,表示两组数据,调用 `pearson_correlation` 函数计算它们的 Pearson 相关系数,并输出结果。