Создание цикла для линейной регрессии
У меня есть один data.frame с тремя столбцами, Name_of_brand, Цена и Количество. Я хочу рассчитать коэффициент линейной регрессии с помощью функции (лм).
Name_of_brand Price Quantitity
1. Brand 1 80 100
2. Brand 1 85 95
3. Brand 2 90 80
4. Brand 2 90 100
5. Brand 2 100 100
6. Brand 3 150 80
7. Brand 4 155 70
8. Brand 5 165 70
9. Brand 5 165 60
10. Brand 6 170 60
11. Brand 7 180 60
12. Brand 7 180 60
13. Brand 7 180 70
14. Brand 8 170 80
15. Brand 8 170 60
Сначала я хочу преобразовать цифры в журнале, сгруппировать по Name_of _brand, а после этого вычислить эластичность для цены для каждого приведенного ниже примера, например, Марка 1, Марка 2 и т. Д.
Бренд 1 Стол
Name_of_brand Price Quantitity
1. Марка 1 80 100 2. Марка 1 85 95
Бренд 2 Стол
Name_of_brand Price Quantitity
3. Brand 2 90 80
4. Brand 2 90 100
5. Brand 2 100 100
Марка 3 и т.д...
И в конце я хочу получить final_table с двумя столбцами, первый столбец с Name_of_brand и Coeff_elasticity.
Final_table
Name_of_brand Coeff_elasticity.
1. Brand 1 -0,5
2. Brand 2 -0,6
3. Brand 3 -0,7
4. Brand 4 -0,7
5. Brand 5 -0,5
etc.
Может кто-нибудь помочь мне с кодом для расчета?
0 ответов
Нет необходимости явно разделять ваши данные на несколько подмножеств.
model <- plyr::dlply(data, "Name_of_brand", function(df) lm(log(Quantitity) ~ log(Price), data = df))
Вы можете получить коэффициенты для каждого уровня "Name_of_brand", используя coef
:
coefficients <- plyr::dlply(model, coef)