美文网首页
java实现多元线性回归

java实现多元线性回归

作者: lazyM | 来源:发表于2021-03-13 14:50 被阅读0次

[TOC]

一个例子

约翰逊过滤股份公司对遍布南佛罗里达州的水过滤系统提供维修保养服务。当顾客的水过滤系统出现故障时,他们就要与约翰逊公司进行联系,请求公司对他们的水过滤系统进行维修。为了估计服务时间和服务成本,约翰逊公司的管理人员希望对顾客的每一次维修请求预测必要的维修时间。所以,按小时计算的维修时间是因变量。管理人员认为,维修时间依赖两个因素:从最近一次维修服务至今水过滤系统已经使用的时间和需要维修的故障类型。由10次维修服务组成一个样本,有关资料数据如下1

维修服务请求 最近一次维修服务至今的时间(x1 维修的故障类型(x2 维修时间(y1
1 2 1 2.9
2 6 0 3.0
3 8 1 4.8
4 3 0 1.8
5 2 1 2.9
6 7 1 4.9
7 9 0 4.2
8 8 0 4.8
9 4 1 4.4
10 6 1 4.5

分析计算

我们计算利用的工具是Apache Commons Math2

准备数据
OLSMultipleLinearRegression oregression = new OLSMultipleLinearRegression();
        double[] y = new double[]{2.9, 3.0, 4.8, 1.8, 2.9,4.9,4.2,4.8,4.4,4.5};
        double[][] x = new double[10][2];
        x[0] = new double[]{2, 1};
        x[1] = new double[]{6, 0};
        x[2] = new double[]{8, 1};
        x[3] = new double[]{3, 0};
        x[4] = new double[]{2, 1};
        x[5] = new double[]{7, 1};
        x[6] = new double[]{9, 0};
        x[7] = new double[]{8, 0};
        x[8] = new double[]{4, 1};
        x[9] = new double[]{6, 1};

y代表的是维修时间,为因变量;二维数组x代表最近一次维修服务至今的时间和故障类型,为自变量,其中数字10 表示维修服务的请求次数,也即样本的数量,数字2表示自变量的个数(这里例子中有2个变量:x1,x2),每个一维数组对应一组自变量的值。

计算
oregression.newSampleData(y, x);
查看结果

模型参数

double[] beta = oregression.estimateRegressionParameters();
for (double d : beta) {
    System.out.println(d);
}

打印的结果:

0.9304953560371505
0.38761609907120753
1.2626934984520124

数组beta中的值按顺序依次代表回归方程中的常量、x1系数、x2系数,因此,最终的回归方程为:
y=0.93+0.3876x_1+1.263x_2
该方程的标准差S:

double s = oregression.estimateRegressionStandardError();

判定系数R2:

double rSquared = oregression.calculateRSquared();

参考

<div id="refer-anchor-1"></div>- [1] 《商务与经济统计》<div id="refer-anchor-2"></div>

<div id="refer-anchor-2"></div>- [2] http://commons.apache.org/proper/commons-math/userguide/stat.html#a1.4_Simple_regression<div id="refer-anchor-2"></div>

相关文章

  • java实现多元线性回归

    [TOC] 一个例子 约翰逊过滤股份公司对遍布南佛罗里达州的水过滤系统提供维修保养服务。当顾客的水过滤系统出现故障...

  • 各类统计方法R语言实现(六)

    今天是各类统计方法R语言实现的第六期,我们主要介绍多元线性回归、回归诊断。 多元线性回归 多元线性回归指的是用多个...

  • 第三天 多元线性回归

    多元线性回归 多元线性回归旨在用现有的数据构建两个或多个因变量与一个因变量之间的相关模型 多元线性回归的实现步骤和...

  • 机器学习A-Z~多元线性回归

    之前的文章已经讲述了简单线性回归的概念和代码实现,现在来继续看看多元线性回归。所谓多元线性回归其实就是自变量的个数...

  • 实现多元线性回归

    多元线性回归的实现下面我们来使用python代码实现多元线性回归: 其实在代码中,思想很简单,就是使用公式即可。其...

  • 机器学习系列(十三)——多元线性回归及knn做回归

    多元线性回归理论 相比于样本只有一个特征值的简单线性回归,多元线性回归往往更能反映研究对象的真实情况。多元线性回归...

  • 回归分析 | R语言 -- 多元线性回归

    多元线性回归 多元线性回归 是 简单线性回归[https://www.jianshu.com/p/f8b2a320...

  • Matlab一元/多元回归(后续会有更新)

    一元线性回归&一元非线性回归 多元回归/逐步回归 多元回归 先画散点图,看有没有线性性质,再决定能不能用多元线性回...

  • 2020-02-14

    线性回归:线性回归分为一元线性回归和多元线性回归,一元线性回归用一条直线描述数据之间的关系,多元回归是用一条曲线描...

  • Linear Regression

    二元线性回归 多元线性回归 其中用到

网友评论

      本文标题:java实现多元线性回归

      本文链接:https://www.haomeiwen.com/subject/bgexcltx.html