Проверка значимости вектора коэффициентов корреляции с использованием r

У меня есть вектор коэффициентов корреляции (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, а не прибегать к таблицам в конце вашей статистической книги?


person DJHellduck    schedule 20.11.2017    source источник
comment
см. функцию ?pt   -  person user20650    schedule 20.11.2017
comment
@ user20650 Думаю, это сработало отлично! Я предполагаю, что аргумент df принимает векторы? Превратите это в ответ, и я отмечу его как принятый :)   -  person DJHellduck    schedule 21.11.2017


Ответы (1)


Что касается того, чтобы мой вопрос не остался без ответа, вот как я наконец решил его. Спасибо @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-значения в конце - они требуют некоторого преобразования, но позволяют вам заранее установить уровень достоверности, а также в конечном итоге их легче интерпретировать.

person DJHellduck    schedule 18.12.2017