精华内容
下载资源
问答
  • 财政收入影响因素分析及预测模型。

    财政收入影响因素分析及预测模型

    背景

    在我国现行的分税制财政管理体制下,地方财政收入不仅是国家财政收入的重要组成部分,还具有其相对独立的构成内容。如何有效地利用地方财政收入,合理地分配来促进地方的发展,提高市民的收入和生活质量是每个地方政府需要考虑的首要问题。因此,对地方财政收入进行预测,不但是必要的,而且是可能的。科学、合理地预测地方财政收入,对于克服年度地方预算收支规模的随意性和盲目性,正确处理地方财政与经济的相互关系具有十分重要的意义。某市作为改革开放的前沿城市,其经济发展在全国经济中的地位举足轻重。目前,该市在财政收入规模、结构等方面与北京、深圳和上海等城市仍有一定差距,存在不断完善的空间。

    目标

    本案例旨在通过研究,发现影响该市目前以及未来地方财源建设的因素,并对其进行深入分析,提出对该市地方财源优化的具体建议,供政府决策参考,同时为其他经济发展较快的城市提供借鉴。

    考虑到数据的可得性,本案例所用的财政收入分为地方一般预算收入和政府性基金收入。

    地方一般预算收入包括:1.税收收入,主要包括企业所得税和地方所得税中中央和地方共享的40%,地方享有的25%的增值税、营业税和印花税等;2.非税收入,包括专项收入、行政事业费收入、罚没收入、国有资本经营收入和其他收入等。政府性基金收入是国家通过向社会征收以及出让土地、发行彩票等方式取得的收入,并专项用于支持特定基础设施建设和社会事业发展的收入。由于1994年财政体制重大改革,所以1994年前后不具有可比性,仅对1994年后的进行分析,本案例数据来自《某市统计年鉴》(1995-2014)

    挖掘目标

    梳理影响地方财政收入的关键特征,分析、识别影响地方财政收入的关键特征的选择模型。结合目标1的因素分析,对某市2015年的财政总收入及各个类别收入进行预测。

    分析

    在以往的文献中,对影响财政收入的因素的分析大多采用普通最小二乘法来对回归模型的系数进行估计,预测变量的选取采用的则是逐步回归。然而,不论是最小二乘法还是逐步回归,都有其不足之处。它们一般都局限于局部最优解而不是全局最优解。如果预测变量过多,子集选择的计算过程具有不可实行性,且子集选择具有内在的不连续性,从而导致子集选择极度多变。

    Lasso是近年来被广泛使用于参数估计和变量选择的方法之一,并且在确定的条件下,使用Lasso方法进行变量选择已经被证明是一致的。案例选用Adaptive-Lasso方法来探究地方财政收入与各因素之间的关系。(该方法不在数学上具体叙述)

    在Adaptive-Lasso变量选择的基础上,鉴于灰色预测对小数据量数据预测的优良性能,对单个选定的影响因素建立灰色预测模型,得到它们在2014年及2015年的预测值。由于神经网络较强的适用性和容错能力,对历史数据建立训练模型,把灰色预测的数据结果代入训练好的模型中,就得到了充分考虑历史信息的预测结果,即2015年某市财政收入及各个类别的收入。

    下面是基于数据挖掘技术的财政收入分析预测模型流程

    1. 从某市统计局网站以及各统计年鉴搜集到该市财政收入以及各类别收入相关数据。
    2. 利用步骤1)形成的已完成数据预处理的建模数据,建立Adaptive-Lasso变量选择模型。
    3. 在步骤2)的基础上建立单变量的灰色预测模型以及人工神经网络预测模型。
    4. 利用步骤3)的预测值代入构建好的人工神经网络模型中,从而得到2014/2015年某市财政收入及各个类别的收入。

    处理过程

    • 数据获取
      • 已提供。
    • 数据探索
      • 描述分析
      • 相关分析
    • 数据预处理
      • 处理好的数据给出了。
    • 数据挖掘建模
      • Adaptive-Lasso变量选择模型
        • sklearn中Adaptive-Lasso模型已经删除了。
      • 财政收入及各类别收入预测模型
        • 某市财政收入预测模型
          • 真实值与预测值对比
        • 增值税预测模型
          • 真实值与预测值对比
        • 营业税预测模型
          • 真实值与预测值对比
        • 企业所得税预测模型
          • 真实值与预测值对比
        • 个人所得税预测模型
          • 真实值与预测值对比
        • 政府性基金收入预测模型
          • 真实值与预测值对比

    代码

    import pandas as pd
    import numpy as np
    from GM11 import GM11
    
    
    def adaptiveLasso():
        '''
        Adaptive-Lasso变量选择模型
        :return:
        '''
        inputfile = 'data/data1.csv'
        data = pd.read_csv(inputfile)
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import LassoLars
        model = LassoLars()
        model.fit(data.iloc[:, 0:13], data['y'])
        print(model.coef_)
    
    
    def huise():
        '''
        地方财政收入灰色预测
        :return:
        '''
        inputfile = 'data/data1.csv'
        outputfile = 'data/data1_GM11.xls'
        data = pd.read_csv(inputfile)
        data.index = range(1994, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']
        for i in l:
            f = GM11(data[i][np.arange(1994, 2014)].values)[0]
            # 2014年预测结果
            data[i][2014] = f(len(data) - 1)
            # 2015年预测结果
            data[i][2015] = f(len(data))
            data[i] = data[i].round(2)
    
        data[l + ['y']].to_excel(outputfile)
        print(data)
    
    
    def yuce():
        '''
        地方财政收入神经网络预测模型
        :return:
        '''
        inputfile = 'data/data1_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/revenue.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/1-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)
        feature = ['x1', 'x2', 'x3', 'x4', 'x5', 'x7']  # 特征所在列
    
        data_train = data.loc[range(1994, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=6, units=12))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=12, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=10000, batch_size=16)  # 训练模型,学习一万次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def adaptiveLasso2():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
    
        inputfile = 'data/data2.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
        # 导入AdaptiveLasso算法,新版本已经删除
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:6], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise2():
        '''
        增值税灰色预测
        :return:
        '''
        inputfile = 'data/data2.csv'  # 输入的数据文件
        outputfile = 'data/data2_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(1999, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x3', 'x5']
        for i in l:
            f = GM11(data[i][np.arange(1999, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round(6)  # 保留六位小数
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce2():
        '''
        增值税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data2_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/VAT.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/2-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x1', 'x3', 'x5']  # 特征所在列
    
        data_train = data.loc[np.arange(1999, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=3, units=6))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=6, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=10000, batch_size=16)  # 训练模型,学习一万次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round(2)
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    
    def adaptiveLasso3():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
        inputfile = 'data/data3.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
    
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:10], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise3():
        '''
        营业税灰色预测
        :return:
        '''
        inputfile = 'data/data3.csv'  # 输入的数据文件
        outputfile = 'data/data3_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(1999, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x3', 'x4', 'x6', 'x8']
        for i in l:
            f = GM11(data[i][np.arange(1999, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round()  # 取整
    
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce3():
        '''
        营业税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data3_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/sales_tax.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/3-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x3', 'x4', 'x6', 'x8']  # 特征所在列
    
        data_train = data.loc[range(1999, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=4, units=8))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=8, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=10000, batch_size=16)  # 训练模型,学习一万次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round(2)
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def adaptiveLasso4():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
        inputfile = 'data/data4.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
    
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:10], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise4():
        '''
        企业所得税灰色预测
        :return:
        '''
        inputfile = 'data/data4.csv'  # 输入的数据文件
        outputfile = 'data/data4_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(2002, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x2', 'x3', 'x4', 'x6', 'x7', 'x9', 'x10']
        for i in l:
            f = GM11(data[i][np.arange(2002, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round(2)  # 保留两位小数
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce4():
        '''
        企业所得税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data4_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/enterprise_income.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/4-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x1', 'x2', 'x3', 'x4', 'x6', 'x7', 'x9', 'x10']  # 特征所在列
    
        data_train = data.loc[range(2002, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=8, units=6))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=6, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=5000, batch_size=16)  # 训练模型,学习五千次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round()
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def adaptiveLasso5():
        '''
        Adaptive-Lasso变量选择
        :return:
        '''
        inputfile = 'data/data5.csv'  # 输入的数据文件
        data = pd.read_csv(inputfile)  # 读取数据
    
        # 导入AdaptiveLasso算法,要在较新的Scikit-Learn才有。
        from sklearn.linear_model import AdaptiveLasso
        model = AdaptiveLasso(gamma=1)
        model.fit(data.iloc[:, 0:7], data['y'])
        model.coef_  # 各个特征的系数
    
    
    def huise5():
        '''
        个人所得税灰色预测
        :return:
        '''
        inputfile = 'data/data5.csv'  # 输入的数据文件
        outputfile = 'data/data5_GM11.xls'  # 灰色预测后保存的路径
        data = pd.read_csv(inputfile)  # 读取数据
        data.index = range(2000, 2014)
    
        data.loc[2014] = None
        data.loc[2015] = None
        l = ['x1', 'x4', 'x5', 'x7']
        for i in l:
            f = GM11(data[i][np.arange(2000, 2014)].values)[0]
            data[i][2014] = f(len(data) - 1)  # 2014年预测结果
            data[i][2015] = f(len(data))  # 2015年预测结果
            data[i] = data[i].round()  # 取整
    
        data[l + ['y']].to_excel(outputfile)  # 结果输出
        print(data)
    
    
    def yuce5():
        '''
        个人所得税神经网络预测模型
        :return:
        '''
        inputfile = 'data/data5_GM11.xls'  # 灰色预测后保存的路径
        outputfile = 'data/personal_Income.xls'  # 神经网络预测后保存的结果
        modelfile = 'data/5-net.model'  # 模型保存路径
        data = pd.read_excel(inputfile)  # 读取数据
        feature = ['x1', 'x4', 'x5', 'x7']  # 特征所在列
    
        data_train = data.loc[range(2000, 2014)].copy()  # 取2014年前的数据建模
        data_mean = data_train.mean()
        data_std = data_train.std()
        data_train = (data_train - data_mean) / data_std  # 数据标准化
        x_train = data_train[feature].values  # 特征数据
        y_train = data_train['y'].values  # 标签数据
    
        from keras.models import Sequential
        from keras.layers.core import Dense, Activation
    
        model = Sequential()  # 建立模型
        model.add(Dense(input_dim=4, units=8))
        model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
        model.add(Dense(input_dim=8, units=1))
        model.compile(loss='mean_squared_error', optimizer='adam')  # 编译模型
        model.fit(x_train, y_train, nb_epoch=15000, batch_size=16)  # 训练模型,学习一万五千次
        model.save_weights(modelfile)  # 保存模型参数
    
        # 预测,并还原结果。
        x = ((data[feature] - data_mean[feature]) / data_std[feature]).values
        data[u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
        data[u'y_pred'] = data[u'y_pred'].round()
        data.to_excel(outputfile)
    
        import matplotlib.pyplot as plt  # 画出预测结果图
        p = data[['y', 'y_pred']].plot(subplots=True, style=['b-o', 'r-*'])
        plt.show()
    
    
    def huise6():
        '''
        政府性基金收入灰色预测
        :return:
        '''
        x0 = np.array([3152063, 2213050, 4050122, 5265142, 5556619, 4772843, 9463330])
        f, a, b, x00, C, P = GM11(x0)
        print(u'2014年、2015年的预测结果分别为:\n%0.2f万元和%0.2f万元' % (f(8), f(9)))
        print(u'后验差比值为:%0.4f' % C)
        p = pd.DataFrame(x0, columns=['y'], index=range(2007, 2014))
        p.loc[2014] = None
        p.loc[2015] = None
        p['y_pred'] = [f(i) for i in range(1, 10)]
        p['y_pred'] = p['y_pred'].round(2)
        p.index = pd.to_datetime(p.index, format='%Y')
    
        import matplotlib.pylab as plt
        p.plot(style=['b-o', 'r-*'], xticks=p.index)
        plt.show()
    
    
    if __name__ == '__main__':
        # adaptiveLasso()
        # huise()
        # yuce()
        # adaptiveLasso2()
        # huise2()
        # yuce2()
        # adaptiveLasso3()
        # huise3()
        # yuce3()
        # adaptiveLasso4()
        # huise4()
        # yuce4()
        # adaptiveLasso5()
        # huise5()
        # yuce5()
        huise6()
    
    

    后续处理

    应用模型进行推理。

    补充说明

    案例参考书《Python数据分析与挖掘实战》,与原书有借鉴,但是较大改动代码,修复了原书一些旧版本代码错误,具体数据集和代码可以查看我的Github,欢迎star或者fork。再次补充,相关数据集的获取直接clone整个仓库即可。

    展开全文
  • 10 财政收入影响因素分析及预测模型

    万次阅读 多人点赞 2017-09-15 15:48:04
    4 10 财政收入影响因素分析及预测模型 10.1背景与挖掘目标  本案例通过研究发现影响目前以及未来地方财源建设的因素,并对其进行深入分析,提出对该市地方财源优化的具体建议,供政府决策参考,同时为其他发展较...

    4 10 财政收入影响因素分析及预测模型

    10.1背景与挖掘目标

      本案例通过研究发现影响目前以及未来地方财源建设的因素,并对其进行深入分析,提出对该市地方财源优化的具体建议,供政府决策参考,同时为其他发展较快的城市提供借鉴。本案例对1994-2013年财政收入以及相关因素的数据,数据来自统计年鉴。

    目标:

    (1) 梳理影响地方财政收入的关键特征,分析识别影响地方财政收入的关键特征的选择模型

    (2) 结合(1)的分析,对某市2015年财政总收入以及各个类别收入进行预测。

    10.2分析方法与过程

       本案例在已有的研究基础上运用Adaptive-Lasso变量选择方法来研究影响地方财政收入的因素。

       Lasso是在1996年提出的将参数估计与变量选择同时进行的一种正则化方法,参数估计被定义为如下:

     

    10.2.1 灰色预测与神经网络的组合模型

    在Lasso变量的选择基础上,鉴于灰色预测对小数据量数据预测的优良性能,对单个选定的因素建立灰色预测模型,得到他们在2014-2015年的预测值,由于神经网络较强的适应性和容错能力,对历史数据建立训练模型,把灰色预测的结果带入训练好的模型中,就得到了充分考虑历史信息的预测结果,即2015年某市财政收入及各个类别收入

    主要步骤如下:

    (1) 对数据进行预处理

    (2) 将预处理好的数据,建立Lasso变量选择模型

    (3) 在(2)的基础上建立单变量的灰色预测模型,以及人工神经网络预测模型

    (4) 在(3)的预测值带入建立好的人工神经网络模型中,从而得到2014、2015年某市财政收入以及各类别收入的预测值。

    10.2.2数据探索分析

    影响财政收入(y)的因素很多,经查阅资料选以下因素为自变量

    社会从业人数(x1)

    在岗职工工资总额(x2)

    社会消费品零售总额(x3)

    城镇居民人均可支配收入(x4)

    城镇居民人均消费性支出(x5)

    年末总人口(x6)

    全社会固定资产投入(x7)

    地区生产总值(x8)

    第一产业产值(x9)

    税收(x10)

    居民消费价格指数(x11)

    第三产业与第二产业产值比(x12)

    居民消费水平(x13)

    10.2.2.1描述性分析

       我们要对数据有个大体认识,要对其进行简单的描述性统计分析

    # encoding=utf-8
    #
    描述性分析
    import pandas as pd
    import numpy as np

    inputfile=
    'demo/data/data1.csv'
    outputfile='demo/tmp/datagaikuo.csv'
    data=pd.read_csv(inputfile)
    r=[data.min()
    ,data.max(),data.mean(),data.std()]#依次计算最小值、最大值、均值、标准差
    r=pd.DataFrame(r,index=['MIN','MAX','MEAN', 'STD']).T
    np.round(r
    ,2).to_csv(outputfile)#保留2位小数,并输出

     

    10.2.2.2相关性分析

    现在要分析一下因变量与解释变量之间的关系,它们之间是否存在相关性,下面来求一下相关系数。

    #相关系数
    np.round(data.corr(method='pearson'),2).to_csv('demo/tmp/datapearson.csv')

    从上图中的相关系数中我们可以发现居民消费价格指数(x11)与财政收入的线性关系不显著,而且呈现负相关,其余变量与财政收入呈高度正相关。

    这种表格的形式看起来不太直观,现在我们以图的形式进行可视化,首先要对数据进行0-1标准值化处理。

    #标准化处理
    dataNM=(data-data.min())/(data.max()-data.min())
    dataNM.to_csv(
    'demo/tmp/dataNM.csv')


    从图中我们可以看出x11总体呈下降趋势,与y呈负相关关系,而其他因变量都与y呈正相关关系。

    10.2.3模型构建

    10.2.3.1Lasso变量选择模型

    #Lasso变量选择
    from sklearn.linear_model import Lasso
    model=Lasso()
    model.fit(data.iloc[:
    ,0:13],data['y'])
    q=model.coef_
    #各特征的系数
    q=pd.DataFrame(q,index=['x1','x2','x3','x4','x5','x6','x7','x8','x9','x10','x11','x12','x13']).T
    np.round(q
    ,4).to_csv('demo/tmp/dataLasso.csv')

     

    观察表格中的数据我们发现x11居民消费水平为0,也就是说该因素对财政收入的影响非常小,可以忽略不计。

    10.2.4财政收入及各类别收入预测模型

     (1)某市财政收入预测模型

    对Lasso变量选择方法识别的影响财政收入的因素建立灰色预测与神经网络的组合预测模型,其参数设置为误差精度0.0000001,学习次数为10000次,输入层神经元的个数为12(除x12之外)。

    #地方财政收入灰色预测
    from GM11 import GM11
    outputfile=
    'demo/tmp/data1_GM11.xls'
    data.index=range(1994,2014)#行索引
    data.loc[2014]=None
    data.loc[2015]=None
    l=['x1','x2','x3','x4','x5','x6','x7','x8','x9','x10','x11','x13']
    for i in l:
        f=GM11(data[i][
    range(1994,2014)].as_matrix())[0]
        data[i][
    2014]=f(len(data)-1)
        data[i][
    2015]=f(len(data))
        data[i]=data[i].round(
    2)
    data[l+[
    'y']].to_excel(outputfile)

     


    预测出了这11个变量在2014和2015年的因变量,下面就要利用神经网络预测财政收入了。

    经过多次试验发现神经网络模型:输入层的节点为11,隐层节点为12,输出节点为1的效果较好,神经网络预测代码如下:

    #地方财政收入神经网络预测模型
    inputfile='demo/tmp/data1_GM11.xls'
    outputfile='demo/tmp/revenue.xls'
    modelfile='demo/tmp/1-net.model'
    data=pd.read_excel(inputfile)
    feature=[
    'x1','x2','x3','x4','x5','x6','x7','x8','x9','x10','x11','x13']#特征所在列
    data_train=data.loc[range(1994,2014)].copy()#2014年前的建模数据
    data_mean=data_train.mean()
    data_std=data_train.std()
    data_train=(data_train-data_mean)/data_std
    #数据标准化
    x_train=data_train[feature].as_matrix()#特征数据
    y_train=data_train['y'].as_matrix()#标签数据
    from keras.models import Sequential
    from keras.layers.core import Dense,Activation
    model=Sequential()
    #建立模型
    model.add(Dense(input_dim=12,output_dim=12))
    model.add(Activation(
    'relu'))#激活函数
    model.add(Dense(input_dim=12,output_dim=1))
    model.compile(
    loss='mean_squared_error',optimizer='adam')#编译模型,目标函数是均方差
    model.fit(x_train,y_train,nb_epoch=10000,batch_size=16)#训练模型
    model.save_weights(modelfile)#保存模型
    #预测并还原结果
    x=((data[feature]-data_mean[feature])/data_std[feature]).as_matrix()
    data[
    u'y_pred'] = model.predict(x) * data_std['y'] + data_mean['y']
    data.to_excel(outputfile)
    #画出预测图
    import matplotlib.pyplot as plt
    p=data[[
    'y','y_pred']].plot(subplots=True,style=['b-o','r-*'])
    plt.show()

     


    当我们把y和y_pred放在一个图上的时候,发现它们“重合”,它们只是差别小而已……并没重合……这些差别我们可以观察具体数据看出,可见我们的模型预测效果还是ganggang滴!

     




    展开全文
  • 灰度预测模型

    千次阅读 2018-02-09 13:30:25
    灰色系统:一部分信息是已知的,另一部分信息是未知的,系统内各因素之间具有确定关系。其特点是‘少数据建模’,着重研究‘外延明确,内涵明确’的对象。灰色系统具有相对性与广泛性。指系统对于不同对象的灰度...

    概念

    灰色系统是相对于黑色系统和白色系统而言的。
    白色系统:系统的内部特征是完全已知的,即系统的信息是完全充分的。

    黑色系统:一个系统的内部信息对外界来说是一无所知的,只能通过他与外界的联系来加以观测研究。

    灰色系统:一部分信息是已知的,另一部分信息是未知的,系统内各因素之间具有不确定关系。其特点是‘少数据建模’,着重研究‘外延明确,内涵不明确’的对象。

    灰色系统具有相对性与广泛性。指系统对于不同对象的灰度不一样。作为实际问题,灰色系统在大千世界中是大量存在的,绝对的白色或黑色系统是很少的。

    灰色预测法:灰色预测法是一种对含有不确定因素的系统进行预测的方法 。它通过鉴别系统因素之间发展趋势的相异程度,即进行关联分析,并对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。它用等时间距离观测到的反应预测对象特征的一系列数量值构造灰色预测模型,预测未来某一时刻的特征量,或者达到某一特征量的时间。

    基本思想

    基本思想是用原始数据组成原始序列(0),经累加生成法生成序列(1),它可以弱化原始数据的随机性,使其呈现出较为明显的特征规律。对生成变换后的序列(1) 建立微分方程型的模型即GM模型。GM(1,1) 模型表示1阶的、1个变量的微分方程模型。GM(1,1) 模型群中,新陈代谢模型是最理想的模型。这是因为任何一个灰色系统在发展过程中,随着时间的推移,将会不断地有一些随即扰动和驱动因素进入系统,使系统的发展相继地受其影响。用GM(1,1) 模型进行预测,精度较高的仅仅是原点数据(0)(n) 以后的1到2个数据,即预测时刻越远预测的意义越弱。而新陈代谢GM(1,1)模型的基本思想为越接近的数据,对未来的影响越大。也就是说,在不断补充新信息的同时,去掉意义不大的老信息,这样的建模序列更能动态地反映系统最新的特征,这实际上是一种动态预测模型。

    优点

    1、不需要大量样本。
    2、样本不需要有规律性分布。
    3、计算工作量小。
    4、定量分析结果与定性分析结果不会不一致。
    5、可用于短期、中长期预测。

    6、灰色预测准确度高。


    clear  
    x0=[89677,99215,109655,120333,135823,159878,182321,209407,246619,300670];  
    pre_num=10;  
    
    n=length(x0);  
    disp('级比检验')  
    lambda=x0(1:end-1)./x0(2:end);  
    range=minmax(lambda);  
    x1=cumsum(x0);  
      
    z=0.5*(x1(2:end)+x1(1:end-1));  
    Y=x0(2:end)';  
    B=[-z(1:end)' ones(n-1,1)];  
    u=B\Y; %u=inv(B'*B)*B'*Y  
    a=u(1);  
    b=u(2);  
    x0_pre=[x0(1) ones(1,n+pre_num-1)];  
    for k=1:n-1+pre_num  
        x0_pre(k+1)=(x0(1)-b/a)*(exp(-a*k)-exp(-a*(k-1)));  
    end  
      
    err=x0 - x0_pre(1:n);  
    epsilon=abs(err)./x0(1:n).*100;  
      
    disp('预测值')  
    disp(x0_pre)  
    disp('相对误差')  
    disp(epsilon)  
    
    t1=1999:2008;  
    t2=1999:2018;  
    plot(t1,x0,'d',t2,x0_pre,'LineWidth',2)  %原始数据与预测数据的比较  
    xlabel('年份')  
    ylabel('利润') 


    展开全文
  • 预测系统

    千次阅读 2019-07-08 12:19:31
    预测系统在整个供应链体系中处在最底层并且起到一个支撑的作用,支持上层的多个决策优化系统,而这些决策优化系统利用精准的预测数据结合运筹学技术得出最优的决策,并将结果提供给更上层的业务执行系统...

    全文为转载:仅供自己学习使用,原文链接地址:https://blog.csdn.net/NIeson2012/article/details/81982918


    1. 京东预测系统

    1.1 预测系统介绍

    预测系统在整个供应链体系中处在最底层并且起到一个支撑的作用,支持上层的多个决策优化系统,而这些决策优化系统利用精准的预测数据结合运筹学技术得出最优的决策,并将结果提供给更上层的业务执行系统或是业务方直接使用。

    目前,预测系统主要支持三大业务:销量预测、单量预测和GMV预测。其中销量预测主要支持商品补货、商品调拨;单量预测主要支持仓库、站点的运营管理;GMV预测主要支持销售部门计划的定制。

    销量预测按照不同维度又可以分为RDC采购预测、FDC调拨预测、城市仓调拨预测、大建仓补货预测、全球购销量预测和图书促销预测等;单量预测又可分为库房单量预测、配送中心单量预测和配送站单量预测等(在这里“单量”并非指用户所下订单的量,而是将订单拆单后流转到仓库中的单量。例如一个用户的订单中包括3件物品,其中两个大件品和一个小件品,在京东的供应链环节中可能会将其中两个大件品组成一个单投放到大件仓中,而将那个小件单独一个单投放到小件仓中,单量指的是拆单后的量);GMV预测支持到商品粒度。   

    1.2 预测系统架构

    整体架构从上至下依次是:数据源输入层、基础数据加工层、核心业务层、数据输出层和下游系统。首先从外部数据源获取我们所需的业务数据,然后对基础数据进行加工清洗,再通过时间序列、机器学习等人工智能技术对数据进行处理分析,最后计算出预测结果并通过多种途径推送给下游系统使用。

    • 数据源输入层:京东数据仓库中存储着我们需要的大部分业务数据,例如订单信息、商品信息、库存信息等等。而对于促销计划数据则大部分来自于采销人员通过Web系统录入的信息。除此之外还有一小部分数据通过文本形式直接上传到HDFS中。
    • 基础数据加工层:在这一层主要通过Hive对基础数据进行一些加工清洗,去掉不需要的字段,过滤不需要的维度并清洗有问题的数据。
    • 核心业务层:这层是系统的的核心部分,横向看又可分为三层:特征构建、预测算法和预测结果加工。纵向看是由多条业务线组成,彼此之间不发生任何交集。
      • 特征构建:将之前清洗过的基础数据通过近一步的处理转化成标准格式的特征数据,提供给后续算法模型使用。
      • 核心算法:利用时间序列分析、机器学习等人工智能技术进行销量、单量的预测,是预测系统中最为核心的部分。
      • 预测结果加工:预测结果可能在格式和一些特殊性要求上不能满足下游系统,所以还需要根据实际情况对其进行加工处理,比如增加标准差、促销标识等额外信息。
    • 预测结果输出层:将最终预测结果同步回京东数据仓库、MySql、HBase或制作成JSF接口供其他系统远程调用。
    • 下游系统:包括下游任务流程、下游Web系统和其他系统。

    2. 预测系统核心介绍   

    2.1 预测系统核心层技术选型

    预测系统核心层技术主要分为四层:基础层、框架层、工具层和算法层

    基础层: HDFS用来做数据存储,Yarn用来做资源调度,BDP(Big Data Platform)是京东自己研发的大数据平台,我们主要用它来做任务调度。

    框架层: 以Spark RDD、Spark SQL、Hive为主, MapReduce程序占一小部分,是原先遗留下来的,目前正逐步替换成Spark RDD。 选择Spark除了对性能的考虑外,还考虑了Spark程序开发的高效率、多语言特性以及对机器学习算法的支持。在Spark开发语言上我们选择了Python,原因有以下三点:

    • Python有很多不错的机器学习算法包可以使用,比起Spark的MLlib,算法的准确度更高。我们用GBDT做过对比,发现xgboost比MLlib里面提供的提升树模型预测准确度高出大概5%~10%。虽然直接使用Spark自带的机器学习框架会节省我们的开发成本,但预测准确度对于我们来说至关重要,每提升1%的准确度,就可能会带来成本的成倍降低。
    • 我们的团队中包括开发工程师和算法工程师,对于算法工程师而言他们更擅长使用Python进行数据分析,使用Java或Scala会有不小的学习成本。
    • 对比其他语言,我们发现使用Python的开发效率是最高的,并且对于一个新人,学习Python比学习其他语言更加容易。

    工具层: 一方面我们会结合自身业务有针对性的开发一些算法,另一方面我们会直接使用业界比较成熟的算法和模型,这些算法都封装在第三方Python包中。我们比较常用的包有xgboost、numpy、pandas、sklearn、scipy和hyperopt等。

    Xgboost:它是Gradient Boosting Machine的一个C++实现,xgboost最大的特点在于,它能够自动利用CPU的多线程进行并行,同时在算法上加以改进提高了精度。

    numpy:是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多(该结构也可以用来表示矩阵)。

    pandas:是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。

    sklearn:是Python重要的机器学习库,支持包括分类、回归、降维和聚类四大机器学习算法。还包含了特征提取、数据处理和模型评估三大模块。

    scipy:是在NumPy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。例如线性代数、常微分方程数值求解、信号处理、图像处理和稀疏矩阵等等。

    算法层: 我们用到的算法模型非常多,原因是京东的商品品类齐全、业务复杂,需要根据不同的情况采用不同的算法模型。我们有一个独立的系统来为算法模型与商品之间建立匹配关系,有些比较复杂的预测业务还需要使用多个模型。我们使用的算法总体上可以分为三类:时间序列、机器学习和结合业务开发的一些独有的算法。

    1. 机器学习算法主要包括GBDT、LASSO和RNN :

    GBDT:是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。我们用它来预测高销量,但历史规律不明显的商品。

    RNN:这种网络的内部状态可以展示动态时序行为。不同于前馈神经网络的是,RNN可以利用它内部的记忆来处理任意时序的输入序列,这让它可以更容易处理如时序预测、语音识别等。

    LASSO:该方法是一种压缩估计。它通过构造一个罚函数得到一个较为精炼的模型,使得它压缩一些系数,同时设定一些系数为零。因此保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。用来预测低销量,历史数据平稳的商品效果较好。

    2. 时间序列主要包括ARIMA和Holt winters :

    ARIMA:全称为自回归积分滑动平均模型,于70年代初提出的一个著名时间序列预测方法,我们用它来主要预测类似库房单量这种平稳的序列。

    Holt winters:又称三次指数平滑算法,也是一个经典的时间序列算法,我们用它来预测季节性和趋势都很明显的商品。

    3. 结合业务开发的独有算法包括WMAStockDT、SimilarityModel和NewProduct等:

    WMAStockDT:库存决策树模型,用来预测受库存状态影响较大的商品。

    SimilarityModel:相似品模型,使用指定的同类品数据来预测某商品未来销量。

    NewProduct:新品模型,顾名思义就是用来预测新品的销量。   

    2.2 预测系统核心流程

    预测核心流程主要包括两类:以机器学习算法为主的流程和以时间序列分析为主的流程。

    1. 以机器学习算法为主的流程如下:

     

    特征构建:通过数据分析、模型试验确定主要特征,通过一系列任务生成标准格式的特征数据。

    模型选择:不同的商品有不同的特性,所以首先会根据商品的销量高低、新品旧品、假节日敏感性等因素分配不同的算法模型。

    特征选择:对一批特征进行筛选过滤不需要的特征,不同类型的商品特征不同。

    样本分区:对训练数据进行分组,分成多组样本,真正训练时针对每组样本生成一个模型文件。一般是同类型商品被分成一组,比如按品类维度分组,这样做是考虑并行化以及模型的准确性。

    模型参数:选择最优的模型参数,合适的参数将提高模型的准确度,因为需要对不同的参数组合分别进行模型训练和预测,所以这一步是非常耗费资源。

    模型训练:待特征、模型、样本都确定好后就可以进行模型训练,训练往往会耗费很长时间,训练后会生成模型文件,存储在HDFS中。

    模型预测:读取模型文件进行预测执行。

    多模型择优:为了提高预测准确度,我们可能会使用多个算法模型,当每个模型的预测结果输出后系统会通过一些规则来选择一个最优的预测结果。

    预测值异常拦截:我们发现越是复杂且不易解释的算法越容易出现极个别预测值异常偏高的情况,这种预测偏高无法结合历史数据进行解释,因此我们会通过一些规则将这些异常值拦截下来,并且用一个更加保守的数值代替。

    模型评价:计算预测准确度,我们通常用使用mapd来作为评价指标。

    误差分析:通过分析预测准确度得出一个误差在不同维度上的分布,以便给算法优化提供参考依据。

    2. 以时间序列分析为主的预测流程如下:

    2.3 Spark在预测核心层的应用

    我们使用Spark SQL和Spark RDD相结合的方式来编写程序,对于一般的数据处理,我们使用Spark的方式与其他无异,但是对于模型训练、预测这些需要调用算法接口的逻辑就需要考虑一下并行化的问题了。我们平均一个训练任务在一天处理的数据量大约在500G左右,虽然数据规模不是特别的庞大,但是Python算法包提供的算法都是单进程执行。我们计算过,如果使用一台机器训练全部品类数据需要一个星期的时间,这是无法接收的,所以我们需要借助Spark这种分布式并行计算框架来将计算分摊到多个节点上实现并行化处理。

    我们实现的方法很简单,首先需要在集群的每个节点上安装所需的全部Python包,然后在编写Spark程序时考虑通过某种规则将数据分区,比如按品类维度,通过groupByKey操作将数据重新分区,每一个分区是一个样本集合并进行独立的训练,以此达到并行化。流程如下图所示:

     

    伪码如下:

     

    repartitionBy方法即设置一个重分区的逻辑返回(K,V)结构RDD,train方法是训练数据,在train方法里面会调用Python算法包接口。saveAsPickleFile是Spark Python独有的一个Action操作,支持将RDD保存成序列化后的sequnceFile格式的文件,在序列化过程中会以10个一批的方式进行处理,保存模型文件非常适合。

    虽然原理简单,但存在着一个难点,即以什么样的规则进行分区,key应该如何设置。为了解决这个问题我们需要考虑几个方面,第一就是哪些数据应该被聚合到一起进行训练,第二就是如何避免数据倾斜。

    针对第一个问题我们做了如下几点考虑:

    • 被分在一个分区的数据要有一定的相似性,这样训练的效果才会更好,比如按品类分区就是个典型例子。
    • 分析商品的特性,根据特性的不同选择不同的模型,例如高销商品和低销商品的预测模型是不一样的,即使是同一模型使用的特征也可能不同,比如对促销敏感的商品就需要更多与促销相关特征,相同模型相同特征的商品应倾向于分在一个分区中。

    针对第二个问题我们采用了如下的方式解决:

    • 对于数据量过大的分区进行随机抽样选取。
    • 对于数据量过大的分区还可以做二次拆分,比如图书小说这个品类数据量明显大于其他品类,于是就可以分析小说品类下的子品类数据量分布情况,并将子品类合并成新的几个分区。
    • 对于数据量过小这种情况则需要考虑进行几个分区数据的合并处理。

    总之对于后两种处理方式可以单独通过一个Spark任务定期运行,并将这种分区规则保存。

    展开全文
  • 京东预测系统核心介绍

    千次阅读 2018-08-23 16:11:50
    1. 京东预测系统 1.1 预测系统介绍 预测系统在整个供应链体系中处在最底层并且起到一个支撑的作用,支持上层的多个决策优化系统,而这些决策优化系统利用精准的预测数据结合运筹学技术得出最优的决策,并将结果...
  • 考虑人口出生和死亡率,以及城市人口迁移率; 考虑气候对传播的影响。 模型结构 根据 5分室传播模型结构可知,新型冠状病毒的传播结构为: 02 冠状病毒传播流程图 其中,方框内为状态变量: S=...
  • 这个预测行为中包含着如此之多的因素—包括物理或心理因素、理性或者理性行为因素等等。所有这些因素结合在一起,使得股价波动剧烈,很难准确预测。 使用机器学习可能改变游戏规则吗?机器学习技术使用最新的组织...
  • 麦当劳的薯条不少人都吃过,味道很好,而且每家麦当劳的薯条味道很一致。麦当劳是如何做到的呢?...从另外一个角度说,只要麦当劳按照既定的过程来生产食物,就可以“预测”出最终食物的情况,麦当劳将对最终
  • 预测机械剩余使用寿命的深度分离卷积神经网络

    千次阅读 多人点赞 2020-01-01 01:29:26
    预测机械剩余使用寿命的深度分离卷积神经网络 摘要 深度学习因其强大的表示学习能力在数据驱动的器械设备剩余使用寿命(RUL)预测中越来越受到重视。借助深度学习技术,可以更充分地了解机器退化情况,近年来的...
  • 预测性分析及常用预测方法

    千次阅读 2020-11-06 14:43:18
    预测性分析及常用的预测方法 预测的目的 数据分析最重要的目的就是从数据中寻找规律,找到能够指导我们未来实践的原则和方法,是...商业也是如此,我们能够知道影响销售的因素,并能够掌握这些因素的数据,就能够对市场
  • 预测算法——指数平滑法

    万次阅读 多人点赞 2016-07-21 12:59:03
    指数平滑法是移动平均法中的一种,其特点在于给过去的观测值一样的权重,即较近期观测值的权数比较远期观测值的权数要大。根据平滑次数不同,指数平滑法分为一次指数平滑法、二次指数平滑法和三次指数平滑法等。但...
  • 本文是基于《Python数据分析与挖掘实战》的实战部分的第13章的数据——《财政收入影响因素分析及预测模型》做的分析。 旨在补充原文中的细节代码,并给出文中涉及到的内容的完整代码。 在作者所给代码的基础上增加的...
  • 灰色预测模型

    万次阅读 多人点赞 2019-04-13 15:10:35
    我们称信息完全未确定的系统为黑色系统,称信息完全确定的系统为白色系统,灰色系统就是这介于这之间,一部分信息是已知的,另一部分信息是未知的,系统内各因素间有确定的关系。 特点 用灰色数学处理确定量...
  • 时间序列分析和预测(含实例及代码)

    万次阅读 多人点赞 2018-09-17 21:37:34
    导论 研究时间序列主要目的:进行预测,根据... 预测所依据的数据具有规则性 考虑事物发展之间的因果关系 时间序列数据用于描述现象随时间发展变化的特征。 时间序列分析就其发展历史阶段和所使...
  • 销售预测

    万次阅读 多人点赞 2019-01-11 16:56:51
    这里有两个问题,第一个问题,预测是怎么做出来的?第二个问题是:对于同一件事情它是预测出不同的结果,什么结果是好与坏?第一个问题是怎么预测的问题,第二个问题是预测的效果好与坏的问题。这就引出了我的主题,...
  • 灰色预测模型GM(1,1) 与例题分析

    万次阅读 多人点赞 2017-09-06 13:39:28
    灰色预测模型灰色预测的概念...灰色系统介于白色和黑色之间,灰色系统内的一部分信息是已知的,另一部分信息是未知的,系统内各因素间有确定的关系。 (2)灰色预测法 灰色预测法是一种预测灰色系统的预测方法。 灰色
  • 电力负荷预测三篇综述总结

    万次阅读 2021-01-30 21:28:08
    对前面三篇关于负荷预测的综述论文进行一个总结。
  • 谈谈股市预测

    千次阅读 2016-07-23 21:02:12
    如同其他复杂性系统一样,想要进行长期的预测近乎是可能的,和天气预报类似。但对于短期的预测却是有可能的,不仅是理论上存在这种可能性,现实中的投资机构在对这种预测做不断地尝试,提高回报率。,在投资领域这...
  • 时间序列预测

    千次阅读 2019-06-11 16:48:38
    预测是人们根据食物的发展鼓励、历史和现状,分析影响其变化的因素,对其发展前景和趋势进行的一种推测。 时间序列分析法
  • 身高预测

    千次阅读 2013-10-17 00:02:38
    每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。 设faHeight...
  • 马尔柯夫预测

    千次阅读 2014-12-23 10:25:54
    PS:这是我看到的一篇比较通俗易懂的马尔科夫预测详解!内容比较多,但是抓住主线(下一刻的状态只与当前有关,与当前以前即过去无关!) 马尔柯夫预测法  马尔柯夫预测法:马尔柯夫预测以俄国数学家A.A....
  • 对于一个非深度学习神经网络,主要影响其模型准确度的因素就是数据表达和特征提取。同样的一组数据,在欧式空间和非欧空间,就会有着不同的分布。有时候换一种思考问题的思路就会使得问题变得简单。所以选择合适的...
  • 灰色理论预测模型

    万次阅读 2016-04-30 22:19:55
    优点:对于确定因素的复杂系统预测效果较好,且所需样本数据较小; 缺点:基于指数率的预测没有考虑系统的随机性,中长期预测精度较差。 灰色预测模型 在多种因素共同影响且内部因素难以全部划定,因素间关系...
  • 灰色预测法是一种对含有确定因素的系统进行预测的方法,对在一定范围内变化的、与时间有关的灰色过程进行预测。 灰色预测的四种常见类型: 1)灰色时间序列预测 2)畸变预测 3)系统预测 4)拓扑预测 二. 灰色...
  • 时间序列预测

    千次阅读 2020-12-29 23:10:04
    时间序列预测就是利用过去一段时间的数据来预测未来一段时间内的信息,包括连续型预测(数值预测,范围估计)与离散型预测(事件预测)等,具有非常高的商业价值。
  • 生产经营中常用的预测算法

    千次阅读 2017-04-20 13:35:50
    常见的预测算法有: 1.简易平均法,包括几何平均法、算术平均法及加权平均法; 2.移动平均法,包括简单移动平均法和加权移动平均法; 3,指数平滑法,包括 一次指数平滑法和二次指数平滑法,三次指数平滑法; 4,线性...
  • 用ARIMA模型做需求预测

    千次阅读 2017-05-02 11:33:16
    观察数据是否是时间序列数据,是否有seasonal等因素。 transform:Box-correlation,保证variance是uniform的。如果用box-cor还能稳定,还要继续深入挖掘。 ACF/PACF 是为了找到 MA 和 AR 的order。 d=0...
  • 德尔菲法——意见可靠预测方法

    千次阅读 2019-07-09 08:59:14
    专家人数的多少,根据预测课题的大小和涉及面的宽窄而定,一般超过20人。 向所有专家提出所要预测的问题及有关要求,并附上有关这个问题的所有背景材料,同时请专家提出还需要什么材料。然后,由专家做书面...
  • 不可不知的七大统计模型

    万次阅读 多人点赞 2018-12-03 16:18:07
    在研究变量之间的相互影响关系模型时候,用到这类方法,具体地说:其可以定量地描述某一现象和某些因素之间的函数关系,将各变量的已知值带入回归方程可以求出因变量的估计值,从而可以进行预测等相关研究。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 94,726
精华内容 37,890
关键字:

不可预测因素