一元线性回归模型参数估计c++
时间: 2024-05-08 08:11:38 浏览: 118
一元线性回归模型的参数估计可以使用最小二乘法来实现。下面是一个使用C++实现一元线性回归模型参数估计的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <cmath>
// 定义一元线性回归模型的参数估计函数
void linearRegression(const std::vector<double>& x, const std::vector<double>& y, double& slope, double& intercept) {
int n = x.size();
double sumX = 0.0, sumY = 0.0, sumXY = 0.0, sumX2 = 0.0;
// 计算各项和
for (int i = 0; i < n; i++) {
sumX += x[i];
sumY += y[i];
sumXY += x[i] * y[i];
sumX2 += x[i] * x[i];
}
// 计算斜率和截距
slope = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);
intercept = (sumY - slope * sumX) / n;
}
int main() {
// 输入数据
std::vector<double> x = {1, 2, 3, 4, 5};
std::vector<double> y = {2, 4, 6, 8, 10};
// 参数估计
double slope, intercept;
linearRegression(x, y, slope, intercept);
// 输出结果
std::cout << "Slope: " << slope << std::endl;
std::cout << "Intercept: " << intercept << std::endl;
return 0;
}
```
这段代码实现了一元线性回归模型的参数估计,通过最小二乘法计算出斜率和截距。输入的x和y分别代表自变量和因变量的数据,输出的slope和intercept分别代表估计得到的斜率和截距。
阅读全文