栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用线性回归函数实现简单的股票预测程序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用线性回归函数实现简单的股票预测程序

需求:已知一个数组(array) A, A代表某一支股票的历史的开盘价;以及用于预测未来价格时所考虑的历史天数K,现在要大家写一个函数,将A中的用于预测开盘价所参考的历史值和所预测当天的实际值提取出来。
比如,A是这样一个数组 a=[1,2,3,4,5,6,7,8], 意思是这个股票过期期间的股票价格分别为第一天1刀,第二天2刀,以此类推。K如果等于2,意思是我们在预测股价的时候只考虑过去两个交易日的价格。即如果知道第一天和第二天的价格分别是1刀和2刀,那么预测的第三天价格应该是3刀;如果知道第二天和第三天的价格分别是2刀和3刀,那么预测的第四天价格应该是4刀。

RegressionEquation类:

package PredictBonus;
import org.apache.commons.math3.stat.descriptive.moment.Mean;

public class RegressionEquation {

    private double[] dependentValues;

    private double[] independentValues;

    public RegressionEquation(double[] dependentValues, double[] independentValues) {
        this.dependentValues = dependentValues;
        this.independentValues = independentValues;
    }

    public double getMean(double[] dd) {
        Mean meanUtil = new Mean();
        return meanUtil.evaluate(dd);
    }

    public double[] getRegressionModel() {
        if(dependentValues.length!=independentValues.length) {
            return null;
        }
        Mean meanUtil = new Mean();
        double xmean=meanUtil.evaluate(independentValues);
        double ymean=meanUtil.evaluate(dependentValues);
        double numerator=0d;
        double denominator=0d;
        for(int i=0;i 

Predict类:

package PredictBonus;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class Predict {
    public Map kmom(double[]a, int k){
        ArrayList b=new ArrayList();//预测的历史数据
        for (int i=a.length-k;i map=new HashMap<>();
        map.put(1,independentValues);
        map.put(2,dependentValues);
        return map;
    }

    public static void main(String[] args) {
        int k=2;
        Predict p=new Predict();
        Map map = p.kmom(new double[]{2, 3, 8, 23}, k);
        RegressionEquation regressionEquation=new RegressionEquation((double[]) map.get(2),(double[]) map.get(1));
        double[] regressionModel = regressionEquation.getRegressionModel();
        double predect =k*regressionModel[1]+regressionModel[0];
        System.out.println("预测的值为:"+predect);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785772.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号