(1)绘制上述数据的时序图并将温度作为解释变量对日度耗电量建模。为什么是它们之间是正向相关关系?
head(elecdaily,20) %>%
as.data.frame() %>%
ggplot(aes(x=Temperature, y=Demand)) +
ylab("电量能耗 %") +
xlab("温度变化 %") +
geom_point() +
geom_smooth(method="lm", formula = y ~ x,se=FALSE)+
theme(text = element_text(family = "STHeiti"))+
theme(plot.title = element_text(hjust = 0.5))
电能耗费与温度变化之间呈现出正向相关关系。
随着温度变化(x轴)的增加,电能耗费(y轴)也在增加。
可能的原因
能耗:在较高温度下,可能会导致更多的空调或制冷系统运作,从而增加电能消耗。
季节性因素:夏季温度较高时,通常会增加电能需求,尤其是在空调使用频率较高的地区。
设备效率:温度变化可能影响设备的效率,例如在高温下,某些设备可能需要更多电力来维持性能。
tslm(Temperature ~ Demand, data=head(elecdaily,20))
Coefficients:
(Intercept) Demand
-1.422 0.129
模型结果
- 截距 (Intercept): -1.422
- 需求 (Demand): 0.129
解读
- 截距 (Intercept):
- 截距的值为 -1.422。它表示当自变量为 0 时,因变量的预测值。
- 需求 (Demand) 的系数:
- 系数为 0.129,表示自变量(需求)每增加一个单位,因变量的预测值将增加 0.129 单位。需求与因变量之间存在正向关系:当需求增加时,因变量(电能消耗)也会随之增加。
总结
- 这个模型表明了一个线性关系,需求的增加会导致因变量的增加。
三个变量的关系
head(elecdaily,20) %>%
as.data.frame() %>%
GGally::ggpairs()
(2)绘制残差图。请说明模型是否充分?
fit.consMR <- tslm(Temperature ~ Demand, data=head(elecdaily,20))
summary(fit.consMR)
#查看结果
tslm(formula = Demand ~ Temperature, data = head(elecdaily, 20))
Residuals:
Min 1Q Median 3Q Max
-46.060 -7.117 -1.437 17.484 27.102
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 39.2117 17.9915 2.179 0.0428 *
Temperature 6.7572 0.6114 11.052 1.88e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 22 on 18 degrees of freedom
Multiple R-squared: 0.8716, Adjusted R-squared: 0.8644
F-statistic: 122.1 on 1 and 18 DF, p-value: 1.876e-09
这个模型结果表明,影响是显著的,模型解释了大部分的变异(87.16%)
#残差检验
checkresiduals(fit.consMR)
(3)若明日最高温度为15度,利用模型预测当天的耗电量。并与最高温度为35度时的预测结果进行比较。你觉得预测结果可信吗?
#创建数据框
InitialData <- head(elecdaily,20)
#整理格式数据
forcastData <- data.frame(Demand = c(InitialData[,"Demand"]),WorkDay = c(InitialData[,"WorkDay"]),Temperature = c(InitialData[,"Temperature"]))
#lm模型
model <- lm(Demand ~ Temperature,data = forcastData)
summary(model)
输出结果:
Residuals:
Min 1Q Median 3Q Max
-46.060 -7.117 -1.437 17.484 27.102
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 39.2117 17.9915 2.179 0.0428 *
Temperature 6.7572 0.6114 11.052 1.88e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 22 on 18 degrees of freedom
Multiple R-squared: 0.8716, Adjusted R-squared: 0.8644
F-statistic: 122.1 on 1 and 18 DF, p-value: 1.876e-09
# 创建新的数据用于预测
Temperature15 <- data.frame(Temperature= 15)
fcastData <- forecast(model,newdata = Temperature15)
fcastData
15度输出结果:
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 140.5701 108.681 172.4591 90.21166 190.9285
Temperature35 <- data.frame(Temperature= 35)
fcastData2 <- forecast(model,newdata = Temperature35)
fcastData2
35度输出结果:
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 275.7146 245.2278 306.2014 227.5706 323.8586
推断图看范围感觉可信
(4)写出模型预测值的预测区间。
fcast1 <- forecast(model,newdata =Temperature15,level=c(80,95) )
print(fcast1)
输出结果
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 140.5701 108.681 172.4591 90.21166 190.9285
fcast2 <- forecast(model,newdata =Temperature35,level=c(80,95) )
print(fcast2)
输出结果
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1 275.7146 245.2278 306.2014 227.5706 323.8586
(5)利用elecdaily中的所有数据,绘制日度耗电量和温度的关系图。你对你的模型有什么认识?
as.data.frame(elecdaily) %>%
ggplot(aes(x=Temperature, y=Demand)) +
ylab("电量能耗 %") +
xlab("温度变化 %") +
geom_point() +
geom_smooth(method="lm", formula = y ~ x,se=FALSE)+
theme(text = element_text(family = "STHeiti"))+
theme(plot.title = element_text(hjust =s 0.5))
这个模型提供了温度变化与电能消耗之间的初步了解,当处于20-24度区间时电量耗能最小,温度的升高与降低都会引起电量的能耗增加,这里只依赖了温度查看电量能耗分析,未考虑工作日周末的影响,工作日与周末好像也有个曲线变化,但影响较小,还需要进一步分析和优化,以提高预测的准确性和可靠性。