Skip to content

Repository for 'Weather Forecaster'. Analyzing 30+ years of Gainesville regional weather data to identify seasonal trends using STL and projecting forecasts with SARIMA.

Notifications You must be signed in to change notification settings

rohitmitt/Weather-Forecaster

Repository files navigation

Weather-Forecaster

Repository for 'Weather Forecaster'. Analyzing 30+ years of Gainesville regional weather data to identify seasonal trends using STL and projecting forecasts with SARIMA.

Project Title: A Statistical Approach to Weather Forecasting

Problem Statement:

Can a statistical model effectively use historical weather data to accurately forecast weather conditions? This project aims to develop a predictive model using historical weather data to forecast temperature and precipitation. An accurate forecast allows a variety of industries to make informed decisions, mitigate risks, and optimize operations.

Dataset Description:

Our dataset is sourced from the Florida Climate Center at Florida State University and provides approximately 65 years of mean temperature (Fahrenheit) and precipitation (inches) data from Gainesville Regional Airport [1].

Evaluation Metric:

We will partition the data into training (70%), validation (15%), and testing (15%) sets. We will use metrics like Mean Absolute Error (MAE), Root Mean Square Error (RMSE), and correlation coefficient to compare model predictions with historical observations across all metrics. This approach ensures a thorough evaluation of our model's accuracy and reliability in forecasting weather patterns.

Baseline Techniques:

Weather forecasting commonly uses statistical models to analyze time-series nature of weather data. Weather data exhibits seasonal trends. Seasonality is where trends repeat over a period of time within a given year; hence the four seasons summer, fall, winter, spring. Recent papers involving predicting rainfall, temperature or other weather patterns have used time series decomposition techniques to isolate trend-cycle, seasonal, and remainder components [2]. A common method uses “Seasonal and Trend decomposition using LOESS” (STL) [3, 4]. Traditional forecasting models like autoregressive integrated moving average (ARIMA) have proven successful for modeling weather patterns [4,5]. More recently, machine learning approaches using neural networks are increasingly explored. RNNs [6], and even GNNs [7], offer the potential to model complex dependencies and noise in weather data.

Proposed Approach and Tools:

Tools:

Python, pandas, matplotlib, and statsmodel for decomposing and visualizing the data and R or pmdarima (python lib) for ARIMA forecasting.

Approach:

Exploratory Data Analysis: Using plots, we will explore trends in each of the weather variables from the dataset. This will help visualize seasonal cycles and the strength of the trend when tuning STL parameters. Decomposition: We will decompose the training data using the STL model with the statsmodel python library. Extract trend, seasonal, and remainder components from the STL decomposition. Forecasting: Before model fitting, we will re-check the stationarity of the remainder component. We will determine the best ARIMA fitting model for forecasting by plotting the autocorrelation function (ACF) and partial autocorrelation function (PACF) of this remainder component. If the weather variable is stationary, we can use a standard ARIMA(p,d,q), otherwise we will fit a seasonal ARIMA(p, d, q) x (P, D, Q) model. We will use an auto ARIMA function to find a starting point for parameters, and then tune using insights from STL, ACF and PACF. Once the model is fit using ARIMA, we can identify goodness of fit by analyzing the remainder of the fitted model with a Q-Q plot. We can then evaluate this tuned ARIMA model for predicting temperature and precipitation.

About

Repository for 'Weather Forecaster'. Analyzing 30+ years of Gainesville regional weather data to identify seasonal trends using STL and projecting forecasts with SARIMA.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages