我有3个群组,我们称它们为g1,g2,g3。每个参数都是条件组之间的分析结果,而g1看起来像这样
geneSymbol logFC t P.Value adj.P.Val Beta
EXykpF1BRREdXnv9Xk MKI67 -0.3115880 -5.521186 5.772137e-07 0.008986062 4.3106665
0Tm7hdRJxd9zoevPlA CCL3L3 0.1708020 4.162115 9.109798e-05 0.508784638 0.6630544
u_M5UdFdhg3lZ.qe64 UBE2G1 -0.1528149 -4.031466 1.430822e-04 0.508784638 0.3354065
lkkLCXcnzL9NXFXTl4 SEL1L3 -0.2138729 -3.977482 1.720517e-04 0.508784638 0.2015945
0Uu3XrB6Bd14qoNeuc ZFP36 0.1667330 3.944917 1.921715e-04 0.508784638 0.1213335
3h7Sgq2i3sAUkxL_n8 ITGB5 0.3419488 3.938960 1.960886e-04 0.508784638 0.1066896
g2和g2外观相同,每个都有15568个条目(基因)
对于40000个排列,该数据如何计算Spearman相关性的p值和相关系数?
我加入了g1,g2,g3这3个组,并且只提取了Beta(B)
我得到了这个数据框,其中包含15568个匹配项:
Beta1 Beta2 Beta3
EXykpF1BRREdXnv9Xk -4.970533 -4.752771 -5.404054
0Tm7hdRJxd9zoevPlA -4.862168 -5.147294 -3.909654
u_M5UdFdhg3lZ.qe64 -5.368846 -5.396183 -5.405330
lkkLCXcnzL9NXFXTl4 -4.367704 -4.847795 -5.148524
0Uu3XrB6Bd14qoNeuc -5.286592 -4.949305 -5.278798
3h7Sgq2i3sAUkxL_n8 -4.579528 -2.403240 -4.710600
要计算Spearman的得分,可以在R中使用
> cor(d,use="pairwise.complete.obs",method="spearman")
Beta1 Beta2 Beta3
Beta1 1.000000000 0.234171932 0.002474729
Beta2 0.234171932 1.000000000 -0.005469126
Beta3 0.002474729 -0.005469126 1.000000000
有人可以告诉我考虑到排列数的情况下,用于获得相关系数和p值的方法是什么?我是否正确使用Beta来在这三组之间进行关联?
谢谢!
答案 0 :(得分:2)
使用correlation coefficient
包访问p-value
和psych
的提示。我将使用mtcars
数据集,而不是重新键入您的数据集,因为它不是简单的copy-paste (dput(df))
格式。
library(psych)
corr.test.col.1to4 <- corr.test(mtcars[1:4], method = "spearman", use = "complete.obs")
names(corr.test.col.1to4)
#1] "r" "n" "t" "p" "se" "sef" "adjust" "sym" "ci" "ci.adj"
# [11] "Call"
# -------------------------------------------------------------------------
# in your case you probably want to do
#cor.test.beta <- corr.test(d[c("Beta1","Beta2", "Beta3")], method = "spearman", use = "complete.obs")
# -------------------------------------------------------------------------
从names(corr.test.col.1to4)
的输出中可以看到:
r:相关系数
n:观察次数
p:p.value
se:标准错误
ci:置信区间
因此,如果您需要相关系数,则可以使用以下方法拉出值
corr.test.col.1to4$r
# mpg cyl disp hp
# mpg 1.0000000 -0.9108013 -0.9088824 -0.8946646
# cyl -0.9108013 1.0000000 0.9276516 0.9017909
# disp -0.9088824 0.9276516 1.0000000 0.8510426
# hp -0.8946646 0.9017909 0.8510426 1.0000000
p-values
corr.test.col.1to4$p
# mpg cyl disp hp
# mpg 0.000000e+00 2.345144e-12 2.548135e-12 1.017194e-11
# cyl 4.690287e-13 0.000000e+00 1.365266e-13 5.603057e-12
# disp 6.370336e-13 2.275443e-14 0.000000e+00 6.791338e-10
# hp 5.085969e-12 1.867686e-12 6.791338e-10 0.000000e+00
标准错误
corr.test.col.1to4$se
# mpg cyl disp hp
# mpg 0.00000000 0.07537483 0.07614303 0.08156289
# cyl 0.07537483 0.00000000 0.06818175 0.07890355
# disp 0.07614303 0.06818175 0.00000000 0.09586909
# hp 0.08156289 0.07890355 0.09586909 0.00000000
置信区间
corr.test.col.1to4$ci
# lower r upper p
# mpg-cyl -0.9559077 -0.9108013 -0.8237102 4.690287e-13
# mpg-disp -0.9549362 -0.9088824 -0.8200941 6.370336e-13
# mpg-hp -0.9477078 -0.8946646 -0.7935207 5.085969e-12
# cyl-disp 0.8557708 0.9276516 0.9643958 2.275443e-14
# cyl-hp 0.8067919 0.9017909 0.9513377 1.867686e-12
# disp-hp 0.7143279 0.8510426 0.9251848 6.791338e-10
您可以将输出保存在变量中,并进行进一步的格式化以使报告公正。
您的第二个问题我是否正确使用Beta
以便在这三个组之间进行关联?是有效的问题,您需要根据自己的问题回答/解决希望以这样一种方式来回答和报告问题,即对变量Beta
计算出corr,并证明在报告中选择变量Beta
是合理的。
希望有帮助。