An interactive Time Series Analysis project built with Python, Statsmodels, Plotly, and Streamlit to explore, decompose, and analyze the Daily Minimum Temperature dataset (1981–1990).
This project demonstrates Exploratory Time Series Analysis, decomposition into trend/seasonality/residuals, stationarity testing, and an interactive dashboard for visualization.
Time series analysis helps identify underlying patterns within sequential data.
This project performs:
- Exploratory Time Series Analysis (ETSA)
- Time Series Decomposition
- Trend Analysis
- Seasonal Pattern Analysis
- Residual Analysis
- Stationarity Testing
- Data Transformation
- Interactive Dashboard using Streamlit
Dataset: Daily Minimum Temperatures in Melbourne
- Daily observations
- Time Period: 1981 – 1990
- Total Records: 3650
- Missing Values: None
Source: Daily Minimum Temperatures Dataset
- Dataset Overview
- Summary Statistics
- Time Series Plot
- Rolling Statistics
- Monthly Trends
- Yearly Trends
The series is decomposed into:
- Trend
- Seasonal Component
- Residual Component
using
- Seasonal Decomposition (Additive Model)
Performed using
Results
- Statistic: -4.4448
- p-value: 0.000247
Conclusion
✅ Stationary
Results
- Statistic: 0.0557
- p-value: 0.10
Conclusion
✅ Stationary
Applied transformations include
- First Order Differencing
- Log Transformation
These transformations help convert non-stationary data into stationary data when required.
Built completely using Streamlit.
Dashboard includes
- Dataset Overview
- Interactive Time Series Plot
- Monthly Average Visualization
- Yearly Average Visualization
- Rolling Mean
- Trend Component
- Seasonal Component
- Residual Component
- Stationarity Test Results
- Download Filtered Dataset
TIME-SERIES-DECOMPOSITION/
│
├── data/
│ └── daily-min-temperatures.csv
│
├── images/
│ ├── dashboard.png
│ ├── decomposition.png
│ ├── first_difference.png
│ ├── log_transform.png
│ ├── original_series.png
│ └── rolling_statistics.png
│
├── app.py
├── decomposition_stationarity.py
├── README.md
├── requirements.txt
└── .gitignore
- Python
- Pandas
- NumPy
- Matplotlib
- Plotly
- Streamlit
- Statsmodels
✔ Strong yearly seasonality
✔ Slight long-term trend
✔ Random residual fluctuations
✔ No missing values
✔ Stationary according to ADF and KPSS tests
Clone the repository
git clone https://github.com/yourusername/TIME-SERIES-DECOMPOSITION.gitMove into the project
cd TIME-SERIES-DECOMPOSITIONInstall dependencies
pip install -r requirements.txtRun Streamlit
streamlit run app.pyThrough this project, I gained hands-on experience with
- Time Series Data Handling
- Data Visualization
- Trend Analysis
- Seasonal Analysis
- Stationarity Testing
- Statistical Interpretation
- Time Series Transformations
- Interactive Dashboard Development using Streamlit
✔ Time Series Exploration
✔ Time Series Decomposition
✔ Stationarity Testing
✔ Data Transformations
✔ Interactive Dashboard Development
- Forecasting using ARIMA
- SARIMA Model
- Prophet Forecasting
- LSTM Forecasting
- Model Performance Comparison
- Forecast Dashboard
Zaara Khan
B.Tech Computer Science Engineering
Data Science Summer Internship




