[英]Problem While Calculating Correlation Coefficient in R
我試圖計算 R 中一些變量之間的相關系數。數據在 excel 文件中,excel 文件是通過在 Python 中使用 Pandas 數據框生成的。 這里的問題是 R 可以讀取數據,但無法正確計算相關系數,如所附屏幕截圖所示。
以前我可以使用如圖所示的相同代碼從其他 excel 文件數據計算 R 中的相關系數。 這里有什么問題? 請告訴我。 提前致謝。
雖然您提供的數據/代碼是圖像,但我想我可以為這種情況提供解決方案。
首先說明問題的原因,你的相關矩陣看起來很奇怪的原因是complete.obs
用na.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 != x2
和y1 != 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.