一元线性回归的详解及其Spss和Java的实现 Java实现

MATLAB算法实战应用案例精讲-【数模应用】多元线性回归(MLR)(附Java、R语言、python和matlab代码实现) 在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大。 阅读详情
这里对一元线性回归的相关系数和回归系数的java实现,由于都是一般的计算没有什么东西可以说的、就简单的计算了个相关系数和回归系数的检验、另一个目的也是想学下PIOjar包、
package com.regression;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class RegressionDemo {
    /**
     * 将excel表中每一行的数据封装成一个对象放入list中
     * @return
     */
    private static List<BankDemo> readSheet(){
        List<BankDemo> sheetList = new ArrayList<BankDemo>();
        BankDemo bank = null;
        HSSFWorkbook hssfwb=null;
        HSSFSheet hssfSheet = null;
        HSSFRow hssfRow = null;
        try {
            //拿到工作簿
            InputStream input = new FileInputStream(new File("f:\\javatest\\bank.xls"));
            hssfwb = new HSSFWorkbook(input);
            //拿到sheet
            hssfSheet = hssfwb.getSheetAt(0);

            //循环行
            for(int rowNum=1; rowNum<hssfSheet.getLastRowNum()+1;rowNum++){
                bank = new BankDemo();

                //拿到行
                hssfRow = hssfSheet.getRow(rowNum);
                bank.setBankId((int) hssfRow.getCell(0).getNumericCellValue());
                bank.setBldk(hssfRow.getCell(1).getNumericCellValue());
                bank.setDkye(hssfRow.getCell(2).getNumericCellValue());
                bank.setYsdk(hssfRow.getCell(3).getNumericCellValue());
                bank.setXmgs(hssfRow.getCell(4).getNumericCellValue());
                bank.setZctze(hssfRow.getCell(5).getNumericCellValue());

                sheetList.add(bank);
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return sheetList;
    }

    /**
     * 计算ListOne均值
     */
    public static Double comMeanOne(List<Double> listOne){
        double sumOne=0;
        for(int x=0; x<listOne.size();x++){
            sumOne = sumOne + listOne.get(x);
        }
        return sumOne/listOne.size();
    }

    /**
     * 计算listTwo的均值
     * @return
     */
    public static Double comMeanTwo(List<Double> listTwo){
        double sumTwo=0;
        for(int x=0; x<listTwo.size();x++){
            sumTwo +=  listTwo.get(x);
        }
        return sumTwo/listTwo.size();
    }

/**
 * 任意两列的相关性分析方法
 * @param args
 */
    public static Map<Double,Double> correAnalyse(List<Double> listOne,List<Double> listTwo){

        //计算样本均值

        double meanOne=0, meanTwo=0;
        double upValue = 0, lowValue=0, lowValueOne=0, lowValueTwo=0;
        double correValue =0, tValue=0;

        Map<Double,Double> correMap = new HashMap<Double,Double>();

        meanOne = comMeanOne(listOne);
        meanTwo = comMeanTwo(listTwo);

        //计算相关分析公式的分子部分
        for(int i =0;i<listOne.size();i++){
            upValue = upValue + ((listOne.get(i)-meanOne)*(listTwo.get(i)-meanTwo));
        }
        //计算分母部分
        for(int i=0;i<listOne.size();i++){
            lowValueOne =lowValueOne + Math.pow(listOne.get(i)-meanOne, 2);
            lowValueTwo =lowValueTwo + Math.pow(listTwo.get(i)-meanTwo, 2);
        }
        lowValue = Math.sqrt(lowValueOne*lowValueTwo);

        //计算相关系数
        correValue = upValue/lowValue;
        //计算t检验统计量的值
        tValue = Math.abs(correValue)*(Math.sqrt((listOne.size()-2)/(1-Math.pow(correValue, 2))));

        correMap.put(correValue, tValue);
        return correMap;
    }

    /**
     * 
     * @param args
     */
    public static Map<Double,Double> regreAnalyse(List<Double>listX,List<Double>listY){
        //这里假设不存在补差空缺数字的问题
        double templeOne=0,templeTwo=0,templex=0,templey=0;
        double upValueOne =0, upValueTwo=0,lowValueOne=0,lowValueTwo=0;
        double meanOne=0,meanTwo=0;
        double betaOne =0, betaZero =0;

        int n = listX.size();
        Map<Double,Double> regreMap = new HashMap<Double,Double>();

        meanOne = comMeanOne(listX);
        meanTwo = comMeanTwo(listY);

        for(int i=0;i<n;i++){
            templeOne += listX.get(i)*listY.get(i);
            templex += listX.get(i);
            templey += listY.get(i);
            templeTwo += Math.pow(listX.get(i), 2);
        }
        upValueOne = n*templeOne;
        upValueTwo = templex * templey;
        lowValueOne =n*templeTwo;
        lowValueTwo = Math.pow(templex, 2);

        //计算betaOne
        betaOne = (upValueOne-upValueTwo)/(lowValueOne-lowValueTwo);
        betaZero = meanTwo - betaOne*meanOne;

        regreMap.put(betaZero,betaOne);
        return regreMap;

    }


    public static void main(String[] args) {
        List<BankDemo> list = readSheet();
        List<Double> listOne = new ArrayList<Double>(),
                listTwo = new ArrayList<Double>();
        for(BankDemo bank:list){
            listOne.add(bank.getBldk());
            listTwo.add(bank.getDkye());
        }
        Map<Double,Double> correMap = correAnalyse(listOne,listTwo),
                regreMap = regreAnalyse(listTwo,listOne);
        System.out.println("r and t of the BLDK with DKYE are:   "+ correMap.toString());
        System.out.println("betaZero and betaOne of the BLDK with DKYE are:   "+ regreMap.toString());

    }

}

这里写图片描述

JAVA实现的一元线性回归 LINEAR REGRESSION 基于java实现的一元线性回归代码,包括三个类 立即下载

相关推荐

java 实现的多元线性回归分析

java 实现的一元线性回归、多元线性回归 采用最小二乘法

多元线性回归算法预测房价

文章目录一、多元线性回归理解二、波士顿房价案例三、数据清洗(数据预处理)1、数据预处理2、数据筛选3、非数值型数据转换四、使用Excel实现回归1.回归实现2、回归分析 一、多元线性回归理解 线性,图像上任意一点的坐标,y值都是x值的a倍.我们把这种横纵坐标始终呈固定倍数的关系叫做"线性".线性函数的图像是一条直线.所以我们知道了多元线性回归函数的图像一定也是一条直线,多元,顾名思义,就是表达式中存在多个自变量(属性), 多元线性回归就是:用多个x(变量或属性)与结果y的关系式 来描述一些散列点之间的共同特

weixin_46075647的博客 2354

Java调用SPSS的实例

SPSS 提供的Java接口,一般没有这方面的资料,我也是在IBM内部拿到的一个示例代码,供大家参考。 SPSS的脚本直接用Java可是设置操作,阅读有一定难度。一些静态变量要修改成自己机器带的。

在Java中计算一元线性回归

文章目录1.前言2.内容2.1 定义实体类2.2 回归线实现类2.3 线性回归测试类3. 总结 1.前言 最近公司项目有需要用到在Java中计算一元线性回归的功能,网上找了很久,发现一篇不错的文章,但是原文的方法计算出来和Excel计算的最终结果总是有一点的误差,所以我在原文的代码上做了一点修改,最终的结果和Excel计算出来的基本没有误差了。下面是原文地址: 原文链接 2.内容 2.1 定义实体...

叶落薰风的博客 1895

AISHELL-1中文语音数据集实战:从下载到训练你的第一个ASR模型(附完整代码)

本文详细介绍了如何使用AISHELL-1中文语音数据集从数据准备到训练端到端语音识别模型的全流程。AISHELL-1作为国内首个开源的普通话语音数据集,包含178小时高质量录音,适合中文自动语音识别(ASR)系统开发。文章涵盖数据下载、预处理、Conformer-CTC模型训练、评估及优化策略,并附完整代码实现。

garlic的博客 1115

用AI+Playwright实现零代码UI自动化测试:以登录页面为例的实战指南

本文详细介绍了如何利用AI与Playwright结合实现零代码UI自动化测试,特别以登录页面为例进行实战演示。通过自然语言描述生成测试脚本,大幅降低技术门槛,提升测试效率,并支持跨浏览器验证。适合非技术人员快速上手专业级自动化测试。

weixin_28842269的博客 400

Java实现一元线性回归

最近在写一个荧光图像分析软件,需要自己拟合方程。一元回归线公式的算法参考了《Java数值方法》,拟合度R^2(绝对系数)是自己写的,欢迎讨论。计算结果和Excel完全一致。 总共三个文件: DataPoint.java /*** A data point for interpolation and regression.*/public class DataPoint{ /** the x val...

网站开发初中级代码参考-转载 363

华三模拟器实战:3分钟搞定路由器DHCP地址池配置(附常见错误排查)

本文提供华三模拟器中路由器DHCP地址池的实战配置指南。通过分步详解,帮助用户在3分钟内完成基础设置,并深入讲解多地址池、中继配置等进阶应用。文章重点剖析了DHCP服务无法工作的常见原因,提供从客户端到服务器的系统性排错方法,助力快速定位并解决地址分配失败、获取参数错误等典型问题。

w1x2y3的博客 360

一元线性回归方程的建立

转自 云海唯C的专栏 地址:http://blog.youkuaiyun.com/yunhaic/article/details/4317613#comments 一元线性回归分析是处理两个变量之间关系的最简单模型,它所研究的对象是两个变量之间的线性相关关系。通过对这个模型的讨论,我们不仅可以掌握有关一元线性回归的知识,而且可以从中了解回归分析方法的基本思想、方法和应用。  一、问题的提出  例2-

zt_706的专栏 3439

跟着团子学SAP PS:项目计划成本与项目预算设计思路

​在做SAP PS模块概览培训的时候,很多时候都会用到下面的一页PPT片子讲到项目计划成本与预算的关系,但真正这幅片子想表达的具体内容甚至大部分PS顾问也是无法阐明清楚的。 而SAP PS的设计其实是在丰富的项目管理学的基础上而开展的,所以今天从业务上结合SAP中的功能点讲一下项目成本计划及预算的逻辑。 在项目管理的十大知识领域中,项目成本管理主要是包括为使项目在批准的预算内完成而对成本进行规划...

Lucas1211的博客 3万+

攻克Windows平台3DGS复现:从环境配置到可视化实战全记录

本文详细记录了在Windows平台成功复现3D Gaussian Splatting(3DGS)的完整流程,涵盖从环境配置、依赖安装、数据准备到模型训练与可视化的全步骤。重点解决了Windows下CUDA版本匹配、Visual Studio编译及SIBR_viewers可视化工具部署等核心难题,为开发者提供了一份详实的避坑指南与实战手册。

weixin_28839699的博客 251

一元线性回归的详解及其Spss和Java的实现 之 理论说明

欢迎使用Markdown编辑器写博客 不要过于教条地对待研究的结果,尤其当数据的质量受到怀疑时。 本文主要对统计学中最常见的一元线性回归内容进行系统全面的讲解,以及相应案例的Excel Spss 和Java的相关实现。 准备知识 : 对概率中随机变量的期望、方差、协方差、和相关系数的定义、性质和简单的计算。可参考期望,方差,协方差及相关系数 [注释:]上述参考文档中在性质3中线性组合的

ManagementAndJava的博客 3599

DW3000芯片驱动API介绍

详细介绍DW3000驱动程序API的调用流程说明和中断处理程序流程说明

DT程序员的博客 1518

一元线性回归的详解及其Spss和Java的实现 之 spss实现

原始数据:不良贷款和各项贷款余额的散点图:相关性分析及说明:一元线性回归分析及说明:残差的正态假设性检验

ManagementAndJava的博客 1510

GNN-图卷积模型-直推式-2016:GCN【消息传递(前向传播):聚合函数+更新函数】【聚合函数:mean(邻域所有节点取平均值)】【训练更新函数的参数】【空域+频域】【同质图】

图神经网络(GNN):GCN【开山之作】

u013250861的博客 2055

小工匠聊架构-分布式场景下的并发幂等性常见的解决方案

Pre 我们来回顾下单体时代 单体时代,应用部署在一台主机上,可以使用JVM级别的锁来控制并发请求 。 随着应用规模的不断扩大,集群化或者微服务化的分布式部署越来越普及,每个应用都是一个单独的JVM应用,所以单体时代的这种处理方式已经无法满足当前架构下的业务需求了。 JVM级别的锁已经无法满足跨进程之间访问控制了,进而演化出来了分布式锁。 分布式锁 能否解决幂等性问题? 分布式锁解决什么问题? 简言之: 解决跨进程间无法共享本地资源的问题 ,解决的是分布式场景下并发访问的问题。 为什么需要确保并发.

小工匠 2万+

多元线性回归之Spss实现

我们还以上篇中的数据来进行多元线性回归的分析及说明:首先来看引入一个变量时候,也就是分析不良贷款和各项贷款余额的回归分析,这里只做对比用,详细的分析结果可以上上一篇博客: 引入两个自变量时,各年贷款余额及累计应收贷款: 偏相关是:在对其他变量的影响进行控制的条件下衡量多个变量中某两个变量之间的线性相关程度的指标称为偏相关系数。引入全部的自变量: 偏相关: 一元线性回归和多元线性回归的j

ManagementAndJava的博客 4830

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java算多元回归方程_java多元线性回归算法

多元线性回归的计算方法摘要 在实际经济问题中,一个变量往往受到多个变量的影响。例...STLyy UQ 在多元线性回归分析中,回归平方和表示的是所有 k 个自变量对 y 的变差的总影响,它可以 按公式 2 n k U (ya y) biLiy a1 i1 计算,而剩余平......一元与多元线性回归模型的主要计算公式_理学_高等教育_教育专区。一元与多元线性回归模型主要公式 一元与多元线性回归模型...

weixin_39881167的博客 925

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

R,不仅仅是一种语言

打算抽时间学习R了,每次都写一堆琐碎的python实在太痛苦了。 原文链接:http://www.wentrue.net/blog/?p=1083 R,不仅仅是一种语言 本文原载于《程序员》杂志2010年第8期,因篇幅所限,有所删减,这里刊登的是全文。 简介:R是什么 工欲善其事,必先利其器,作为一个战斗在IT界第一线的工程师,C/C++、java

大魁的专栏 5460

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java核心技术 pdf下载_大话统计学 PDF 下载_Java知识分享网

相关截图:主要内容:“统计学”是兼具“数学计算”与“图形显示”的课程,所有的统计软件(如SPSS),并非计算机辅助教学(CAI),因为它们并非“教你学会统计”,而是应该在“学会了统计”以后,再来用它。本书就是这样一本让你从零开始接触统计学,并将其真正应用到工作中的一本书,稳步跟进大数据时代。 本书前后连贯,各章之间也是先后呼应。例如:从概率到抽样,从描述到推断,从检验到因果;每章也是连贯的,开关有...

weixin_39732716的博客 352

R 语言的优劣势是什么?

R,不仅仅是一种语言 本文原载于《程序员》杂志2010年第8期,因篇幅所限,有所删减,这里刊登的是全文。 简介:R是什么 转帖:来自《程序员》上的一篇文章,希望对大家有帮助 工欲善其事,必先利其器,作为一个战斗在IT界第一线的工程师,C/C++、java、perl、python、ruby、php、javascript、erlang等等等等,你手中总有一把使用自如的刀,帮助你披荆斩棘。

伪代码的忧伤 1266

网络安全最新零基础如何自学Python:适合小白的Python学习路线图,2024年最新网络安全开发必须要会

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。爬虫类库解析 、数据解析 、动态网页提取 、验证码、IP 池 、多线程爬虫 、反爬应对措施 、scrapy 框架。项目背景 & 业务逻辑 、建模准备 、数据清洗 、模型训练 、模型评估 、模型部署与更新。

2401_84545804的博客 1241

R是什么

R,不仅仅是一种语言 本文原载于《程序员》杂志2010年第8期,因篇幅所限,有所删减,这里刊登的是全文,希望对大家有帮助。 R是什么 工欲善其事,必先利其器,作为一个战斗在IT界第一线的工程师,C/C++、java、perl、python、ruby、php、javascript、erlang等等等等,你手中总有一把使用自如的刀,帮助你披荆斩棘。 应用场景决定知识的储备与工具的选

一米阳光 3081

数学建模之倚天剑与屠龙刀

本文来自作者 Waves 在 GitChat 上分享 「数学建模之倚天剑与屠龙刀」编辑 | 哈比本 Chat 基于竞赛基础整理,非技术深度博文。1. 认识数学建模数学建模:从 1985 年美国的 MCM(Mathematical Contest in Modeling)一直发展至今。亚里士多德说,“智慧不仅仅存在于知识之中,而且还存在于应用知识的能力中”。数学建模就是对数学知识最好的应用。通过数学

技术杂谈 1805
上一篇: 一元线性回归的详解及其Spss和Java的实现 之 spss实现
下一篇: 多元线性回归分析理论详解及SPSS结果分析
Coder-Qian
博客等级 码龄11年 63粉丝 73原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值