加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > SOL > Info

一文教你如何計算變量之間的相關性_MIC:MIC價格

Author:

Time:1900/1/1 0:00:00

本文介紹了幾個重要的變量相關性的度量,包括皮爾遜相關系數、距離相關性和最大信息系數等,并用簡單的代碼和示例數據展示了這些度量的適用性對比。

從信號的角度來看,這個世界是一個嘈雜的地方。為了弄清楚所有的事情,我們必須有選擇地把注意力集中到有用的信息上。

通過數百萬年的自然選擇過程,我們人類已經變得非常擅長過濾背景信號。我們學會將特定的信號與特定的事件聯系起來。

例如,假設你正在繁忙的辦公室中打乒乓球。為了回擊對手的擊球,你需要進行大量復雜的計算和判斷,將多個相互競爭的感官信號考慮進去。為了預測球的運動,你的大腦必須重復采樣球的位置并估計它未來的軌跡。更厲害的球員還會將對手擊球時施加的旋轉考慮進去。最后,為了擊球,你需要考慮對手的位置、自己的位置、球的速度,以及你打算施加的旋轉。

所有這些都涉及到了大量的潛意識微分學。一般來說,我們理所當然的認為,我們的神經系統可以自動做到這些。

同樣令人印象深刻的是,人類大腦是如何區別對待它所接收到的無數競爭信號的重要性的。例如,球的位置被認為比你身后發生的對話或你面前打開的門更重要。

這聽起來似乎不值得一提,但實際上這證明了可以多大程度上學習從噪聲數據中做出準確預測。

當然,一個被給予連續的視聽數據流的空白狀態機將會面臨一個困難的任務,即確定哪些信號能夠最好地預測最佳行動方案。

幸運的是,有統計和計算方法可以用來識別帶噪聲和復雜的數據中的模式。

相關性

一般來說,當我們談到兩個變量之間的「相關性」時,在某種意義上,我們是指它們的「關系」。

相關變量是包含彼此信息的變量。兩個變量的相關性越強,其中一個變量告訴我們的關于另一個變量的信息就越多。

cos()的值將根據兩個箭頭向量之間的角度而發生變化。

當角度為零時,cos()等于1。

Circle年度“USDC經濟狀況”報告:截止去年12月,超過2130億美元的USDC已被贖回:1月17日消息,Circle今日發布第一份年度“USDC經濟狀況”報告,報告顯示,自成立至2022年12月以來,超過2130億美元的USDC已被贖回。大約80%的USDC儲備是美國持有的3個月期美國國債。到2023年1月底,將轉移這些Circle100%持有的儲備由貝萊德管理,由紐約梅隆銀行(全球最大的托管人)托管。此外,Circle表示已被均富銀行審計過,這些審計涵蓋了USDC儲備金。

2019年、2020年和2021年的審計工作(符合美國上市公司的標準)已向美國證券和監督管理公司公開提交美國證券交易委員會(SEC)。未來,Circle和USDC儲備金將由德勤進行審計。[2023/1/17 11:16:38]

當角度為-180°時,cos()等于-1。

當角度為90°時,cos()等于0。

這可能看起來很熟悉——一個介于+1和-1之間的衡量標準似乎描述了兩個向量之間的關系?那不是Pearson’sr嗎?

那么——這正是它的解釋!通過將數據視為高維空間中的箭頭向量,我們可以用它們之間的角度作為相似度的衡量。

無盛行風向時,小船隨機漂流

如果存在盛行風向,那么小船漂流的方向將依賴于風的強度。風力越強,依賴性越顯著。

有盛行風向時,小船傾向于同向漂流

與之類似,無關變量可以被看作無盛行風向時隨機漂流的小船;相關變量可以被看作在盛行風向影響下漂流的小船。在這個比喻中,風的強弱就代表著兩個變量之間相關性的強弱。

如果我們允許盛行風向在湖面的不同位置有所不同,那么我們就可以引入非線性的概念。距離相關性利用「小船」之間的距離推斷盛行風的強度。

礦企Marathon與Applied Blockchain達成200 MW托管協議:9月20日消息,比特幣礦企Marathon與托管服務提供商Applied Blockchain達成了最新協議,該協議將確保Applied Blockchain至少擁有200 MW的托管容量,并可選擇將其增加到270 MW。

此外,Applied Blockchain將在美國北達科他州破土動工其180 MW的設施,預計2023年上半年開始運營,同時其于9月與當地公用事業合作伙伴達成了一項為期五年的電力交易,主要考慮是可用的輸電能力和過剩的風力發電。(The Block)[2022/9/20 7:07:48]

置信區間?

我們可以采取「重采樣」方法為距離相關性估計建立置信區間。一個簡單的例子是bootstrap重采樣。

這是一個巧妙的統計技巧,需要我們從原始數據集中隨機抽樣以「重建」數據。這個過程將重復多次,每次都計算感興趣的統計量。

這將為我們感興趣的統計量產生一系列不同的估計值。我們可以通過它們估計在給定置信水平下的上限和下限。

請看下面的R語言代碼,它實現了簡單的bootstrap函數:

bootstrap<-function(x,y,reps,alpha){estimates<-c()original<-data.frame(x,y)N<-dim(original)for(iin1:reps){S<-originalestimates<-append(estimates,distanceCorrelation(S$x,S$y)。u<-alpha/2;l<-1-uinterval<-quantile(estimates,c(l,u))return(2*(dcor(x,y))-as.numeric(interval)。Billions項目組-->0.237to0.546

美元指數DXY日內漲超0.50%,現報105.29:行情顯示,美元指數DXY日內漲超0.50%,現報105.29。[2022/7/1 1:45:14]

如果你想建立統計顯著性,還有另一個重采樣技巧,名為「排列檢驗」。

排列檢驗與上述bootstrap方法略有不同。在排列檢驗中,我們保持一個向量不變,并通過重采樣對另一個變量進行「洗牌」。這接近于零假設——即,在變量之間不存在依賴關系。

這個經「洗牌」打亂的變量將被用于計算它和常變量間的距離相關性。這個過程將被執行多次,然后,結果的分布將與實際距離相關性相比較。

然后,大于或等于「實際」結果的經「洗牌」的結果的比例將被定為P值,并與給定的顯著性閾值進行比較。

以下是上述過程的代碼實現:

permutationTest<-function(x,y,reps){observed<-distanceCorrelation(x,y)y_i<-sample(y,length(y),replace=T)estimates<-append(estimates,distanceCorrelation(x,y_i)。p_value<-mean(estimates>=observed)return(p_value。Billions項目組-->0.036

最大信息系數

最大信息系數于2011年提出,它是用于檢測變量之間非線性相關性的最新方法。用于進行MIC計算的算法將信息論和概率的概念應用于連續型數據。

深入細節

由克勞德·香農于20世紀中葉開創的信息論是數學中一個引人注目的領域。

信息論中的一個關鍵概念是熵——這是一個衡量給定概率分布的不確定性的度量。概率分布描述了與特定事件相關的一系列給定結果的概率。

概率分布的熵是「每個可能結果的概率乘以其對數后的和」的負值

為了理解其工作原理,讓我們比較下面兩個概率分布:

安全團隊:虛擬化身平臺GENIES的Discord服務器遭黑客入侵:6月29日消息,安全團隊CertiK今日發推文稱,虛擬化身平臺GENIES的Discord服務器遭黑客入侵,其官方Discord的公告頻道中發布了釣魚鏈接,提醒用戶不要點擊相關鏈接。

此前4月份消息,GENIES以10億美元估值完成1.5億美元融資,Silver Lake領投。[2022/6/29 1:38:37]

X軸標明了可能的結果;Y軸標明了它們各自的概率

左側是一個常規六面骰子結果的概率分布;而右邊的六面骰子不那么均勻。

從直覺上來說,你認為哪個的熵更高呢?哪個骰子結果的不確定性更大?讓我們來計算它們的熵,看看答案是什么。

entropy<-function(x){pr<-prop.table(table(x))H<-sum(pr*log(pr,2))return(-H。dice1<-1:6dice2<-c(1,1,1,1,2:6)entropy(dice1)Billions項目組-->2.281

不出所料,常規骰子的熵更高。這是因為每種結果的可能性都一樣,所以我們不會提前知道結果偏向哪個。但是,非常規的骰子有所不同——某些結果的發生概率遠大于其它結果——所以它的結果的不確定性也低一些。

這么一來,我們就能明白,當每種結果的發生概率相同時,它的熵最高。而這種概率分布也就是傳說中的「均勻」分布。

交叉熵是熵的一個拓展概念,它引入了第二個變量的概率分布。

crossEntropy<-function(x,y){prX<-prop.table(table(x))prY<-prop.table(table(y))H<-sum(prX*log(prY,2)。

兩個相同概率分布之間的交叉熵等于其各自單獨的熵。但是對于兩個不同的概率分布,它們的交叉熵可能跟各自單獨的熵有所不同。

這種差異,或者叫「散度」可以通過KL散度量化得出。

數據:以太坊在1100到1250美元區間存在近10億美元鏈上借貸清算額度:6月13日消息,據parsec.finance數據顯示,以太坊在1100到1250美元區間存在近10億美元鏈上借貸清算額度,額度主要由Maker、Aave和Compound組成,其中4.5億美元清算額度集中在1185美元附近。[2022/6/13 4:21:55]

兩概率分布X與Y的KL散度如下:

概率分布X與Y的KL散度等于它們的交叉熵減去X的熵

KL散度的最小值為0,僅當兩個分布相同。

KL_divergence<-function(x,y){kl<-crossEntropy(x,y)-entropy(x)return(kl。

為了發現變量具有相關性,KL散度的用途之一是計算兩個變量的互信息。

互信息可以定義為「兩個隨機變量的聯合分布和邊緣分布之間的KL散度」。如果二者相同,MI值取0。如若不同,MI值就為一個正數。二者之間的差異越大,MI值就越大。

為了加深理解,我們首先簡單回顧一些概率論的知識。

變量X和Y的聯合概率就是二者同時發生的概率。例如,如果你拋擲兩枚硬幣X和Y,它們的聯合分布將反映拋擲結果的概率。假設你拋擲硬幣100次,得到「正面、正面」的結果40次。聯合分布將反映如下:

P(X=H,Y=H)=40/100=0.4

jointDist<-function(x,y){u<-unique(append(x,y))joint<-c()for(iinu){for(jinu){f<-xjoint<-append(joint,length(f)/N。return(joint。

邊緣分布是指不考慮其它變量而只關注某一特定變量的概率分布。假設兩變量獨立,二者邊緣概率的乘積即為二者同時發生的概率。仍以拋硬幣為例,假如拋擲結果是50次正面和50次反面,它們的邊緣分布如下:

P(X=H)=50/100=0.5;P(Y=H)=50/100=0.5

P(X=H)×P(Y=H)=0.5×0.5=0.25

marginalProduct<-function(x,y){marginal<-c()fX<-length(x)/NfY<-length(y)/Nmarginal<-append(marginal,fX*fY。return(marginal。

現在讓我們回到拋硬幣的例子。如果兩枚硬幣相互獨立,邊緣分布的乘積表示每個結果可能發生的概率,而聯合分布則為實際得到的結果的概率。

如果兩硬幣完全獨立,它們的聯合概率在數值上等于邊緣分布的乘積。若只是部分獨立,此處就存在散度。

這個例子中,P(X=H,Y=H)>P(X=H)×P(Y=H)。這表明兩硬幣全為正面的概率要大于它們的邊緣分布之積。

聯合分布和邊緣分布乘積之間的散度越大,兩個變量之間相關的可能性就越大。兩個變量的互信息定義了散度的度量方式。

X和Y的互信息等于「二者邊緣分布積和的聯合分布的KL散度」

mutualInfo<-function(x,y){joint<-jointDist(x,y)marginal<-marginalProduct(x,y)Hjm<--sum(joint*log(marginal,2))Hj<--sum(joint*log(joint,2))return(Hjm-Hj。

此處的一個重要假設就是概率分布是離散的。那么我們如何把這些概念應用到連續的概率分布呢?

分箱算法

其中一種方法是量化數據。這是通過分箱算法實現的,它能將連續的數據點分配對應的離散類別。

此方法的關鍵問題是到底要使用多少「箱子」。幸運的是,首次提出MIC的論文給出了建議:窮舉!

也就是說,去嘗試不同的「箱子」個數并觀測哪個會在變量間取到最大的互信息值。不過,這提出了兩個挑戰:

要試多少個箱子呢?理論上你可以將變量量化到任意間距值,可以使箱子尺寸越來越小。

互信息對所用的箱子數很敏感。你如何公平比較不同箱子數目之間的MI值?

第一個挑戰從理論上講是不能做到的。但是,論文作者提供了一個啟發式解法。他們也給出了可試箱子個數的上限。

最大可用箱子個數由樣本數N決定

至于如何公平比較取不同箱子數對MI值的影響,有一個簡單的做法……就是歸一化!這可以通過將每個MI值除以在特定箱子數組合上取得的理論最大值來完成。我們要采用的是產生最大歸一化MI總值的箱子數組合。

互信息可以通過除以最小的箱子數的對數來歸一化

最大的歸一化互信息就是X和Y的最大信息系數。我們來看看一些估算兩個連續變量的MIC的代碼。

MIC<-function(x,y){maxBins<-ceiling(N**0.6)MI<-c()for(iin2:maxBins){for(jin2:maxBins){if(i*j>maxBins){nextXbins<-i;Ybins<-jbinnedX<-cut(x,breaks=Xbins,labels=1:Xbins)binnedY<-cut(y,breaks=Ybins,labels=1:Ybins)MI_estimate<-mutualInfo(binnedX,binnedY)MI_normalized<-MI_estimate/log(min(Xbins,Ybins),2)MI<-append(MI,MI_normalized。return(max(MI)。x<-runif(100,-10,10)y<-x**2+rnorm(100,0,10)MIC(x,y)Billions項目組-->0.594to0.88

總結

為了總結相關性這一主題,我們來測試下各算法在人工生成數據上的處理能力。

完整代碼:https://gist.github.com/anonymous/fabecccf33f9c3feb568384f626a2c07

噪聲函數

set.seed(123)Billions項目組Simplelinearrelationshipx1<--20:20y1<-x1+rnorm(41,0,4)plot(y1~x1,pch=18)cor(x1,y1)distanceCorrelation(x1,y1)MIC(x1,y1)

Pearson'sr=+0.95

距離相關性=0.95

MIC=0.89

簡單二次函數

Billions項目組Cosinex3<--20:20y3<-cos(x3/4)+rnorm(41,0,0.2)plot(y3~x3,type='p',pch=18)cor(x3,y3)distanceCorrelation(x3,y3)MIC(x3,y3)

Pearson'sr=-0.035

距離相關性=0.382

MIC=0.484

圓函數

#Circlen<-50theta<-runif(n,0,2*pi)x4<-append(cos(theta),cos(theta))y4<-append(sin(theta),-sin(theta))plot(x4,y4,pch=18)cor(x4,y4)distanceCorrelation(x4,y4)MIC(x4,y4)

Pearson'sr<0.001

距離相關性=0.234

MIC=0.218

原文鏈接:https://medium.freecodecamp.org/how-machines-make-predictions-finding-correlations-in-complex-data-dfd9f0d87889

本文為機器之心編譯,轉載請聯系本公眾號獲得授權。

Tags:MICMIC幣MIC價格

SOL
從One開始的Xbox生活——Xbox One玩家快速入門指南_BOX:ONE

目錄 我該買哪個版本?選購篇 我該怎么啟動游戲機?快速上手篇我該怎么購買游戲?游戲購買篇怎么會員有那么多!會員詳解篇我的硬盤太小了!外接硬盤篇來自Win10的神秘加成!WindowsUWP應用篇.

1900/1/1 0:00:00
虛擬貨幣以太坊EOS將上線主網_EOS:區塊鏈存證怎么弄

在虛擬貨幣市場排名第五的EOS,將于6月2日上線主網。去年7月,EOS進行了首次代幣發行,募集了大約218億日元的資金。用戶必須在6月1日之前,將以太坊上的EOS代幣在EOS主網地址上重新注冊.

1900/1/1 0:00:00
這兩張老版十元怪不得要評級,原來號碼如此奇特,價值相當不凡!_APT:Raptor Finance

最近收藏市場是異常火熱,其中以第四套人民幣為主要攪局者,因為第四套人民幣是這次的主角,也就是從五月一號開始,各大銀行開始集中兌換了,兌換期結束之后,就會正式進入退市行列.

1900/1/1 0:00:00
區塊鏈游戲“黑白面”:投機炒幣、無腦抄襲,想顛覆產業還要多久_區塊鏈:區塊鏈技術發展現狀和趨勢SGC價格

作者/張彥如 不知不覺間,區塊鏈已經強勢“殺入”了游戲圈,區塊鏈虛擬寵物打響了“第一槍”。與養青蛙、養四個野男人都有情景設定不同,區塊鏈虛擬寵物貌似有點沒意思,但對于另一批“有信仰”的人,這可能.

1900/1/1 0:00:00
六問比特幣交易所,去中心化為什么這么難?_比特幣:去中心化交易所前三去中心化交易所違法嗎

近日,幣安遭黑客攻擊的事件再度將比特幣交易所推上了風口浪尖。根據幣安自己的公告,黑客通過釣魚,獲取了一些英語語言區用戶的賬號、密碼和二次驗證,黑客獲得賬號后,果斷綁定了API,但是由于Binan.

1900/1/1 0:00:00
【關注】今天起,游戲成癮列入精神疾病?這9種癥狀,你中了幾條?_XIN:AXIXIN幣

你是不是經常做事毫無動力但是只要一打游戲就渾身來勁?你是不是不論上班還是上課都想著趕緊結束然后回家打盤游戲? 悄悄告訴你: 這是病!得治! 啥?這是病? 是的.

1900/1/1 0:00:00
ads