利用 Logarithmic Binning (Log-Binning)方法绘制幂律分布(Power-law Distributions)曲线
文章目錄
- 1. 度分布繪制的幾種方法
- 2. Log-Binning 注意事項(xiàng)
- 3. 取平均值過(guò)程的改進(jìn)
1. 度分布繪制的幾種方法
復(fù)雜網(wǎng)絡(luò)節(jié)點(diǎn)的度分布是分析網(wǎng)絡(luò)屬性的一個(gè)組成部分。該過(guò)程從獲得 NkN_{k}Nk? 開(kāi)始,即度數(shù)為 kkk 的節(jié)點(diǎn)數(shù)。這可以通過(guò)直接測(cè)量或模型來(lái)提供。從 NkN_{k}Nk? 我們計(jì)算出 pk=Nk/Np_{k}=N_{k}/Npk?=Nk?/N。問(wèn)題是,如何繪制 pkp_{k}pk? 以最好地提取其屬性。
圖 度分布在不同標(biāo)度坐標(biāo)下的表示
- 使用 Log-Log 圖
在無(wú)標(biāo)度網(wǎng)絡(luò)中,具有一或兩條鏈路的眾多節(jié)點(diǎn)與少數(shù)節(jié)點(diǎn)共存,其中少數(shù)節(jié)點(diǎn)為具有數(shù)千甚至數(shù)百萬(wàn)鏈路的節(jié)點(diǎn)。使用線性 kkk 軸壓縮無(wú)數(shù)小 kkk 區(qū)域中的節(jié)點(diǎn),使它們不可見(jiàn)。類似地,由于 k=1k=1k=1 和大 kkk 的 pkp_{k}pk? 可能存在數(shù)量級(jí)差異,如果我們?cè)诰€性垂直軸上繪制 pkp_{k}pk?,大 kkk 的值將顯示為零(圖 4.22a)。對(duì)數(shù)圖的使用避免了這些問(wèn)題。
我們可以使用 10 次方的對(duì)數(shù)軸(圖 4.22b),或者我們可以繪制 log?k\log klogk 函數(shù)的 log?k\log klogk。請(qǐng)注意,pk=0p_{k}=0pk?=0 或 k=0k=0k=0 的點(diǎn)不會(huì)在 log?-log?\log \text{-} \loglog-log 圖上顯示,因?yàn)?log?0=?∞\log0=-\inftylog0=?∞。
- 避免 Linear Binning
最有缺陷的方法(但在文獻(xiàn)中經(jīng)常出現(xiàn))是在對(duì)數(shù)圖上簡(jiǎn)單地繪制 pk=Nk/Np_{k}=N_{k}/Npk?=Nk?/N(圖 4.22b)。這稱為線性分箱(Linear Binning),因?yàn)槊總€(gè) bin\text{bin}bin 具有相同的大小 Δk=1\Delta k=1Δk=1。對(duì)于無(wú)標(biāo)度網(wǎng)絡(luò),Linear Binning 會(huì)在大 kkk 處產(chǎn)生顯而易見(jiàn)的平臺(tái),由形成水平線的大量數(shù)據(jù)點(diǎn)組成(圖 4.22b)。這個(gè)平臺(tái)有一個(gè)簡(jiǎn)單的解釋:通常我們只有一個(gè)高度節(jié)點(diǎn)的樣本,因此在高 kkk 區(qū)域中,我們要么有 Nk=0N_{k}=0Nk?=0(沒(méi)有具有 kkk 度的節(jié)點(diǎn)),要么有 Nk=1N_{k}=1Nk?=1(具有 kkk 度的單個(gè)節(jié)點(diǎn))。
因此,Linear Binning 將提供 pk=0p_{k}=0pk?=0(未在對(duì)數(shù)圖上顯示)或 pk=1/Np_{k}=1/Npk?=1/N(適用于所有 hubs),在 pk=1/Np_{k}=1/Npk?=1/N 處生成一個(gè)平臺(tái)。
這個(gè)平臺(tái)會(huì)影響我們估計(jì)度指數(shù) γ\gammaγ 的能力。例如,如果我們嘗試使用 Linear Binning 對(duì)圖 4.22b 中所示的數(shù)據(jù)擬合冪律,則獲得的 γ\gammaγ 與實(shí)際值 γ=2.5\gamma =2.5γ=2.5 完全不同。原因是在 Linear Binning 下,我們?cè)谛?kkk 的 bin\text{bin}bin 中有大量節(jié)點(diǎn),這使我們能夠自信地在這種情況下擬合 pkp_{k}pk?。在大 kkk 的 bin\text{bin}bin 中,我們的節(jié)點(diǎn)太少,無(wú)法對(duì) pkp_{k}pk? 進(jìn)行適當(dāng)?shù)慕y(tǒng)計(jì)估計(jì)。相反,新出現(xiàn)的平臺(tái)會(huì)使得擬合參數(shù)偏離。然而,正是這種高 kkk 狀態(tài)在確定 γ\gammaγ 中起關(guān)鍵作用。增加 bin\text{bin}bin 大小不會(huì)解決這個(gè)問(wèn)題。因此,建議避免對(duì)肥尾分布進(jìn)行 Linear Binning。
- 使用 Logarithmic Binning
?Logarithmic Binning 糾正了 Linear Binning 的非均勻采樣。對(duì)于 Log-Binning,我們讓 bin\text{bin}bin 大小隨程度增加,確保每個(gè) bin\text{bin}bin 具有相當(dāng)數(shù)量的節(jié)點(diǎn)。例如,我們可以選擇 bin\text{bin}bin 大小為 222 的倍數(shù),這樣第一個(gè) bin\text{bin}bin 的大小為 b0=1b_{0}=1b0?=1,包含所有 k=1k=1k=1 的節(jié)點(diǎn);第二個(gè)大小為 b1=2b_{1}=2b1?=2,包含度數(shù) k=2,3k=2,3k=2,3 的節(jié)點(diǎn);第三個(gè) bin\text{bin}bin 的大小為 b2=4b_{2}=4b2?=4,包含度數(shù) k=4,5,6,7k=4,5,6,7k=4,5,6,7 的節(jié)點(diǎn)。通過(guò)歸納,第 nnn 個(gè) bin\text{bin}bin 的大小為 2n?12^{n-1}2n?1,包含度數(shù)為 k=2n?1,2n?1+1,...,2n?1k=2^{n-1},2^{n-1}+1,...,2^{n}-1k=2n?1,2n?1+1,...,2n?1 的節(jié)點(diǎn)。請(qǐng)注意,bin\text{bin}bin 大小可以隨任意增量增加,bn=cnb_{n}=c^{n}bn?=cn,其中 c>1c>1c>1。度分布由 p?k?=Nn/(Nbn)p_{\left \langle k \right \rangle}=N_{n}/\left(Nb_{n} \right)p?k??=Nn?/(Nbn?) 給出,其中 NnN_{n}Nn? 是在大小為 bnb_{n}bn? 的 binn\text{bin}_{n}binn? 中找到的節(jié)點(diǎn)數(shù),?kn?\left \langle k_{n} \right \rangle?kn?? 是 binn\text{bin}_{n}binn? 中節(jié)點(diǎn)的平均度數(shù)。
圖 4.22c 顯示了 Logarithmic Binning 的 pkp_{k}pk?。請(qǐng)注意,現(xiàn)在擴(kuò)展到高 kkk 平臺(tái),其本來(lái)在 Linear Binning 下不可見(jiàn)。因此,Logarithmic Binning 也可以從稀有的高度節(jié)點(diǎn)中提取有用信息。由于上述操作相當(dāng)于把每個(gè) bin\text{bin}bin 中的度的 pkp_{k}pk? 進(jìn)行平均,所以最終在高 kkk 的 bin\text{bin}bin 中有些 pkp_{k}pk? 是 0,所以平均之后的值要小于 pk=1/Np_{k}=1/Npk?=1/N,這是要值得注意的。
- 使用累積分布(Cumulative Distribution)
?從 pkp_{k}pk? 的尾部提取信息的另一種方法是繪制互補(bǔ)累積分布,
Pk=∑q=k+1∞pq,(1)P_{k}=\sum^{\infty}_{q=k+1}p_{q},\tag{1} Pk?=q=k+1∑∞?pq?,(1)
這再次增強(qiáng)了高k區(qū)域的統(tǒng)計(jì)顯著性。 如果 pkp_{k}pk? 遵循冪律 pk=k?γp_{k}=k^{-\gamma}pk?=k?γ,則累積分布縮放為
pk~k?γ+1.(2)p_{k}\sim k^{-\gamma+1}.\tag{2} pk?~k?γ+1.(2)
累積分布再次消除了 Linear Binning 觀察到的平臺(tái),并擴(kuò)展了區(qū)域(圖 4.22d),從而可以更準(zhǔn)確地估計(jì)度指數(shù)。
2. Log-Binning 注意事項(xiàng)
Log-Binning 的格子為:
k=1,k=2,3,k=4,5,6,7,...,k=2n?1,2n?1+1,...,2n?1(3)k=1,k=2,3,k=4,5,6,7,...,k=2^{n-1},2^{n-1}+1,...,2^{n}-1\tag{3} k=1,k=2,3,k=4,5,6,7,...,k=2n?1,2n?1+1,...,2n?1(3)
平均度 ?kn?\left \langle k_{n} \right \rangle?kn?? 的分布為:
?kn?=Sn?1+1+Sn2=2n?1?1+1+2n?12=3×2n?2?12(4)\begin{aligned} \left \langle k_{n} \right \rangle&=\frac{S_{n-1}+1+S_{n}}{2}\\\tag{4} &=\frac{2^{n-1}-1+1+2^{n}-1}{2}\\ &=3\times2^{n-2}-\frac{1}{2} \end{aligned} ?kn???=2Sn?1?+1+Sn??=22n?1?1+1+2n?1?=3×2n?2?21??(4)
當(dāng) n→∞n\rightarrow\inftyn→∞ 時(shí),?kn?\left\langle k_{n} \right\rangle?kn?? 在 log?\loglog 坐標(biāo)下的值為:
?kn?log?=log?(?kn?)=log?(3×2n?2?12)≈log?(3×2n?2)≈(n?2)log?(2)+log?(3)≈nlog?(2)+log?(34)≈nlog?(2)(5)\begin{aligned} \left\langle k_{n} \right\rangle_{\log}&=\log\left( \left\langle k_{n} \tag{5}\right\rangle \right) \\ &=\log\left( 3\times2^{n-2}-\frac{1}{2} \right)\\ &\approx \log\left( 3\times2^{n-2} \right)\\ &\approx (n-2)\log\left( 2 \right)+ \log\left( 3\right)\\ &\approx n\log\left( 2 \right)+ \log\left( \frac{3}{4}\right)\\ &\approx n\log\left( 2 \right) \end{aligned} ?kn??log??=log(?kn??)=log(3×2n?2?21?)≈log(3×2n?2)≈(n?2)log(2)+log(3)≈nlog(2)+log(43?)≈nlog(2)?(5)
即在 log?\loglog 坐標(biāo)下,?kn?\left\langle k_{n} \right\rangle?kn?? 的間距為 log?(2)\log(2)log(2)。
另外觀察上述推導(dǎo)過(guò)程,最終的間距只與選擇的比值 qqq 有關(guān),即間距為 log?(q)\log(q)log(q)。下面對(duì)一般情況下的離散變量進(jìn)行證明,假設(shè)初值 b1=a1b_{1}=a_{1}b1?=a1?,比值 q>1q>1q>1,則前 nnn 項(xiàng)的求和為:
Sn=a1(1?qn)1?q(6)S_{n}=\frac{a_{1}(1-q^{n})}{1-q}\tag{6} Sn?=1?qa1?(1?qn)?(6)
平均度 ?kn?\left \langle k_{n} \right \rangle?kn?? 的分布為:
?kn?=Sn?1+1+Sn2=(1+q)a1qn?12(q?1)+a11?q+12≈(1+q)a1qn?12(q?1)(7)\begin{aligned} \left \langle k_{n} \right \rangle&=\frac{S_{n-1}+1+S_{n}}{2}\\\tag{7} &=\frac{(1+q)a_{1}q^{n-1}}{2(q-1)}+\frac{a_{1}}{1-q}+\frac{1}{2}\\ &\approx \frac{(1+q)a_{1}q^{n-1}}{2(q-1)} \end{aligned} ?kn???=2Sn?1?+1+Sn??=2(q?1)(1+q)a1?qn?1?+1?qa1??+21?≈2(q?1)(1+q)a1?qn?1??(7)
當(dāng) n→∞n\rightarrow\inftyn→∞ 時(shí),?kn?\left\langle k_{n} \right\rangle?kn?? 在 log?\loglog 坐標(biāo)下的值為:
?kn?log?=log?(?kn?)=log?((1+q)a1qn?12(q?1))=log?((q+1)a12(q?1)q)+nlog?(q)≈nlog?(q)(8)\begin{aligned} \left\langle k_{n} \right\rangle_{\log}&=\log\left( \left\langle k_{n} \tag{8}\right\rangle \right)\\ &=\log\left(\frac{(1+q)a_{1}q^{n-1}}{2(q-1)} \right)\\ &=\log(\frac{(q+1)a_{1}}{2(q-1)q})+n\log(q)\\ &\approx n\log(q) \end{aligned} ?kn??log??=log(?kn??)=log(2(q?1)(1+q)a1?qn?1?)=log(2(q?1)q(q+1)a1??)+nlog(q)≈nlog(q)?(8)
證畢。
- 代碼
其中作為在 log?\loglog 橫坐標(biāo)下的 edges_exponent 值的間隔為:
log10(edges_exponent(2:end))-log10(edges_exponent(1:(end-1)))ans =0.6021 0.3979 0.3424 0.3203 0.3104 0.3056 0.3033由于其比值選的也是 222,所以最終的間距逐漸趨近為 log?(2)=0.30103\log(2)=0.30103log(2)=0.30103。
3. 取平均值過(guò)程的改進(jìn)
如果橫坐標(biāo)為連續(xù)變量,則圖中的前幾個(gè)點(diǎn)(從左數(shù))會(huì)往上翹起來(lái),并且大部分點(diǎn)相對(duì)理論值會(huì)偏右(或上)。這是因?yàn)?#xff0c;此時(shí)由于對(duì)連續(xù)變量進(jìn)行 hist 的時(shí)候,會(huì)取區(qū)間的整個(gè)數(shù)值的平均值,所以當(dāng)這個(gè)區(qū)間內(nèi)的前后有數(shù)值上的單調(diào)性(如果左高右低),此值會(huì)被區(qū)間內(nèi)左側(cè)的值拉高,高于區(qū)間中間位置的值的大小。解決的辦法是把 hist 的區(qū)間數(shù)取大,進(jìn)而減小區(qū)間的大小,減小拉高的高度。但是值得注意的是,這個(gè)區(qū)間也不能取的太小,太小的話可能會(huì)因?yàn)闈q落的原因,使數(shù)據(jù)點(diǎn)低垂下去,或者翹起來(lái)。所以需要根據(jù)數(shù)據(jù)的具體情況進(jìn)行調(diào)整。
其實(shí)這也一定程度上顯露了區(qū)間位置被選在線性區(qū)間中間這個(gè)操作的缺點(diǎn)。當(dāng)我們?nèi)M坐標(biāo)為 log?\loglog 之后的值的平均值的時(shí)候,可以克服這個(gè)缺點(diǎn):
另外上面點(diǎn)在橫坐標(biāo)上的分布其實(shí)也不均勻。下面對(duì)一般情況下的離散變量(連續(xù)變量可以通過(guò)粗粒化轉(zhuǎn)化為離散變量)進(jìn)行證明,假設(shè)初值 b1=a1b_{1}=a_{1}b1?=a1?,比值 q>1q>1q>1,則前 nnn 項(xiàng)的求和為:
Sn=a1(1?qn)1?q(9)S_{n}=\frac{a_{1}(1-q^{n})}{1-q}\tag{9} Sn?=1?qa1?(1?qn)?(9)
當(dāng) n→∞n\rightarrow\inftyn→∞,且 q>1q>1q>1 時(shí),?kn?\left\langle k_{n} \right\rangle?kn?? 在 log?\loglog 坐標(biāo)下的值為:
?kn?log=log?(Sn?1)+log?(Sn)2=log?(Sn?1Sn)2=log?(a12(1?qn?1)(1?qn)(1?q)2)2≈log?(a12q2nq(1?q)2)2≈2nlog?(q)+log?(a12q(1?q)2)2≈nlog?(q)+12log?(a12q(1?q)2)≈nlog?(q)(10)\begin{aligned} \left\langle k_{n} \right\rangle_{log}&=\frac{\log(S_{n-1})+\log(S_{n})}{2}\\\tag{10} &=\frac{\log(S_{n-1}S_{n})}{2}\\ &=\frac{\log(\frac{a_{1}^{2}(1-q^{n-1})(1-q^{n})}{(1-q)^{2}})}{2}\\ &\approx \frac{\log(\frac{a_{1}^{2}q^{2n}}{q(1-q)^{2}})}{2}\\ &\approx \frac{2n\log(q)+\log(\frac{a_{1}^{2}}{q(1-q)^{2}})}{2}\\ &\approx n\log(q)+\frac{1}{2}\log(\frac{a_{1}^{2}}{q(1-q)^{2}})\\ &\approx n\log(q)\\ \end{aligned} ?kn??log??=2log(Sn?1?)+log(Sn?)?=2log(Sn?1?Sn?)?=2log((1?q)2a12?(1?qn?1)(1?qn)?)?≈2log(q(1?q)2a12?q2n?)?≈22nlog(q)+log(q(1?q)2a12??)?≈nlog(q)+21?log(q(1?q)2a12??)≈nlog(q)?(10)
比較之前得到的在線性區(qū)間下的結(jié)果,當(dāng) n→∞n\rightarrow\inftyn→∞ 時(shí),兩者一致。
另外當(dāng) a1a_{1}a1? 較小,qqq 較大時(shí),點(diǎn)在橫坐標(biāo)上的分布會(huì)比較均勻。
-
另外注意到:相比等間隔的離散點(diǎn),把不等間隔取成等間隔的過(guò)程,也是一個(gè) Linear-Binning 的過(guò)程,所以也會(huì)輕微的使得散點(diǎn)向左偏移。待考慮是否可以去除這個(gè)取等間隔的步驟???即在把不等間隔取成等間隔的過(guò)程之后,保留原始的不等間隔橫坐標(biāo),在求對(duì)數(shù)區(qū)間的值的時(shí)候,利用原始的橫坐標(biāo)(log?\loglog 之后)作為權(quán)重來(lái)求取平均值。
-
代碼
另外在初始文獻(xiàn)中,作者是分段使用 Log-Binning 方法的,只是在后段的平臺(tái)附近使用,而前段正常,這也是可以借鑒的,畢竟這種方法主要是在平臺(tái)段起作用。
- 參考文獻(xiàn):
barabasi,network science,chapter4.
Power-law Distributions in Information Science - Making the Case for Logarithmic Binning
Log Binning of Data using matlab
Log binning distribution using python networkx?
?
??????
總結(jié)
以上是生活随笔為你收集整理的利用 Logarithmic Binning (Log-Binning)方法绘制幂律分布(Power-law Distributions)曲线的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AxMath安装教程
- 下一篇: PCBA测试是什么意思