zoukankan      html  css  js  c++  java
  • 【大数据部落】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里面用的很多,个人认为作为统计进入金融风控是个不错的切入点。

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

  • 相关阅读:
    【mysql】八、mysql的学习---查询缓存
    【mysql】七、mysql的学习---应用优化
    【mysql】六、mysql的学习---SQL优化
    【mysql】五、mysql的学习---存储引擎
    【mysql】四、mysql的学习---触发器
    【mysql】三、mysql的学习---存储过程和函数
    【mysql】二、mysql的学习---视图
    server --SSD中,SATA,m2,PCIE和NVME各代表了什么,关系是什么
    windows--禁用驱动程序强制签名
    linux --kernel 和 OS 的关系区别
  • 原文地址:https://www.cnblogs.com/tecdat/p/11097006.html
Copyright © 2011-2022 走看看