Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📈 Time Series Decomposition & Stationarity Analysis Dashboard

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.


📌 Project Overview

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

Dataset: Daily Minimum Temperatures in Melbourne

  • Daily observations
  • Time Period: 1981 – 1990
  • Total Records: 3650
  • Missing Values: None

Source: Daily Minimum Temperatures Dataset


🚀 Features

📊 Exploratory Analysis

  • Dataset Overview
  • Summary Statistics
  • Time Series Plot
  • Rolling Statistics
  • Monthly Trends
  • Yearly Trends

📉 Time Series Decomposition

The series is decomposed into:

  • Trend
  • Seasonal Component
  • Residual Component

using

  • Seasonal Decomposition (Additive Model)

📈 Stationarity Testing

Performed using

Augmented Dickey-Fuller (ADF)

Results

  • Statistic: -4.4448
  • p-value: 0.000247

Conclusion

✅ Stationary


KPSS Test

Results

  • Statistic: 0.0557
  • p-value: 0.10

Conclusion

✅ Stationary


🔄 Data Transformations

Applied transformations include

  • First Order Differencing
  • Log Transformation

These transformations help convert non-stationary data into stationary data when required.


🖥 Interactive Dashboard

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

📁 Project Structure

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

🛠 Technologies Used

  • Python
  • Pandas
  • NumPy
  • Matplotlib
  • Plotly
  • Streamlit
  • Statsmodels

📊 Results

Time Series Characteristics

✔ Strong yearly seasonality

✔ Slight long-term trend

✔ Random residual fluctuations

✔ No missing values

✔ Stationary according to ADF and KPSS tests


📸 Project Screenshots

Dashboard

Dashboard


Decomposition

Decomposition


Rolling Statistics

Rolling Statistics


First Difference

First Difference


Log Transformation

Log Transformation


▶️ Installation

Clone the repository

git clone https://github.com/yourusername/TIME-SERIES-DECOMPOSITION.git

Move into the project

cd TIME-SERIES-DECOMPOSITION

Install dependencies

pip install -r requirements.txt

Run Streamlit

streamlit run app.py

🎯 Learning Outcomes

Through 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

📌 Internship Task Covered

✔ Time Series Exploration

✔ Time Series Decomposition

✔ Stationarity Testing

✔ Data Transformations

✔ Interactive Dashboard Development


📈 Future Improvements

  • Forecasting using ARIMA
  • SARIMA Model
  • Prophet Forecasting
  • LSTM Forecasting
  • Model Performance Comparison
  • Forecast Dashboard

👨‍💻 Author

Zaara Khan

B.Tech Computer Science Engineering

Data Science Summer Internship

About

Interactive Time Series Analysis Dashboard using Python, Streamlit, Plotly, and Statsmodels with decomposition, stationarity testing (ADF & KPSS), rolling statistics, and data transformations.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages