Я выполнил линейную регрессию на языке С, используя библиотеку GSL. Я выполнил ту же регрессию в R. Я могу получить доступ к значениям p для этой регрессии в R, используя команду «summary».Как рассчитать значения р линейной регрессии с учетом ковариационной матрицы и коэффициентов подгонки
В C у меня есть ковариационная матрица, сумма квадратов значений остаточных значений и коэффициентов подгонки. Используя их, как я могу рассчитать значения p?
Я попытался этот подход с использованием «Getting p-value for linear regression in C gsl_fit_linear() function from GSL library»
Может кто-нибудь подтвердить это справедливость? Результаты дает различаются для меня по сравнению с R.
Я изолировал эту строку кода C, как неправильно, но я не могу понять, почему:
double pv0=t0<0?2*(1-gsl_cdf_tdist_P(-t0,n-2)):2*(1-gsl_cdf_tdist_P(t0,n-2));//This is the p-value of the constant term
Результаты приведены на R:
Коэффициенты:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -700.000 226.569 -3.090 0.05373 .
x 60.000 6.831 8.783 0.00311 **
Результаты, приведенные C:
Coefficients Estimate Std. Error t value Pr(>|t|)
(Intercept) -700.000000 226.568606 -3.089572 -550099700.000000
x 60.000000 6.831301 8.783101 -4.000000
Спасибо за форматирование @ ben-bolker – kobrien
Что-то определенно выглядит фиктивным. Можете ли вы распечатать значения 't0',' n' и 'gsl_cdf_tdist_P (abs (t0), n-2)'? (Я думаю, что у вас есть 'abs' в стандартной математической библиотеке, верно?) –
t0 = -3.089572, n = 5, gsl_cdf_tdist_P (abs (t0), n-2) = 0.0 – kobrien