Я хотел бы знать, как я могу циклически регрессировать n раз и каждый раз с помощью другого набора переменных извлекать data.frame, где каждый столбец является регрессией и каждая строка представляет собой переменную.Как извлечь коэффициенты выходов из линейной регрессии с помощью цикла
В моем случае у меня есть data.frame из:
dt_deals <- data.frame(Premium=c(1,3,4,5),Liquidity=c(0.2,0.3,1.5,0.8),Leverage=c(1,3,0.5,0.7))
Но у меня есть еще одна пояснительная фиктивная переменная называется Высокомерие, что является продуктом биномиального распределения, с 0,25 среднего. Как что:
n <- 10
hubris_dataset <- data.frame(replicate(n, rbinom(4,1,0.25))
В этом смысле то, что мне нужно сделать п моделирование высокомерия, так что я могу, сделать п регрессионный каждый с Diferent набором случайных биномиального распределения и выход каждого distribuition мне нужно поместить в data.frame, как объяснено.
До сих пор я мог бы достичь этого:
# define n as the number of simulations i want
n=10
# define beta as a data.frame to put every coefiecient from the lm regression
beta=NULL
for(i in 1:n) {
dt_deals2 <- dt_deals
beta[[i]] <- coef(lm(dt_deals$Premium ~ dt_deals$Liquidity + dt_deals$Leverage + hubris_dataset[,i], data=dt_deals2))
beta <- cbind(reg$coefficients)
}
Но этот способ это только генерировать первый набор коэффициентов, а не сделать еще десять колонн для data.frame
просто использовать 'replicate' – MichaelChirico
Ваш код запутанный и запутанный. Цикл for присваивает значениям коэффициентов 'beta [[i]]'. Подмножество с двойной скобкой используется для объектов 'list', а не векторов, созданных с помощью' beta = NULL'. –
Вы также пишете все с помощью 'beta <- cbind (reg $ rates)'. Таким образом, вы назначаете значения в 'beta [[i]] <-', тогда вы переписываете все это в следующей строке. –