Neweywest.t=function(xdata,ydata){ coeft.multi=function(x){ reg = lm(x ~ 1 + xdata) n=dim(xdata)[1] coeftest(reg, vcov. = NeweyWest(reg, lag = floor(4*(n/100)^(2/9)), prewhite = F))[1,] } t.value=apply(ydata,2,function(x)coeft.multi(x))[3,] return(t.value)
时间: 2024-04-10 12:32:33 浏览: 160
正交线性回归:以正交方式将线 y=p0+p1*y 拟合到数据集 (xdata,ydata)。-matlab开发
这段代码定义了一个名为`Neweywest.t`的函数,该函数接受两个参数`xdata`和`ydata`。
在函数内部,定义了一个名为`coeft.multi`的子函数,该子函数接受一个参数`x`。
在`coeft.multi`函数中,使用`lm`函数进行线性回归,其中自变量是`xdata`,因变量是`x`。
然后,使用`coeftest`函数计算回归系数的t值。这里使用了`NeweyWest`函数来计算异方差和自相关调整后的方差协方差矩阵,其中`lag`参数根据样本量进行调整。
在主函数`Neweywest.t`中,使用`apply`函数逐列调用`coeft.multi`函数来计算每个因变量的回归系数的t值。最后,返回t值。
这段代码通过使用异方差和自相关调整后的方差协方差矩阵,提供了更准确的t值。
阅读全文