Я хотел бы воссоздать следующий расчет со случайной матрицей:
Я начал со следующего, что дает результат:
kmin1 <- cbind(1:10,1:10,6:15,1:10,1:10,6:15,1:10,1:10,6:15)
C <- cbind(1, kmin1) # Column of 1s
diag(C) <- 1
Ccrosprod <-crossprod(C) # C'C
Ctranspose <- t(C) # C'
CCtransposeinv <- solve(Ccrosprod) # (C'C)^-1
W <- Ctranspose %*% CCtransposeinv # W=(C'C)^-1*C'
Однако я предполагаю, что C должен быть матрицей m x n
, поскольку нет веских оснований полагать, что факторы равны наблюдениям.
РЕДАКТИРОВАТЬ: На основании комментария Hong Ooi я изменил kmin1 <- matrix(rexp(200, rate=.1), ncol=20)
на kmin1 <- matrix(rexp(200, rate=.1), nrow=20)
Я проверил Википедию и узнал, что m x n
может иметьлевый или правый обратный.Чтобы применить это на практике, я попытался сделать следующее:
kmin1 <- matrix(rexp(200, rate=.1), nrow=20)
C <- cbind(1, kmin1) # Column of 1s
Ccrosprod <-crossprod(C) # C'C
Ctranspose <- t(C) # C'
CCtransposeinv <- solve(Ccrosprod) # (C'C)^-1
W <- Ctranspose %*% CCtransposeinv # W=(C'C)^-1*C'
РЕДАКТИРОВАТЬ: Основываясь на комментариях ниже этого вопроса, все работает.
Я бы опубликовал это на stackexchange, если я был уверен, что это не такне имеет ничего общего с синтаксисом, но так как я не знаком с матрицами, я не уверен.