信息擴散方法是爲了彌補信息不足而考慮優化利用樣本模糊信息的一種對樣本進行集值化的模糊數學處理方法。最原始的形式是信息分配方法;最簡單的信息擴散函數是正態擴散函數。信息擴散方法可以將一個分明值的樣本點,變成一個模糊集。或者說,是把單值樣本點,變成集值樣本點。
信息擴散原理:
已知論域 :
一個單值觀測樣本點 依可以將其所攜帶的信息擴散給 中的所有點。
在 中, 爲擴散係數,可根據樣本中的最大值 和最小值 及樣本點個數 來確定。
令
則
就將單值樣本點 變成 爲隸屬函數的模糊子集 。
在進行風險評估時,爲了使每一個集值樣本點的地位均相同,需對作適當的調整,所得的模糊子集也不再是中的最大隸屬度爲 的正規化模糊子集。
設對第 個樣本點 按照進行擴散,得
令
相應的模糊子集的隸屬函數是
稱 爲樣本點 的歸一化信息分佈。
令
再令
事實上就是各 點上樣本點數的總和,從理論上講,必有 (計算中可能存在一些誤差)。
即樣本點落在 處的頻率值,可以作爲概率的估計值。超越 的概率值爲
即爲超越概率估計值。
例:
;
試以 爲論域;
以爲擴散系統,使用正態擴散方法進行估計
matlab代碼如下:
x = [-2.5875, -2.5621, -1.1896, -1.1882, -1.2074, -1.7865, -1.0498, -2.0894, -1.6859, -1.3128, -1.1729, -1.9419, -1.6125, -1.9118, -2.5795, -1.2603];
u = [-3, -2.5, -2, -1.5, -1, -0.5, 0];
xlength = length(x);
ulength = length(u);
maxX = max(x);
minX = min(x);
if xlength == 5
h = 0.8146 * (maxX - minX);
elseif xlength == 6
h = 0.5690 * (maxX - minX);
elseif xlength == 7
h = 0.4560 * (maxX - minX);
elseif xlength == 8
h = 0.3860 * (maxX - minX);
elseif xlength == 9
h = 0.3362 * (maxX - minX);
elseif xlength == 10
h = 0.2986 * (maxX - minX);
elseif xlength > 10
h = 2.6851 * (maxX - minX) / (xlength - 1);
else
h = 0;
end
f = zeros(xlength, ulength);
C = zeros(xlength, 1);
q = zeros(ulength, 1);
for i = 1 : xlength
for j = 1 : ulength
f(i, j) = 1.0 / (h * sqrt(2 * pi)) * exp(-(x(i) - u(j)) ^ 2 / (2 * h ^ 2));
C(i) = C(i) + f(i, j);
end
end
for i = 1 : xlength
for j = 1 : ulength
f(i, j) = f(i, j) / C(i);
q(j) = q(j) + f(i, j);
end
end
Q = sum(q);
p = q ./ Q;
P = zeros(ulength, 1);
for i = 1 : ulength
for j = i : ulength
P(i) = P(i) + p(j);
end
end
輸出結果爲:
u | -3 | -2.5 | -2 | -1.5 | -1 | -0.5 | 0 |
---|---|---|---|---|---|---|---|
p | 0.0419 | 0.1583 | 0.2251 | 0.3114 | 0.2674 | 0.0157 | 4.9511e-05 |
P | 1 | 0.9581 | 0.7999 | 0.5748 | 0.2634 | 0.0157 | 4.9511e-05 |