Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***************************************************************************\
- * *
- * Corso di laurea in "Discipline Economiche e Sociali" *
- * Classe 19 *
- * Corso 20203: Analisi Econometrica *
- * Assignment 1 *
- * Gruppo 2: *
- * Baudo Riccardo - 1347293 *
- * Belardinelli Paolo - 1610476 *
- * Beldì Luca - 1351030 *
- * *
- \***************************************************************************/
- set more off
- set linesize 125
- use assignment.dta, clear
- quietly capture log close
- quietly log using assignment_log, replace
- //Question 1:
- summarize
- /***************************************************************************\
- * *
- * Il dataset presenta 5 variabili: *
- * 1) y - Indica l'output di ogni impresa *
- * 2) x1 - Indica il primo fattore produttivo usato dall'impresa *
- * 3) x2 - Indica il secondo fattore produttivo *
- * 4) z - Rappresenta la diagonale della matrice proporzionale alla *
- * varianza dei residui nel modello GLS *
- * 5) sector - è una variabile indicatrice del settore di appartenenza di *
- * ciascuna impresa *
- * *
- \***************************************************************************/
- //Question 2 (a):
- gen ln_y= ln(y)
- gen ln_x1= ln(x2)
- gen ln_x2= ln(x1)
- /***************************************************************************\
- * *
- * Effettuiamo una trasformazione logaritmica delle variabili. Ci siamo *
- * ricondotti alla costruzione di un modello Cobb-Douglas in cui i *
- * coefficienti beta possono essere interpretati come elasticitˆ dell'output *
- * ad un fattore produttivo. *
- * Es: il coefficiente di ln_x2 indicherà che a una variazione dell'1% del *
- * secondo fattore produttivo corrisponderà una variazione % *
- * dell'output pari al coefficiente di ln_x2 stesso. *
- * *
- \***************************************************************************/
- // Question 2 (b):
- regress ln_y ln_x1 ln_x2
- /***************************************************************************\
- * *
- * Avendo incluso la variabile nel modello, possiamo considerare il *
- * coefficente R^2 come una misura della capacita' esplicativa del modello *
- * e appare essere particolarmente alto (81.68%). *
- * I test di significatività sui parametri portano a rifiutare l'ipotesi *
- * di mancata significatività sia congiunta sia individuale dei parametri *
- * ad ogni ragionevole livello di significatività. *
- * *
- \***************************************************************************/
- //Question 3:
- test ln_x1 + ln_x2 = 1
- /***************************************************************************\
- * *
- * Il test non porta a rifiutare l'ipotesi di rendimenti di scala costanti *
- * a nessun ragionevole livello di significatività. *
- * Si può affermare che l'output aumenta in misura pari a quella *
- * dell'aumento congiunto dei fattori produttivi. *
- * Ad esempio il raddoppio di entrambi gli input comporta il raddoppio *
- * dell'output *
- * *
- \***************************************************************************/
- //Question 4:
- /***************************************************************************\
- * *
- * 1) All'equazione che descrive il modello generale: *
- * ln_y = b0 + ln_x1*b1 + ln_x2*b2 + e *
- * 2) Applichiamo il vincolo b2 = 1 - b1 *
- * 3) Ottenendo la seguente riparametrizzazione: *
- * ln_y = b0 + ln_x1*b1 + ln_x2(1-b1) + e *
- * ln_y = b0 + ln_x1*b1 + ln_x2 - ln_x2*b1 + e *
- * ln_y = b0 + (ln_x1-ln_x2)b1 + ln_x2 + e *
- * 4) Sottraiamo x_2 a entrambi i membri *
- * ln_y - ln_x2 = b0 + (ln_x1-ln_x2)b1 + e *
- * 5) Stimiamo i coefficienti OLS del modello *
- * ln_y - ln_x2 = b0 + (ln_x1-ln_x2)b1 + ln_x2*b3 + e *
- * 6) Eseguiamo il test di esclusione relativo a b3 *
- * *
- \***************************************************************************/
- generate ln_x3=ln_x1-ln_x2
- generate ln_y3=ln_y-ln_x2
- regress ln_y3 ln_x3 ln_x2
- test ln_x2=0
- /***************************************************************************\
- * *
- * Senza alcuna sorpresa il test fornisce gli stessi risultati del *
- * precedente (Question 3) *
- * *
- \***************************************************************************/
- //Question 5 (a):
- quietly capture do "http://fmwww.bc.edu/repec/bocode/w/whitetst.ado"
- whitetst
- /***************************************************************************\
- * *
- * Il test ci porta a rifiutare l'ipotesi nulla di omoschedasticità *
- * anche per livelli di significatività molto bassi. *
- * Possiamo affermare che il campione *
- * mostra segni di eteroschedasticità di tipo White. Gli stimatori della *
- * matrice varianza-covarianza dei coefficienti OLS sono quindi distorti e, *
- * di conseguenza, anche i test di significatività degli stessi parametri *
- * *
- \***************************************************************************/
- //Question 5 (b):
- regress ln_y ln_x1 ln_x2, vce(robust)
- /***************************************************************************\
- * *
- * La stima robusta della matrice di varianza-covarianza dei residui porta a *
- * stime delle deviazioni standard dei coefficienti OLS relativi ai fattori *
- * produttivi più elevate che nel caso precedente, ma i test di *
- * significatività sui parametri ci portano alle stesse conclusioni del *
- * caso precedente *
- * *
- \***************************************************************************/
- test ln_x1 + ln_x2 = 1
- regress ln_y3 ln_x3 ln_x2, vce(robust)
- test ln_x2
- /***************************************************************************\
- * *
- * L'ipotesi di rendimenti di scala costanti, come nel caso precedente, *
- * non viene rifiutata *
- * *
- \***************************************************************************/
- //Question 6:
- /***************************************************************************\
- * *
- * Prepariamo le variabili pesandole per la radice quadrata di z *
- * *
- \***************************************************************************/
- generate wei_y=ln_y/sqrt(z)
- generate wei_x1=ln_x1/sqrt(z)
- generate wei_x2=ln_x2/sqrt(z)
- generate unity=1
- generate wei_unity= unity/sqrt(z)
- /***************************************************************************\
- * *
- * Ora procediamo alla regressione della variabile dipendente pesata sui *
- * logaritmi dei fattori produttivi pesati *
- * *
- \***************************************************************************/
- regress wei_y wei_unity wei_x1 wei_x2, noconstant
- test wei_x1 + wei_x2 = 1
- /***************************************************************************\
- * *
- * L'ipotesi di rendimenti di scala costanti, ancora una volta, non può *
- * essere rifiutata *
- * *
- \***************************************************************************/
- quietly regress
- /***************************************************************************\
- * *
- * Essendo Var(e/sqrt(z))=sigma^2 *
- * Lo stimatore per sigma^2 è dato dalla somma degli errori pesati divisi *
- * per i loro gradi di libertà (403), da cui la stima pari a *
- * *
- \***************************************************************************/
- display e(rmse)^2
- //Question 7:
- /***************************************************************************\
- * *
- * Definito il bias come "E(b_omitted)-beta" procediamo alla costruzione di *
- * uno stimatore di tale quantità utilizzando due metodi: *
- * *
- * Metodo 1: *
- * 1) Si può dimostrare che il bias dovuto all'omissione di ln_x2 equivale *
- * al vettore dei coefficienti OLS stimati derivanti dalla regressione *
- * di ln_x2*b_2 su ln_x1 e la costante, dove b_2 è il coefficiente OLS *
- * (quindi non distorto) per beta_2. *
- * 2) Procediamo alla costruzione della variabile ln_x2*b_2. *
- * 3) Regrediamo ln_x2*b_2 su ln_x1 e una costante. *
- * 4) I coefficienti ottenuti corrisponderanno alle rispettive distorsioni *
- * dovute alla variabile omessa. *
- * *
- * Metodo 2: *
- * 1) Sostituiamo a beta, in "E(b_omitted)-beta", un suo stimatore non *
- * distorto, in questo caso lo stimatore OLS della regressione completa.*
- * Lo stimatore così costruito gode della proprietà di non distorsione *
- * in quanto E(E(b_omitted)-b_ols)=E(b_omitted)-beta. *
- * 2) Per procedere alla stima costruiamo la regressione OLS senza omis- *
- * -sione della variabile ln_x2 e ne salviamo i coefficienti b stimati. *
- * 3) Successivamente procediamo alla stima dei coefficienti OLS per il *
- * modello che prevede l'esclusione della variabile ln_x2. *
- * 4) Infine si procede alla stima del bias semplicemente sottraendo alla *
- * stima dei coefficienti della seconda regressione quelli della prima *
- * regressione. *
- * *
- * L'operazione viene quindi ripetuta per il modello WLS *
- * *
- \***************************************************************************/
- ***************************************************************************
- //Question 7(a): OLS
- ////////////////////////////////// METODO 1
- quietly regress ln_y ln_x1 ln_x2 //Procedo alla regressione senza omissione di variabile
- mat b_ols_m1=e(b)
- svmat double b_ols_m1, names(matcol) //Salvo i coefficienti OLS non distorti per i beta
- generate b_vec_ols_lnx2= b_ols_m1ln_x2[1] //Creo un vettore con componenti tutte uguali a b_olsln_x2
- generate z_ols_omit=ln_x2*b_vec_ols_lnx2 //Creo la variabile ln_x2*b_olsln_x2
- quietly regress z_ols_omit ln_x1 //Regredisco la nuova variabile su ln_x1 e costante
- //Mostro i coefficienti stimati dell'ultima regressione (ln_x2)
- matrix list e(b) //che corrispondono al bias dovuto a omitted variable
- ////////////////////////////////// METODO 2
- quietly regress ln_y ln_x1 ln_x2 //Procedo alla regressione senza omissione di variabile
- mat b_ols_m2=e(b)
- svmat double b_ols_m2, names(matcol) //Salvo i coefficienti OLS non distorti per i beta
- quietly regress ln_y ln_x1 //Procedo alla regressione con omissione di variabile
- mat b_ols_bias=e(b)
- svmat double b_ols_bias, names(matcol) //Salvo i coefficienti OLS distorti per i beta
- display b_ols_biasln_x1 - b_ols_m2ln_x1 //Bias per b1[OLS]
- display b_ols_bias_cons - b_ols_m2_cons //Bias per b0[OLS]
- ***************************************************************************
- //Question 7 (b): WLS
- ////////////////////////////////// METODO 1
- quietly regress wei_y wei_unity wei_x1 wei_x2, noconstant //Procedo alla regressione senza omissione di variabile
- mat b_wls_m1=e(b)
- svmat double b_wls_m1, names(matcol) //Salvo i coefficienti WLS non distorti per i beta
- generate b_vec_wls_weix2= b_wls_m1wei_x2[1] //Creo un vettore con componenti tutte uguali a b_olsln_x2
- generate z_wls_omit=wei_x2*b_vec_wls_weix2 //Creo la variabile wei_x2*b_olswei_x2
- quietly regress z_wls_omit wei_x1 wei_unity, noconstant //regredisco la nuova variabile su wei_x1 e costante
- matrix list e(b)
- ////////////////////////////////// METODO 2
- quietly regress wei_y wei_unity wei_x1 wei_x2, noconstant //Procedo alla regressione senza omissione di variabile
- mat beta_wls=e(b)
- svmat double beta_wls, names(matcol) //Salvo i coefficienti WLS non distorti per i beta
- quietly regress wei_y wei_unity wei_x1, noconstant //Procedo alla regressione con omissione di variabile
- mat beta_wls_bias=e(b)
- svmat double beta_wls_bias, names(matcol) //Salvo i coefficienti WLS distorti per i beta
- display beta_wls_biaswei_x1 - beta_wlswei_x1 //Bias for b1[WLS]
- display beta_wls_biaswei_unity - beta_wlswei_unity //Bias per b0[WLS]
- ***************************************************************************
- //Question 8:
- /***************************************************************************\
- * *
- * Procediamo all'implementazione del test classico di Chow. Esso è un test *
- * di invarianza dei parametri. Viene qui applicato per testare l'invarianza *
- * dei parametri tra i due settori d'imprese considerati. *
- * *
- * Facciamo un esempio esplicativo: *
- *
- * Hps] *
- * 1) la funzione di produzione delle imprese ripartite tra i due settori *
- * è per convenzione una Cobb-Douglas: cioè Y=(L)^a*(K)^b (dove *
- * Y=output; L =lavoro=x1; K=capitale=x2.) *
- * 2) Facendo la trasformazione logaritmica, richiesta alla question 2(a) *
- * abbiamo ottenuto la seguente funzione di produzione *
- * -> lnY = a*lnL + b*lnK (dove a=impatto marginale percentuale *
- * (l'elasticità) del lavoro sull'output; b=impatto marginale *
- * percentuale (elasticità) del capitale sull'output) *
- * *
- * Ts] Essendo le 406 imprese (# osservazioni) ripartite tra due *
- * settori (1 e 2) utilizziamo il Chow test classico per testare se *
- * c'è invarianza dei parametri a e b nei 2 settori. *
- * *
- * Il precedente test potrebbe far rifiutare l'ipotesi nulla, non *
- * necessariamente a causa dell'effettiva eterogeneità dei parametri, *
- * ma a causa della presenza di fenomeni di eteroschedasticità di tipo *
- * White nei dati. *
- * Per ovviare a tale possibilità procederemo a rendere robusta la stima *
- * della matrice delle varianze-covarianze del modello *
- * *
- * Procedimento: *
- * 1) Generiamo la dummy variable relativa al settore 2. *
- * 2) Tramite quest'ultima creiamo le variabili specifiche per le imprese *
- * del secondo settore. *
- * 3) Regrediamo la variabile dipendente sui regressori ln_x1, ln_x2 e *
- * quelli peculiari al secondo settore *
- * 4) Implementiamo il test Chow classico verificando che i coefficienti *
- * relativi solamente al secondo settore (dummy inclusa) siano *
- * congiuntamente non statisticamente diversi da 0 *
- * *
- * Ripetiamo quindi il procedimento con stimatori per gli *
- * standard error robusti. *
- * *
- \***************************************************************************/
- generate d2=sector-1 //Genero la variabile dummy per il settore 2
- //Genero la variabile relativa al primo output
- generate ln_x1_2=ln_x1*d2 //pertinente alle imprese del secondo settore
- generate ln_x2_2=ln_x2*d2 //Genero la variabile relativa al secondo output
- //pertinente alle imprese del secondo settore
- //CLASSIC CHOW TEST ASSUMENDO OMOSCHEDASTICITA':
- //Regredisco l'output sui 2 input e sulle 3 variabili
- regress ln_y ln_x1 ln_x2 ln_x1_2 ln_x2_2 d2 //appena generate
- //Implementiamo il test di Chow classico con
- test ln_x1_2 ln_x2_2 d2 //l'assunzione di omoschedasticitˆ
- //CHOW TEST ROBUST TO ETEROSCHEDASTICITY:
- //Eseguo la regressione precedente, rendendo il modello
- regress ln_y ln_x1 ln_x2 ln_x1_2 ln_x2_2 d2, vce(robust) //robusto
- //Implementiamo il test di Chow classico con
- test ln_x1_2 ln_x2_2 d2 //senza l'assunzione di omoschedasticità
- quietly log close
- exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement