簡體   English   中英

在 R 中計算相關系數時的問題

[英]Problem While Calculating Correlation Coefficient in R

我試圖計算 R 中一些變量之間的相關系數。數據在 excel 文件中,excel 文件是通過在 Python 中使用 Pandas 數據框生成的。 這里的問題是 R 可以讀取數據,但無法正確計算相關系數,如所附屏幕截圖所示。

R 代碼和結果

以前我可以使用如圖所示的相同代碼從其他 excel 文件數據計算 R 中的相關系數。 這里有什么問題? 請告訴我。 提前致謝。

雖然您提供的數據/代碼是圖像,但我想我可以為這種情況提供解決方案。

首先說明問題的原因,你的相關矩陣看起來很奇怪的原因是complete.obsna.omit做同樣的工作,在你的data_cor ,只有兩行在每個變量中都沒有NA

例如,讓我們如下定義數據dummy並查看結果。

dummy <- data.frame(
  N0 = rnorm(10),
  N1 = runif(10),
  N2 = c(.3,.4,rep(NA,8)),
  N3 = rchisq(10,3)
)
dummy

            N0         N1  N2       N3
1  -1.38246690 0.38116217 0.3 5.144132
2   0.77977538 0.06383890 0.4 3.195502
3  -1.08709820 0.28024669  NA 3.890352
4   0.34685457 0.71857164  NA 2.816047
5  -1.58245449 0.39671123  NA 5.136402
6  -0.38614131 0.02491107  NA 3.103611
7  -1.38644384 0.86949460  NA 4.255433
8  -0.87290110 0.39692126  NA 1.454483
9   0.01181121 0.31394631  NA 2.802918
10 -0.97159797 0.05254728  NA 1.458610

cor(dummy, method = "pearson", use = "complete.obs")
   N0 N1 N2 N3
N0  1 -1  1 -1
N1 -1  1 -1  1
N2  1 -1  1 -1
N3 -1  1 -1  1

cor(na.omit(dummy))
   N0 N1 N2 N3
N0  1 -1  1 -1
N1 -1  1 -1  1
N2  1 -1  1 -1
N3 -1  1 -1  1

如您所知,相關系數是如何計算的,如果每個變量只存在兩個樣本,( x1,x2 vs y1,y2 ) 為1-1 (假設x1 != x2y1 != y2 )。

因此,在這種情況下,如果您的目的是使用具有完整觀察結果的樣本,則該結果可能是正確的。

對於N4它必須是1-1 ,但如果您需要其他人之間的適當相關系數,請嘗試使用pairwise.complete.obs參數use =

cor(dummy, method = "pearson", use = "pairwise.complete.obs")

           N0         N1 N2         N3
N0  1.0000000 -0.2408998  1 -0.4259661
N1 -0.2408998  1.0000000 -1  0.3043064
N2  1.0000000 -1.0000000  1 -1.0000000
N3 -0.4259661  0.3043064 -1  1.0000000

在這種情況下,這將為其他變量提供正確的結果。

cor(dummy[,-3])

           N0         N1         N3
N0  1.0000000 -0.2408998 -0.4259661
N1 -0.2408998  1.0000000  0.3043064
N3 -0.4259661  0.3043064  1.0000000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM