R에서 WLS의 베타 평균 추정 속도를 높일 필요가 있습니다. 공분산 계산을 가속화 할 수 있었는데 thanks to SO입니다. 궁극적 인 계산을 빠르게하는 또 다른 속임수가 있는지 궁금하다. (또는 내가하고있는 것이 이미 충분히 효율적이라면).R의 가중 최소 제곱 평균 추정의 속도 증가 역 계산
n = 10000
y = rnorm(n, 3, 0.4)
X = matrix(c(rnorm(n,1,2), sample(c(1,-1), n, replace = TRUE), rnorm(n,2,0.5)), nrow = n, ncol = 3)
Q = diag(rnorm(n, 1.5, 0.3))
wls.cov.matrix = crossprod(X/sqrt(diag(Q)))
Q.inv = diag(1/diag(Q))
wls.mean = wls.cov.matrix%*%t(X)%*%Q.inv%*%y
system.time(wls.cov.matrix%*%t(X)%*%Q.inv%*%y)
wls.cov.matrix crossprod에서와 비슷한 또 다른 속임수가있어 평균 계산 속도를 높이거나 필요가 없습니다. 감사!
귀하의 코드가 오류없이 실행되지 않습니다. 또한 성능 질문에는 벤치 마크 및 성능 요구 사항 사양이 포함되어야합니다. – Roland
@Roland는 캐치에 대한 감사, 버그가 수정되었습니다. 성능 요구 사항 측면에서 나는 잠재적 개선 (또는 향상 될 수 없음을 정당화하는 답변)을 찾고 있으며 속도 향상이 가능한지 더 많이 알 수 있습니다. – Dnaiel