Мы могли бы написать собственную функцию регрессии.
regFun1 <- function(x) summary(lm(x[, 1] ~ x[, 2]))
, которую мы можем зациклить на данных с помощью lapply
:
l1 <- lapply(bivn_1000, regFun1)
Коэффициенты сохраняются внутри списка и могутизвлекается так:
l1[[1]]$coefficients # for the first regression
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 0.5554601 0.06082924 9.131466 7.969277e-17
# x[, 2] 0.4797568 0.04255711 11.273246 4.322184e-23
Редактировать:
Если нам нужны только оценки без статистики, мы соответствующим образом корректируем вывод функции.
regFun2 <- function(x) summary(lm(x[, 1] ~ x[, 2]))$coef[, 1]
Поскольку нам может потребоваться вывод в матричной форме, мы используем sapply
next.
m2 <- t(sapply(bivn_1000, regFun2))
head(m2)
# (Intercept) x[, 2]
# [1,] 0.6315558 0.4389721
# [2,] 0.5514555 0.4840933
# [3,] 0.6782464 0.3250800
# [4,] 0.6350999 0.3848747
# [5,] 0.5899311 0.3645237
# [6,] 0.6263678 0.3825725
, где
dim(m2)
# [1] 1000 2
заверяет нас, что у нас есть 1000 оценок.