Unlocking Grey System Theory: Modeling Uncertain Systems with Minimal Data
Grey system theory provides a framework for analyzing, modeling, and predicting systems with incomplete information, using minimal data and accumulation techniques to improve forecast accuracy, as demonstrated through a sales data case study with Python implementation.
1 Grey System Theory
Grey system theory studies analysis, modeling, prediction, decision and control of systems with incomplete information. It extends general systems theory, information theory and control theory to social, economic and ecological abstract systems, using classical mathematics to handle information‑incomplete systems.
Grey systems are those where some information is known and some is unknown.
The theory originated in the 1980s. Professor Deng Julong first used the term “grey system” in 1981 and published foundational papers in 1982, gaining international attention, notably from Harvard professor R. W. Brockett, leading many researchers to explore its applications.
The concept evolved from W. R. Ashby’s “black box” idea, which described systems with completely unknown internal structure. Deng’s approach studies systems from within, aiming to overcome the limitations of black‑box methods.
Grey systems have partially known information. The theory investigates how to use known data to predict unknown aspects, achieving a full understanding of the system.
Along with probability theory and fuzzy mathematics, grey system theory is a major method for studying uncertain systems, capable of building models from very few data points and overcoming data scarcity or short system cycles.
The main feature of grey prediction is that the model uses a generated data series (e.g., accumulated series) rather than the original raw series.
Advantages
Requires only a few data points (often as few as four), suitable for short or unreliable histories.
Utilizes differential equations to capture system essence, yielding high accuracy.
Transforms irregular raw data into a more regular generated series, simplifying computation and verification without assuming a specific distribution.
Disadvantages: applicable mainly to short‑term, exponential‑growth forecasts.
2 Data Accumulation and Reduction
In practice, random disturbances cause large fluctuations. To handle this, the concepts of data accumulation and reduction are introduced. Given an original data series, one‑time accumulation produces a new series; the corresponding reduction operation restores the original series.
3 Case Study
3.1 Problem
Given an annual sales data series of a product.
3.2 Analysis
Direct linear least‑squares fitting yields the line shown below, with a maximum relative error of 35.85 %, indicating poor fit.
3.3 Modeling
After one‑time accumulation of the data, a new series is obtained and fitted, producing a model for the accumulated series.
3.4 Verification
The fitted curve for the accumulated data closely matches the accumulated series, with a maximum relative error of 24.15 %, a substantial improvement over direct linear fitting. The accumulated prediction is then reduced back to the original scale.
Code
<code>import numpy as np
from matplotlib.pyplot import plot,show,rc,legend,subplot, savefig
%matplotlib inline
from scipy.optimize import curve_fit
rc('font',size=15); rc('font',family='SimHei')
t0 = np.arange(1,7)
x0 = np.array([5.081, 4.611, 5.1177, 9.3775, 11.0574, 11.0524])
xt = np.polyfit(t0, x0, 1)
xh1 = np.polyval(xt, t0) # predicted values
delta1 = np.abs((xh1 - x0))/x0 # relative error
x1 = np.cumsum(x0)
xh2 = lambda t,a,b,c: a*np.exp(b*t)+c
para, cov = curve_fit(xh2, t0, x1)
xh21 = xh2(t0, *para) # prediction for accumulated series
xh22 = np.r_[xh21[0], np.diff(xh21)] # restored prediction
delta2 = np.abs((xh22 - x0)/x0) # relative error
print("Fitted parameters:", para)
subplot(121)
plot(t0, x0, 's'); plot(t0, xh1, '*-')
legend(('Original data','Linear fit'), loc='upper left')
subplot(122)
plot(t0, x1, 'o')
plot(t0, xh21, 'p-')
legend(('Accumulated data','Fit after accumulation'))
show()
</code>Fitted parameters: [15.3914543 0.23111521 -14.76199989]
References
Si Shoukuai, Sun Xijing, Python Mathematics Experiment and Modeling
Model Perspective
Insights, knowledge, and enjoyment from a mathematical modeling researcher and educator. Hosted by Haihua Wang, a modeling instructor and author of "Clever Use of Chat for Mathematical Modeling", "Modeling: The Mathematics of Thinking", "Mathematical Modeling Practice: A Hands‑On Guide to Competitions", and co‑author of "Mathematical Modeling: Teaching Design and Cases".
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.