This project analyzes and predicts computer network usage over time using time series techniques. The analysis leverages Python libraries such as Pandas, Matplotlib, Seaborn, and Statsmodels to process, visualize, and forecast network activity trends. The motivation in this project was of my lecture in Signal Processing which discussed about Time Series Analysis and it's implementation in Wireless Communication and Signal Processing.
The Jupyter Notebook (main.ipynb) contains the following sections:
- Importing Libraries📚
- Imports necessary Python libraries including Pandas, Matplotlib, Seaborn, NumPy, and Statsmodels.
- Data Loading and Preprocessing💾
- Loads network usage data from computer_network.csv.
- Converts the date column to a proper datetime format.
- Checks for missing values and handles them accordingly.
- Exploratory Data Analysis (EDA)💡
- Aggregates network activity by date.
- Visualizes network usage trends over time using line plots.
- Check the stationarity of the data
- Plot the ACF and PACF to check trend in the data
- Time Series Modeling with ARIMA and ARMA⌛
- Performs stationarity checks using statistical tests.
- Selects optimal ARIMA parameters based on ACF/PACF plots.
- Trains the ARIMA model and evaluates its performance.
- Forecasting Future Network Usage🖥️
- Uses the trained ARIMA model to make predictions.
- Visualizes forecasted trends alongside actual data.
-
Install dependencies if not already installed: pip install pandas numpy matplotlib seaborn statsmodels
-
Ensure computer_network.csv is present in the working directory.
-
Open main.ipynb in Jupyter Notebook and run the cells sequentially.
- Comprehensive visualization of network usage trends.
- ARIMA model that fitted to the time series data.
- Future predictions of network activity with confidence intervals.
- Ensure that the dataset contains valid timestamps for accurate analysis.
- Adjust ARIMA parameters (p, d, q) if the model's performance is unsatisfactory.
Developed as part of a time series forecasting project using Python.