我正在使用GSL庫1.14和紅寶石包裝(gsl)進行一些數學計算。我需要的是皮爾遜相關。但是當我的數組中有0時,我遇到了一個問題。GSL和關聯
比如我有這樣的代碼片段:
x = [1,2,2,2,12]
y = [1,2,1,3,33]
puts GSL::Stats::correlation(
GSL::Vector.alloc(x),GSL::Vector.alloc(y)
)
=> 0.9967291641974002
但是當我嘗試用下面的數組值來計算的話,我得到一個楠:
x = [1,1,1]
y = [1,1,1]
or
x = [0,1,1]
y = [1,1,1]
puts GSL::Stats::correlation(
GSL::Vector.alloc(x),GSL::Vector.alloc(y)
)
=> NaN
,當我嘗試用這個值,它的工作原理:
x = [0,1,1]
y = [1,0,1]
puts GSL::Stats::correlation(
GSL::Vector.alloc(x),GSL::Vector.alloc(y)
)
=> -0.5
有沒有人知道爲什麼?這很奇怪,不是嗎?
thx爲您的答案。你是對的,我想我可以把它解釋爲非線性依賴。 – 23tux 2011-05-02 15:45:41