0

爲了計算兩個陣列之間的pearsons係數我使用下面的:如何計算相關如果一個值是0

double[] arr1 = new double[4]; 
    arr1[0] = 1; 
    arr1[1] = 1; 
    arr1[2] = 1; 
    arr1[3] = 1; 

    double[] arr2 = new double[4]; 
    arr2[0] = 1; 
    arr2[1] = 1; 
    arr2[2] = 1; 
    arr2[3] = 1; 
PearsonsCorrelation pc = new PearsonsCorrelation(); 
println("Correlation is "+pc.correlation(arr1, arr2)); 

對於輸出I接收:相關是NaN

的PearsonsCorrelation class包含在apache commons API中:http://commons.apache.org/proper/commons-math/userguide/stat.html

每個數組中的值基於用戶在其數據集中包含一個單詞。上面的數組應該完全相關?

這個問題是關係到How to set a value's for calculating Eucludeian distance and correlation

回答

1

有人曾在這裏 [link]類似的問題。顯然,這個問題與你的數組有0標準偏差有關。

0

您嘗試計算長度爲4的兩個向量之間的相關性。由於每個矢量中的所有值都是相同的(一個矢量中的值爲0,另一箇中的值爲1),這相當於試圖計算兩個數字(在此情況下爲0和1)之間的相關係數。

可能很明顯看到沒有這樣的事情;你至少需要兩個不同的對。就像你只有一對值一樣,你不能畫出有意義的迴歸線。

如果只有一個矢量有一些變化,結果仍然是NA,但在這種情況下,將其設置爲零是合理的。