У нас пока мало опыта работы с R, и нам нужно создать цикл. У нас есть набор данных, который содержит более 150 брендов с их объемом продаж и соответствующими ценами. Нам нужно запустить регрессию для каждого бренда (чтобы рассчитать 150 различных ценовых эластичностей). Поскольку мы не хотим вводить каждую lm-функцию для каждого бренда в наш R-скрипт, мы хотим использовать цикл, который более или менее автоматически создает функции регрессии для каждого бренда. Кроме того, нам нужно поместить коэффициент цены (который является ценовой эластичностью) в другой столбец информационного кадра (чтобы построить ценовую эластичность).
Мы думали об использовании функции цикла for (), но это не сработало. Мы, вероятно, ошиблись в спецификации этой функции, потому что она рассчитывала только одну ценовую эластичность для всех брендов.
У тебя есть идея? Мы с нетерпением ждем любой помощи:)
Это код нашей линейной регрессии:
Здесь мы создали фрейм данных для бренда «Budweiser»:
bud_all <- subset(brandlevel, brand=="Budweiser")
Здесь мы запускаем регрессию, где log_move - это количество продаваемого Budweiser, а log_price - цена проданного товара:
reg_bud <-lm(log_move ~ log_price + as.factor(store), data = bud_all)
Вот где мы получаем коэффициент:
summary(reg_bud)
Вот наша первая попытка использовать цикл for, к сожалению, была рассчитана только одна эластичность цены для всех брендов:
out <- data.frame(NULL)
for (i in 1:brandlevel$brand){
m <- summary(lm(log_move ~ log_price, data=brandlevel))
out[i,1] <- m$coefficients[2,1]
}