sella / app.py
salsabilapl's picture
Update app.py
cf7d20a verified
import streamlit as st
import joblib
import pandas as pd
import numpy as np
from statsmodels.tsa.statespace.varmax import VARMAX
import matplotlib.pyplot as plt
import statsmodels.api as sm
# Load the pre-trained model
fitted_model = joblib.load('modelling_all123.sav')
# Streamlit App
st.title("Aplikasi Prediksi Harga Bawang")
# Date Range Input
start_date = st.date_input("Pilih Tanggal Mulai", pd.to_datetime('2023-12-01'))
end_date = st.date_input("Select End Date", pd.to_datetime('2023-12-30'))
# Make predictions based on user input
predict = fitted_model.get_prediction(start=start_date, end=end_date, dynamic=True)
predictions = predict.predicted_mean
predictions['Harga Bawang'] = predictions['Harga Bawang'].round()
predictions.columns = ['Prediction Harga Bawang',
'Prediction T2M',
'Prediction WS10M_RANGE',
'Prediction PRECTOTCORR']
predictions = predictions.abs()
predictions = predictions.set_index(pd.date_range(start=start_date, periods=len(predictions)))
# Display Predictions Table
st.subheader("Hasil Prediksi")
st.write(predictions)
# Plotting Predictions
fig, ax = plt.subplots(figsize=(10, 6))
for column in predictions.columns:
ax.plot(predictions.index, predictions[column], label=column)
ax.set_xlabel("Tanggal")
ax.set_ylabel("Hasil Prediksi")
ax.set_title("Prediksi")
# Show plot in Streamlit
st.pyplot(fig)