创建线性回归循环

时间:2018-07-25 12:55:53

标签: r loops for-loop elasticity

我有一个data.frame,包含三列,即Name_of_brand,价格和数量。我想用(lm)函数计算线性回归系数。

    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

首先,我要转换日志中的数字,然后按_brand的名称进行分组,然后为每个类似示例(例如品牌1,品牌2等)计算价格的易用性。

品牌1表

Name_of_brand       Price    Quantitity

1。品牌1 80100 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。

最终表

    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.

有人可以帮我一些计算代码吗?

1 个答案:

答案 0 :(得分:2)

无需将您的数据明确分为几个子集。

model <- plyr::dlply(data, "Name_of_brand", function(df) lm(log(Quantitity) ~ log(Price), data = df))

您可以使用coef来获取“ Name_of_brand”每个级别的系数:

coefficients <- plyr::dlply(model, coef)