在散点图中查找两条曲线的交集(此处:pvalues与test-statistics)

时间:2014-10-23 14:54:22

标签: r

我做

library(Hmisc)
df <- as.matrix(replicate(20, rnorm(20))) 
cor.df <- rcorr(df)
plot(cor.df$r,cor.df$P)
abline(h=0.05)

我想知道R是否可以计算水平线和钟形曲线的会合点。由于我有一个散点图,我是否需要先对x,y曲线建模,然后平衡这两个函数?或者R可以用图形方式做到吗? 我实际上想知道(未校正的)pvalues的阈值是什么,表明给定数据集的重要测试统计数据。我不是一个训练有素的统计学家,所以如果这是一个基本问题,请原谅。 非常感谢你!

1 个答案:

答案 0 :(得分:1)

没有以图形方式计算交叉点的功能。有一些像uniroot这样的函数可以在R中用来查找交点,但是你需要有适当的函数并且知道交点发生的间隔。

最好对所讨论的曲线进行正确建模,但是当曲线上有一堆点时,只需在观察点之间使用线性插值即可简单地逼近函数。您可以使用approxfun

为点创建一个函数
f1 <- approxfun(cor.df$r,cor.df$P, rule=2)

(同样,一个合适的模型会更好,但仅仅为了示例,我将继续使用此功能)。

现在我们可以找到这条曲线与

交叉0.05的地方
uniroot(function(x) f1(x)-.05, c(-1,-.001))$root
# [1] -0.4437796
uniroot(function(x) f1(x)-.05, c(.001, 1))$root
# [1] 0.4440005