A state-of-the-art time series analysis project using 270+ years of historical sunspots data, showcasing modern forecasting techniques from classical statistics to deep learning.
This repository contains a complete time series analysis of sunspot activity data, exploring cyclical patterns in solar activity through multiple analytical approaches. Sunspots follow an approximately 11-year solar cycle, making this dataset perfect for demonstrating time series analysis techniques.
- Advanced Decomposition: STL decomposition revealing trend, seasonal, and cyclical components
- 6 Forecasting Models: From classical ARIMA to modern deep learning (LSTM)
- Solar Cycle Mastery: Deep analysis of the famous ~11-year solar cycle using cutting-edge techniques
- Benchmarking Study: Rigorous comparison of statistical, ML, and deep learning approaches
- Uncertainty Quantification: Bayesian and ensemble methods for prediction intervals
- Operational Deployment: Model selection and recommendations for real-world forecasting
time-series-analysis/
├── data/
│ ├── raw/ # Original dataset from Kaggle
│ └── processed/ # Cleaned and preprocessed data
├── notebooks/
│ ├── 01_data_exploration.ipynb # Complete data exploration & decomposition analysis
│ ├── 02_time_series_decomposition.ipynb # Advanced STL decomposition & spectral analysis
│ └── 03_forecasting_models_comparison.ipynb # 6 state-of-the-art forecasting models comparison
├── src/
│ ├── data_processing.py # Data loading and preprocessing functions
│ ├── visualization.py # Plotting and visualization utilities
│ └── models.py # Model implementations and utilities
├── results/
│ ├── plots/ # Generated visualizations
│ └── models/ # Saved model objects
├── requirements.txt # Python dependencies
├── README.md # This file
└── .gitignore # Git ignore rules
- Python 3.8+
- Jupyter Notebook or JupyterLab
- Clone this repository:
git clone https://github.com/yourusername/time-series-analysis.git
cd time-series-analysis- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt-
Download the dataset:
- Visit Kaggle Sunspots Dataset
- Download the
Sunspots.csvfile and place it indata/raw/directory
-
Launch Jupyter:
jupyter notebook- Trend Analysis: Long-term patterns in sunspot activity
- Seasonality Detection: Identification of the ~11-year solar cycle
- STL Decomposition: Seasonal and Trend decomposition using Loess
- Stationarity testing and data preprocessing
- Parameter selection using ACF/PACF analysis
- Model diagnostics and residual analysis
- Multi-step ahead forecasting
- Automatic seasonality detection
- Trend changepoint analysis
- Cross-validation for model selection
- Uncertainty quantification
- Feature engineering with time-based variables
- Linear regression with polynomial features
- Ensemble methods (Random Forest, Gradient Boosting)
- Support Vector Regression
(This section will be updated as analysis progresses)
- Solar cycle patterns and their statistical significance
- Model performance comparisons
- Forecasting accuracy for different time horizons
- Insights into sunspot activity patterns
The project includes comprehensive visualizations:
- Time series plots with trend lines
- Decomposition charts (trend, seasonal, residual)
- Autocorrelation and partial autocorrelation plots
- Forecast plots with confidence intervals
- Model performance comparison charts
- Data Processing: pandas, numpy
- Visualization: matplotlib, seaborn, plotly
- Statistical Analysis: scipy, statsmodels
- Classical: ARIMA, SARIMA, Exponential Smoothing
- Modern: Facebook Prophet, NeuralProphet
- Machine Learning: XGBoost, scikit-learn
- Deep Learning: TensorFlow/Keras LSTM Networks
- Uncertainty Quantification: Bayesian methods, confidence intervals
- Feature Engineering: Lag features, rolling statistics, cyclical encoding
- Model Evaluation: Time series cross-validation, multiple metrics
Complete data exploration including:
- Historical sunspot data loading and quality assessment
- Statistical analysis and visualization of 270+ years of data
- Time series decomposition (trend, seasonal, residual components)
- Spectral analysis revealing the famous ~11-year solar cycle
- Data preprocessing and feature engineering
Advanced decomposition analysis featuring:
- STL (Seasonal and Trend decomposition using Loess)
- Classical additive and multiplicative decomposition
- Solar cycle identification and analysis
- Component-wise statistical analysis
- Frequency domain analysis with periodograms
State-of-the-art forecasting benchmark with 6 models:
- Classical: ARIMA, SARIMA, Exponential Smoothing
- Modern ML: Facebook Prophet, XGBoost
- Deep Learning: LSTM Neural Networks
- Comprehensive performance evaluation and model ranking
- Uncertainty quantification with confidence intervals
- Final recommendations for operational forecasting
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License - see the LICENSE file for details.
For questions or suggestions, please open an issue in this repository.
⭐ If you find this project helpful, please consider giving it a star!