以前在统计学的学习中,有回归分析,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析,最小二乘法可根据给定的数据拟合出一条近似的直线。
package cn.zhf.test;/** * 最小二乘法 线性回归 y = a*x + b * * b = sum( y ) / n - a * sum( x ) / n * * a = ( n * sum( xy ) - sum( x ) * sum( y ) ) / ( n * sum( x^2 ) - sum(x) ^ 2 ) * */public class LinearRegression {public static void main(String[] args) {int n = 0;double[] x = { 1, 2, 3 };double[] y = { 3, 6, 9 };// 计算总和double sumx = 0.0, sumy = 0.0, sumx2 = 0.0;while (n < x.length) {sumx += x[n];sumx2 += x[n] * x[n];sumy += y[n];n++;}// 求平均数double xbar = sumx / n;double ybar = sumy / n;// 计算系数double xxbar = 0.0, yybar = 0.0, xybar = 0.0;for (int i = 0; i < n; i++) {xxbar += (x[i] - xbar) * (x[i] - xbar);yybar += (y[i] - ybar) * (y[i] - ybar);xybar += (x[i] - xbar) * (y[i] - ybar);}double beta1 = xybar / xxbar;double beta0 = ybar - beta1 * xbar;System.out.println("y = " + beta1 + " * x + " + beta0); }}
本文转载自:CSDN博客
欢迎加入我爱机器学习QQ14群:336582044
微信扫一扫,关注我爱机器学习公众号