Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Discrete Structures Semester Project

Price Similarity Network Analysis using Pakistan Bureau of Statistics CPI Data

Overview

This desktop application analyzes multi-year Consumer Price Index data to construct temporal similarity networks between cities based on their price patterns across different product categories.

Features

  • Multi-year temporal network analysis
  • 7 product categories
  • 4 centrality metrics (Degree, Closeness, Betweenness, Eigenvector)
  • Multiple weighting schemes (Equal, Entropy-based, Correlation-based)
  • Temporal partial order verification
  • Interactive visualizations
  • Data aggregation across years

Requirements

  • Python 3.8 or higher
  • See requirements.txt for package dependencies

Installation

Windows

INSTALL.bat

Or manually:

python -m pip install -r requirements.txt

Linux / macOS

pip install -r requirements.txt

Usage

Windows

RUN_APP.bat

Or:

python desktop_app.py

Linux / macOS

python3 desktop_app.py

Data Format

Input CSV file must contain the following columns:

  • Year - Numerical year
  • Month - Month name
  • City - City name
  • Product - Product name
  • Price - Numerical price value

Default data file: data.csv

Application Structure

Main Components

  • desktop_app.py - GUI application
  • price_network_analysis.py - Core analysis engine
  • data.csv - CPI dataset

Interface Tabs

  1. Overview - Dataset statistics with year filtering
  2. Network - Interactive graph visualization
  3. Centrality - Metric comparison charts
  4. Rankings - City influence scores
  5. Heatmap - Similarity matrices
  6. Temporal - Partial order analysis
  7. Credits - Project information

Parameters

  • Similarity Threshold (0.5 - 0.95)
  • Normalization Method (Z-score, Min-Max)
  • Missing Data Strategy (Drop, Mean, Median)
  • Weighting Scheme (Equal, Entropy-based, Correlation-based)

Mathematical Foundation

Cosine Similarity

similarity(A, B) = (A · B) / (||A|| × ||B||)

Weighted Centrality Aggregation

S(i,y,c) = w_D × D(i,y,c) + w_C × C(i,y,c) + w_B × B(i,y,c) + w_E × E(i,y,c)

Entropy-Based Weighting

H_k = -Σ(p_ik × log(p_ik))
w_k = H_k / Σ(H_j)

Temporal Relation

G(y,c) ⊆ G(y',c) defines partial order

Data Aggregation

When "All Years" is selected:

  • Networks: Combines graphs and averages edge weights
  • Centralities: Averages metrics across years
  • Rankings: Aggregates and averages influence scores
  • Heatmaps: Element-wise average of similarity matrices

Export Features

  • Rankings can be exported to CSV
  • Visualizations displayed in application

Project Information

Course: Discrete Structures
Institution: FAST National University
Program: BS Computer Science
Semester: Fall 2024

Team Members:

  • Hassaan Amin (24I-0880)
  • Ammar Bin Omer (24I-0500)
  • Haris Zahid Abbasi (24I-0643)

Technical Stack

  • CustomTkinter - GUI framework
  • NetworkX - Graph analysis
  • Pandas - Data processing
  • NumPy - Numerical computing
  • Matplotlib - Plotting
  • Seaborn - Statistical visualization
  • SciPy - Scientific computing

License

Academic project for educational purposes.

Data Source

Pakistan Bureau of Statistics (PBS)
Consumer Price Index Publications
https://www.pbs.gov.pk/price/

About

Constructed and analyzed a multi-year temporal network of cities, using cosine similarity of price patterns within each of the above product categories. Each network layer represents one category, while each time step (month, year) reflects changes in city-wise relationships.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages