• 【大数据部落】R语言代写GAM(广义相加模型)对物业耗电量进行预测


     人们对于电力的需求与依赖随着生活水平的提高而不断加深,用电负荷预测工作开始变得越来越重要,如果可以发现用电负荷的规律性,我们就可以合理安排用电负荷。我们使用某商业物业两个星期的电耗数据进行分析。

    GAM模型

    当因变量和自变量不呈线性关系时,可用广义相加模型(GAM)。GAM模型的优点,在于其解决响应变量与预测因子间的高度非线性和非单调关系方面的突出能力,是一种基于数据的模型(data-driven),数据决定着响应变量和预测因子之间的关系。电耗数据不是线性的,同时是一个有季节趋势的时间序列趋势。那么GAM模型是否可以用来预测时间序列呢?

    首先绘制出用电量的时间序列图,看下趋势

    绘制时间序列有两个主要自变量:天和周。 我们的响应变量是电力负荷。 我们来构建出GAM模型

    我们可以看到时间变量对电力负荷的影响。 在左图中,负荷的峰值是白天下午3点左右。 同时我们可以看到,周末耗电量下降。

    然后我们绘制耗电量曲面图更直观的发现规律。

    我们可以看到,最高峰是当“每日”变量的值接近(3点),“周”变量的值为1(这是星期一)。

    最后,我们可以看到,电力负荷的最高值是星期一下午3点 直到星期四,然后负载在周末减少。

    结语

    GAM模型的优点在于其解决高度非线性预测问题的突出能力。GAM模型是否可以应用在其他领域?

    抛砖:logistic regression在credit risk里面用的很多,个人认为作为统计进入金融 风控是个不错的切入点。

    人们对于电力的需求与依赖随着生活水平的提高而不断加深,用电负荷预测工作开始变得越来越重要,如果可以发现用电负荷的规律性,我们就可以合理安排用电负荷。我们使用某商业物业两个星期的电耗数据进行分析。

    GAM模型

    当因变量和自变量不呈线性关系时,可用广义相加模型(GAM)。GAM模型的优点,在于其解决响应变量与预测因子间的高度非线性和非单调关系方面的突出能力,是一种基于数据的模型(data-driven),数据决定着响应变量和预测因子之间的关系。电耗数据不是线性的,同时是一个有季节趋势的时间序列趋势。那么GAM模型是否可以用来预测时间序列呢?

    首先绘制出用电量的时间序列图,看下趋势

    ggplot(data_r, aes(date_time, value)) +

    geom_line() +

    theme(panel.border = element_blank(),

    panel.background = element_blank(),

    panel.grid.minor = element_line(colour = "grey90"),

    panel.grid.major = element_line(colour = "grey90"),

    panel.grid.major.x = element_line(colour = "grey90"),

    axis.text = element_text(size = 10),

    axis.title = element_text(size = 12, face = "bold")) +

    labs(x = "日期", y = "用电量 (kW)")

    gam_1 <- gam(Load ~ s(Daily, bs = "cr", k = period) +

    s(Weekly, bs = "ps", k = 7),

    data = matrix_gam,

    family = gaussian)

    绘制时间序列有两个主要自变量:天和周。我们的响应变量是电力负荷。我们来构建出GAM模型

    我们可以看到时间变量对电力负荷的影响。在左图中,负荷的峰值是白天下午3点左右。同时我们可以看到,周末耗电量下降。

    然后我们绘制耗电量曲面图更直观的发现规律。

    我们可以看到,最高峰是当“每日”变量的值接近(3点),“周”变量的值为1(这是星期一)。

    最后,我们可以看到,电力负荷的最高值是星期一下午3点直到星期四,然后负载在周末减少。

    结语

    GAM模型的优点在于其解决高度非线性预测问题的突出能力。GAM模型是否可以应用在其他领域?

    抛砖:logistic regression在credit risk里面用的很多,个人认为作为统计进入金融风控是个不错的切入点。

    如果您有任何疑问,请在下面发表评论。   

  • 相关阅读:
    C++ Primer 有感(异常处理)(二)
    C++ Primer 有感(异常处理)
    C++ Primer 有感(多重继承与虚继承)
    C++ Primer 有感(面向对象编程)
    C++ Primer 有感(重载操作符)
    yii小部件
    [BAT]通过schtasks.exe远程调用windows 2008 server上的计划任务,提示ERROR : Access is denied
    [BAT]远程执行或停止计划任务
    [Jmeter]通过批处理调用java,java从CSV动态读取登录的用户名和密码,并将其作为参数组合成字符串,写入外部.bat文件,然后通过Java执行这个外部批处理文件
    [Jmeter]Xpath获取元素某个属性的值,以及获取最后一个元素某个属性的值
  • 原文地址:https://www.cnblogs.com/tecdat/p/11097006.html
Copyright © 2020-2023  润新知