У меня есть набор данных, который содержит информацию о продажах магазинов за последние годы, а также год, когда магазин был отремонтирован последним.Моя цель состоит в том, чтобы измерить, повлияло ли обновление на продажи после повторного открытия, и как это влияние развивалось в течение 4 лет после открытия.
Моя задача состоит в том, чтобы общая тенденция в наборе данных показалачто все магазины теряют около 2% в год выручки.Поэтому мне необходимо учитывать это и при измерении моего эффекта.
Моя первоначальная идея заключалась в создании манекенов для каждого возможного года обновления, но это не сработает, учитывая, что я собираю данные только для 35 магазинов.Поэтому я попытался создать переменную, подсчитывающую количество лет после обновления, но мне не хватает чего-то, что я думаю:
library(data.table)
year_start = 2013
year_stop = 2017
n_years = year_stop - year_start+1
seed_sales = 100
year_decrease = 0.02
n_shops = 35
shops = paste0("Shop",seq(1,n_shops))
dt_sales <- data.table( Shop = sort(rep(shops, n_years)),
Year = rep(seq(year_start,year_stop), length(shops)),
Year_Renovation = round(rbinom(n_shops*n_years,1,0.3)*runif(1, year_start-10, year_stop))
)
dt_sales[, Sales := 100-(Year-year_start)*year_decrease*rnorm(n_shops*n_years,1)-ifelse(Year_Renovation==1,ifelse(Year-Year_Renovation<2,10,0)*rnorm(n_shops*n_years)+ifelse(Year-Year_Renovation>2,10*Year-Year_Renovation,0)*rnorm(n_shops*n_years),0)]
## Current thinking
dt_sales[, Is_renovated := ifelse(Year_Renovation == 0,0,1)]
dt_sales[Is_renovated==1 & Year-Year_Renovation>=0, Years_since_rennovation := Year-Year_Renovation]
lm = glm(Sales ~ Year + Is_renovated:Years_since_rennovation, data=dt_sales,family = gaussian(),na.action = na.omit)
summary(lm)
Вывод:
(Intercept) 137.855325 9.679754 14.242 < 2e-16 ***
Year -0.018807 0.004803 -3.915 0.000279 ***
Years_since_rennovation NA NA NA NA
Годовое снижение зафиксировано, но эффект обновления, по-видимому, включен в перехват, который, как я установил, достигает 137 вместо 100.
Где я иду не так?
Спасибо!Stefano