169 похожих чатов

(Неинтересный нубский) вопрос по difference-in-difference. задача: оценить влияние тритмента (скидки) на

переменную count. тритмент произошел с 2020-11-02 по 2022-12-30, но действовал только в 5:15-7:15 и 8:45-9:15.
основная гипотеза в том, что скидка способствовала повышению count в период 5:15-7:45 и 8:45-9:15.

данные, код и саммари модели прикладываю, group1 — группа, на которую применялся тритмент, group2 — группа для сравнения (на ней тритмента не было).

library(data.table)
library(tidyverse)


df = fread('did_df.csv')

did_df <- mutate(df,
time = ifelse(df$interval_start >= "2020-11-02 05:15:00", 1, 0),
treated = ifelse(group == "group1", 1, 0)
)

did_model <- lm(count ~ time + treated + time:treated, data = did_df)
summary(did_model)

Call:
lm(formula = count ~ time + treated + time:treated, data = did_df)

Residuals:
Min 1Q Median 3Q Max
-14085 -4220 -608 3939 31870

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8557.49 48.25 177.36 <2e-16 ***
time -1341.47 72.04 -18.62 <2e-16 ***
treated 5528.30 68.22 81.04 <2e-16 ***
time:treated -2936.00 101.88 -28.82 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 6023 on 56523 degrees of freedom
Multiple R-squared: 0.1602, Adjusted R-squared: 0.1602
F-statistic: 3595 on 3 and 56523 DF, p-value: < 2.2e-16

вопросы:
1) если тритмент действует не весь день, а только в указанное время, то как нужно обозначать его для модели: для всего периода действия (т.е. условно в 8:00 тритмент тоже будет 1), или только то время, когда он реально работает?
2) как интерпретировать полученные в модели результаты? делал по тутору отсюда, но до конца не понял, что в итоге получилось.
буду благодарен за ссылки на полезный материал по теме. did впервые применяю.

1 ответов

22 просмотра

Суббота, лень вникать ;) спросил чатгпт:

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

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта