計量經濟學

如何測試給定策略是否成功?

  • September 18, 2020

我有一些醫療研發和銷售的數據,我的教授讓我檢查一下 2016 年實施的政策是否對研發和研發/銷售數據產生了影響。我試圖繪製多年來的增長率,但他說我們不需要增長率,它必須通過每年平均研發支出來解決。(平均值超過多家公司)。如何對政​​策變化進行顯著性檢驗?

讓我們假設一個平衡的公司小組 $ i=1,…,N $ 在時間段內觀察到 $ t=1,…,T $ .

讓 $ s_{it} $ 表示公司的研發費用 $ i $ 時間 $ t $ 然後讓

$$ \bar s_t :=\frac{1}{N} \sum_i s_{it}, $$

表示時間 $ t $ 平均的。

現在考慮一個簡單的回歸模型 $$ (1)\ \ s_{it} = \beta_0 + \beta_1I[t\geq 2016] + e_{it} $$ 在哪裡 $ I[t\geq 2016] $ 暫時是政策實施後的指標。我假設該政策旨在刺激公司的研發投資,因此我們假設 $ \beta_1>0 $ 如果政策生效。

使用 POOLED OLS 估計器的正規方程很容易證明

$$ \hat \beta_0 = \frac{1}{NT_1} \sum_i \sum_t s_{it}I[t< 2016], $$ 在哪裡 $ T_1 $ 是治療前的時間段數。因此 $ \hat \beta_1 $ 大致是治療/政策實施前的平均研發費用水平。

如果模型(1)為真,那麼 $ plim \ \ \hat \beta_0 = \beta_0 = \mathbb E[s_{it} \lvert t<2016] $ 這是任何公司在治療前任何一年的預期研發費用水平。

你也可以證明

$$ \hat \beta_1 = \frac{1}{NT_2} \sum_i s_{it} I[t \geq 2016]-\frac{1}{NT_1} \sum_i \sum_t s_{it}I[t< 2016] $$

如果模型(1)為真,那麼 $ plim \ \ \hat \beta_1 = \beta_1 = \mathbb E[s_{it} \lvert t\geq 2016]- \mathbb E[s_{it} \lvert t<2016] $ 這是任何公司在治療後任何一年的預期研發費用水平。

你可以繪製系列 $ {s_t}_{t=1}^T $ 並得到 - 如果模型(1)是真的 - 像這樣

模型 1 - 情節

然而,隨著時間的推移,可能會發生其他事情,雖然您沒有任何不受政策實施影響的公司控制組,但您仍然可能比估計模型 (1) 做得更好。

考慮以下情節

在此處輸入圖像描述

每個時間段從哪裡開始 $ s_t $ 到 $ s_{t+1} $ 研發有小幅增長讓我們稱之為 $ \lambda $ . 然後在治療年份的增加略小。

藍色和讀取線是使用上面的估計器找到的,很明顯,因為它們沒有考慮時間趨勢,所以它們高估了效果。用於繪圖的數據是在模型之後生成的

$$ s_{it} = \beta_0 + \lambda \cdot t + \beta_1 I[t\geq 2016] + e_{it}, $$ 其中包括時間趨勢。

在這個模型中,效果是立竿見影的。但是效果也可能在治療後的幾年內發生,而不僅僅是在治療的那一年,因此你可以有一個像這樣的模型

$$ s_{it} = \beta_0 + \lambda \cdot t + \beta_1 I[t\geq 2016] + \beta_2 I[ t\geq 2017]+ e_{it}. $$

要點是你應該按照教授所說的去做併計算時間平均值 $ s_t $ 並繪製它們並查看它們。特別注意治療當年和近年治療後的情況(基於效果後因,需要時間才能充分發揮的原則)

IR 模擬數據並通過以下程式碼行生成繪圖:

# simulate panel of RD
library(data.table)
set.seed(1)
N &lt;- 50 #Number of firms
T &lt;- 16     #Number of time periods
TT &lt;- 9 #policy implementation year (treatment year)

b_0 &lt;- 5
b_1 &lt;- 2

# Simulate model (1)
s &lt;- b_0 + b_1 * (1:T &gt;= TT) + rnorm(N*T)

# Make dataset 
id &lt;- rep(1:N,each=T)
time &lt;- rep(1:T,N)
I &lt;- as.numeric(time&gt;=TT)
mydata &lt;- data.table(id,time,s,I)

# Compute time averages
time_agg &lt;- mydata[,.(s_t=mean(s)),by=time]

#Plot time averages
plot(time_agg$s_t,ylim=c(0,10),pch=20,xlab="time",ylab="R&D")
points(1:TT,rep(b_0,TT),type="l",lwd=1,col="blue")
points((TT):T,rep(b_0+b_1,T-TT+1),type="l",lwd=1,col="red")
savePlot("plot1.jpg",type="jpg")





# Simulate model (2)
s &lt;- b_0 + b_1 * (1:T &gt;= TT) + 0.5*1:T + rnorm(N*T)

# Make dataset 
mydata &lt;- data.table(id,time,s,I)

# Compute time averages
time_agg &lt;- mydata[,.(s_t=mean(s)),by=time]
model &lt;- lm(s~I,data=mydata)
hat_b_0 &lt;- coef(model)[1]
hat_b_1 &lt;- coef(model)[2]

#Plot time averages
plot(time_agg$s_t,ylim=c(5,16),pch=20,xlab="time",ylab="R&D")
points(1:TT,rep(hat_b_0,TT),type="l",lwd=1,col="blue")
points((TT):T,rep(hat_b_0+hat_b_1,T-TT+1),type="l",lwd=1,col="red")
savePlot("plot2.jpg",type="jpg")

我假設您需要計算某種回歸,以顯示(如果)研發費用的變化如何影響特定時間間隔內的銷售變化。

引用自:https://economics.stackexchange.com/questions/39699