短期光伏发电量短期预测(Python代码,基于SARIMA(季节性自回归移动平均模型)和Prophet工具

python

pip install pandas numpy matplotlib statsmodels pystan prophet
使用以下代码进行光伏发电量的短期预测:

python

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.statespace.sarimax import SARIMAX
from prophet import Prophet

读取数据

data = pd.read_csv(‘solar_data.csv’)

将日期列转换为日期时间格式

data[‘Date’] = pd.to_datetime(data[‘Date’])

将日期列设置为索引

data.set_index(‘Date’, inplace=True)

拆分训练集和测试集

train_data = data.loc[:‘2024-06-30’]
test_data = data.loc[‘2024-07-01’:]

SARIMA模型

model = SARIMAX(train_data, order=(1, 1, 1), seasonal_order=(1, 0, 0, 12))
sarima_model = model.fit()

预测短期发电量

predictions_sarima = sarima_model.predict(start=test_data.index[0], end=test_data.index[-1])

Prophet模型

prophet_data = pd.DataFrame({‘ds’: train_data.index, ‘y’: train_data[‘Power’]})
prophet_model = Prophet()
prophet_model.fit(prophet_data)

创建未来日期

future_dates = pd.date_range(start=test_data.index[0], end=test_data.index[-1])

预测短期发电量

prophet_forecast = prophet_model.predict(pd.DataFrame({‘ds’: future_dates}))

绘制结果

plt.figure(figsize=(12, 6))
plt.plot(train_data.index, train_data[‘Power’], label=‘Training Data’)
plt.plot(test_data.index, test_data[‘Power’], label=‘Actual Data’)
plt.plot(test_data.index, predictions_sarima, label=‘SARIMA Forecast’)
plt.plot(test_data.index, prophet_forecast[‘yhat’].values, label=‘Prophet Forecast’)
plt.xlabel(‘Date’)
plt.ylabel(‘Power’)
plt.title(‘Short-term Solar Power Generation Forecast’)
plt.legend()
plt.show()
请注意,代码中的"solar_data.csv"应替换为包含光伏发电量数据的实际文件名。确保数据文件与代码文件在同一目录中,且数据文件按照以下格式进行组织:

plaintext
复制
Date,Power
2024-01-01,100
2024-01-02,110

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前程算法屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值