【问题标题】:Creating a loop for linear regression为线性回归创建循环
【发布时间】:2019-01-02 07:21:50
【问题描述】:

我有一个包含三列的 data.frame,Name_of_brand、Price 和 Quantity。我想用 (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

首先我想转换日志中的数字,按 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.

谁能帮我计算一些代码?

【问题讨论】:

    标签: r loops for-loop elasticity


    【解决方案1】:

    没有必要明确地将您的数据分成几个子集。

    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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-17
      • 2018-02-26
      • 1970-01-01
      • 2023-03-11
      • 2021-09-14
      • 2020-12-28
      • 2021-07-02
      • 1970-01-01
      相关资源
      最近更新 更多