我有一个相关系数向量(r)和一个包含观察数(n)的向量,我想测试它们中的每一个,看它们是否与0显着不同。
r = c(.69,.32,.75,.69,.42,.53,.25,.27,.1,-.15,.48,.39)
n = c(41,233,44,44,44,44,217,217,217,217,217,217)
##### t-values
rt <- function(r,n){
cbind(r/(sqrt((1-r^2)/(n-2))),
n)
}
rt(r,n)
计算t值很容易,但有没有办法用R测试它们,而不是依靠统计书背面的表格?
答案 0 :(得分:0)
至于不让我的问题无法回答,这就是我最终解决的问题。感谢@ user20650提供解决方案!
r = c(.69,.32,.75,.69,.42,.53,.25,.27,.1,-.15,.48,.39)
n = c(41,233,44,44,44,44,217,217,217,217,217,217)
rPV = function(r,n,dec = 8){
# calculate t-values
rt <- function(r,n){
t.value = abs(r/(sqrt((1-r^2)/(n-2))))
return(t.value)
}
t.value = rt(r,n)
df = n-2
CDF = round(pt(t.value,df = df),dec) # find location of t-values on the student t-distribution (quantiles).
p.value = round(1-pt(t.value, df = df),dec)
return(cbind(r,n,df,t.value,CDF,p.value))
}
rPV(r,n)
有了这个解决方案,我宁愿建议最终计算置信区间而不是p值 - 它们确实需要一些转换,但允许你提前设置置信水平,并且最终更容易解读。