如何使用给定的数据进行线性回归?

时间:2019-05-14 17:56:30

标签: r linear-regression

我们有一个庞大的数据集,包含399周内在93家商店中出售的26个品牌。这些品牌仍分为子品牌(例如:品牌=高露洁,但仍然存在子品牌(556):高露洁特级白/高露洁多余等)。 我们为每个子品牌计算了每周商店级别的品牌共享价格: 计算:(每个子品牌和每个单店每周的盎司移动量)除以(指每个品牌每个商店每周的子品牌的盎司移动量的总和)*(商店级别上每个子品牌每周的对数盎司价格) )

一切正常!我们创建了一个包含所有详细计算的数据框(数据=牙齿4)。我们的最终兴趣是进行线性回归以预测价格对移动变量的影响 ->现在的问题是,销售变量(虚拟变量,它表示是否在特定商店的特定子品牌在特定的一周内有促销)在子品牌级别 ->我们尝试在子品牌级别(变量=说明)上进行回归分析,但由于大数据而无法正常运行

lm(formula = logmove_ounce ~ log_wei_price_ounce + descrip - 1 * 
    (log_wei_price_ounce) + sale - 1, data = tooth4)

logmove_ounce = log of weekly subbrand based move on store level 
log_wei_price_ounce = weighted subbrand based price for each store for each week
sale-1 = fixed effect for promotion 
descrip-1 = fixed effect for subbrand

有没有人有一个解决方案,如何仅在品牌一级进行回归分析,但不包括促销变量? 我们得到的提示是,我们可以计算每个商店中每个品牌的促销共享价值?但是如何? 另一个问题,假设我的回归是正确/部分正确-我如何加权结果以仅在商店级别而不是每周商店级别获得结果?

预先感谢您!

1 个答案:

答案 0 :(得分:0)

  

我们得到的提示是,我们可以计算每个商店上每个品牌的促销共享价值?但是如何?

这被称为multilevel model, a nested model, hierarchical model, mixed model, or random-effect model,它们都是相同的数学模型。它广泛用于分析您描述的纵向面板数据的种类。关于该主题的一本严肃的书是Gelman.

R中最常见的方法是使用lmer()包中的lme4函数。如果您在不适当地的大数据上使用lme4,则应阅读其performance tips.

lmer()模型接受的公式语法略有不同,我将仅简要介绍一下该语法,以便您了解它如何解决您遇到的问题。

例如,假设我们根据某些学生的GPA和智商对未来的薪水进行建模。我们知道学生来自某些学校,所以所有上同一所学校的学生都是一个小组的一部分,而学校又被分为县,州。此外,学生在不同年份毕业可能会产生影响。这是一个通用示例,但我选择它是因为它具有与您自己的纵向面板数据相同的许多特征。

我们可以使用广义公式语法来指定具有不同截距的组:

lmer(salary ~ gpa + iq + (1|school), data=df)

此类组的嵌套层次结构:

lmer(salary ~ gpa + iq + (1|state/county/school), data=df)

或通过更改组的坡度来捕获随时间变化的变化:

lmer(salary ~ gpa + iq + (1 + year|school), data=df)

您必须自行决定如何对数据建模,但是lme4::lmer()将为您提供比lm()更大的工具箱来处理组和级别。我建议在https://stats.stackexchange.com/上询问您是否对建模方面有疑问。