R Регрессия: оценочный коэффициент только тогда, когда индикатор

Я хочу соответствовать регрессии, где результатом являются единицы продаж, а предикторами являются цены на журнал. Я хочу рассчитать эластичность.

Однако у меня есть 2 переменные, одна - обычная цена и другая цена продвижения. И я хотел бы иметь две отличные эластичности. Однако в моем наборе данных обе цены всегда присутствуют, я имею в виду, что когда продукт не находится в продвижении, обычная цена равна промо-цене.

Я попробовал несколько способов его вычисления, используя индикаторные переменные.

1. Я создал индекс, который равен 1, когда продукт не находится в дисконне, и 0, когда он есть.

    lm(logSales ~ 1 + logRP:I(INDEX==1) + logPP:I(INDEX!=1) ...)


    logRP:I(INDEX == 1)FALSE -1.45618    0.06189  -23.53   <2e-16 ***
    logRP:I(INDEX == 1)TRUE  -2.24568    0.08454  -26.56   <2e-16 ***
    logPP:I(INDEX != 1)FALSE -2.18178    0.01997 -109.27   <2e-16 ***
    logPP:I(INDEX != 1)TRUE  -1.85235    0.01646 -112.50   <2e-16 ***

Однако кажется, что это не правильное решение, поскольку я не хочу, чтобы оценки для того, когда его false. [ ! d5]

1. Я создал индекс, который равен 1, когда продукт не находится в дисконте и 0, когда он есть.

 lm(logSales ~ 1 + I(logRP*RP_Multiplier) + I(logPP*PP_Multiplier)

Но здесь результаты не имеют никакого смысла для меня вообще, у меня неправильный знак .

3. Я попытался просто взаимодействовать

    lm(logSales ~ 1 + logRP*RP_Multiplier + logPP*PP_Multiplier

Однако я не хочу оценивать коэффициенты для множителя или только для цены. Во всяком случае, это не моя цель.

Как настроить мою модель для оценки коэффициента ТОЛЬКО КОГДА наблюдение соответствует установленному мною условию? В этом случае эластичность будет вычисляться только в том случае, если множитель равен 1 для этой переменной.

0
задан 13 August 2018 в 15:22

1 ответ

Вы можете создать новую переменную с функцией ifelse:

price <- ifelse(INDEX == 1, logRP, logPP)

Я использую ваш индекс для того, чтобы не быть в продвижении по службе. Если оно равно 1, новая переменная примет значение logRP, а если оно равно 0, это будет значение logPP. Таким образом, новая переменная будет иметь интересующие вас цены, и вы можете использовать ее в качестве объясняющей переменной.

0
ответ дан 15 August 2018 в 17:00
  • 1
    Я сделал это, результат также не имел никакого смысла: / – Rafael Alves 13 August 2018 в 17:19
  • 2
    Что вы подразумеваете под «не имеет смысла». – wankata5 14 August 2018 в 11:46
  • 3
    Im получая положительное число для одной из эластичности, в то время как другой стал слишком маленьким. – Rafael Alves 14 August 2018 в 16:17

Другие вопросы по тегам:

Похожие вопросы: