如何构造对角线向量,使其条目数超过R中矩阵中允许的最大条目数

  • 本文关键字:向量 对角线 何构造 r algorithm glm scoring
  • 更新时间 :
  • 英文 :


我希望构建一个包含67856个元素的大型数据集的X^TWX。

我正试图构造尺寸为67856*67856的对角向量W,但我遇到了这个错误";矢量存储器耗尽(达到极限?(";

有没有其他方法可以构造对角线向量W,这是我的Fischer评分算法工作所需要的

initial_model1=(lm(ClaimNb~VehValue+VehAge+DrivAge,data=final_data))
r=coef(summary(mleNB))[1,1]
beta0=initial_model1$coefficients[1]
beta1=initial_model1$coefficients[2]
beta2=initial_model1$coefficients[3]
beta3=initial_model1$coefficients[4]
y=c(final_data$ClaimNb)
xi1=c(final_data$VehValue)
xi2=c(final_data$VehAge)
xi3=c(final_data$DrivAge)
##Column vector of regressors
regressors=matrix(c(beta0,beta1,beta2,beta3),ncol=1)
n=nrow(final_data)
beta0=regressors[1]
beta1=regressors[2]
beta2=regressors[3]
beta3=regressors[4]
intercept=rep(1,nrow(final_data))
X=matrix(c(intercept,xi1,xi2,xi3),ncol=4)
XT=t(X)
W=matrix(rep(0),n,n)
Error: vector memory exhausted (limit reached?)

不填充对角线矩阵,只使用其对角线如下:

# diagonal matrix
D <- rbind(
c(2, 0, 0),
c(0, 3, 0),
c(0, 0, 4)
)
# a 3x2-matrix
set.seed(666)
X <- matrix(rpois(6, 50), ncol = 2)
# brutal matricial product
t(X) %*% D %*% X
# other way
v <- diag(D) # v = c(2, 3, 4)
crossprod(sqrt(v) * X) # = t(X) %*% D %*% X

最新更新