在给定协方差矩阵和拟合系数的情况下,如何计算线性回归的p值

时间:2014-10-09 14:45:59

标签: c r regression p-value

我使用GSL库在C中进行了线性回归。我在R中执行了相同的回归。我可以使用"摘要"在R中访问此回归的p值。命令。

在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

2 个答案:

答案 0 :(得分:2)

gsl_cdf_tdist_P应该预期两个double个参数,并在0和1之间返回double

首先检查所有类型。

如果在所有类型都正确的情况下它返回0-1以外的值,那么某处就会出现非常严重的问题。

答案 1 :(得分:1)

原来我正在编译而没有警告,我没有看到gsl_cdf_tdist_P被隐式声明。这导致编译器认为函数必须返回一个整数。我包含了相关的gsl标头,并获得了与R匹配的值。