Вместо использования lm
вы можете сформулировать свою проблему в терминах квадратичного программирования:
Минимизируйте сумму квадратов ошибок репликации с учетом ограничения на положительные линейные коэффициенты.
Такие проблемы можно решить с помощью lsei
из пакета limSolve
. Глядя на ваш пример, это будет выглядеть примерно так:
x.variables <- c("modelNum3802", "modelNum8000", ...)
num.var <- length(x.variables)
lsei(A = intCollect1[, x.variables],
B = intCollect1$value,
G = diag(num.var),
H = rep(0, num.var))