Econometrics All R Codes Final
Econometrics All R Codes Final
##Unrestricted Regression
reg_un = lm(y ~ x2+x3)
res_un = reg_un$residuals
sigma_2 = var(res_un)
ULLF = -(n/2)*log(sigma_2)-deviance(reg_un)/(2*sigma_2)
###LR Test
lambda = 2*(ULLF-RLLF)
pchisq(lambda, 1, lower.tail = F)
for (i in 1:100)
{
set.seed(105 + i)
ui = rnorm(n, 0, 5)
y = b1 + b2 * x + ui
reg = lm(y ~ x)
coef_values = coef(summary(reg))
b1_hat[i] = coef_values[1, 1]
b2_hat[i] = coef_values[2, 1]
}
b1_est = mean(b1_hat)
b2_est = mean(b2_hat)
3. Wald Test Statistic
set.seed(105)
n = 25
k=2
x2 = runif(n, 45, 99)
x3 = runif(n, 4, 900)
y = rnorm(n, 0, 7)
##Unrestricted Regression
model1 = lm(y ~ x2+x3)
URSS = deviance(model1)
##Restricted Regression
model2 = lm(y ~ x2)
RRSS = deviance(model2)
##Unrestricted Regression
model1 = lm(y ~ x2+x3)
URSS = deviance(model1)
##Restricted Regression
model2 = lm(y ~ x2)
RRSS = deviance(model2)
##Model B
m2 = lm(PPCE ~ PDPI + PPCE_1, data)
summary(m2)
##Davidson–MacKinnon J Test
library(lmtest)
jtest(m1,m2)
model = lm(data$Y~data$X)
results = summary(model)
ui = results$residuals
u_t = ui[2:10]
u_t_1 = ui[1:9]
ut1 = ui[1:10]
##Using library
library(lmtest)
dwtest(model)
##Old Model
reg = lm(data$Y~data$X)
r1 = summary(reg)
u_hat = r1$residuals
Y_hat = predict(reg)
##New Model
Y_hat_sq = Y_hat**2
Y_hat_cube = Y_hat**3
n_reg = lm(data$Y~data$X+Y_hat_sq+Y_hat_cube)
r2 = summary(n_reg)
num = (R_sq_new-R_sq_old)/num_df
denum = (1-R_sq_new)/denum_df
##Result
F_cal = num/denum
F_tab = qf(0.05, 2,6, lower.tail = FALSE)
##Restricted Regression
m1 = lm(data$Y ~ data$X)
r1 = summary(m1)
u_hat = r1$residuals
##New Regression
X_sq = (data$X)**2
X_cu = (data$X)**3
m2 = lm(u_hat ~ data$X+X_sq+X_cu)
r2 = summary(m2)
reg = lm(data$Y~data$X)
summary(reg)
data$Y_hat = predict(reg)
data$w_hat = data$Y_hat*(1-data$Y_hat)
d = data[data$w_hat>0,]
d$Y_star = d$Y/sqrt(d$w_hat)
d$int = 1/sqrt(d$w_hat)
d$X_star = d$X/sqrt(d$w_hat)
LPM = lm(d$Y_star~d$int+d$X_star-1)
summary(LPM)
2. Logit Model
setwd("D:/3rd Year/LAB EXAM 3RD YEAR/Econometrics/Logit")
data = read.table("Table_15.4.txt")
colnames(data) = c("X", "N", "n")
View(data)
data$P = data$n/data$N
data$L = log(data$P/(1-data$P))
data$w = data$N*data$P*(1-data$P)
data$sq_w = sqrt(data$w)
###Regression
data$L_star = data$L*data$sq_w
data$sq_w = sqrt(data$w)
data$X_star = data$X*data$sq_w
reg = lm(data$L_star~data$sq_w+data$X_star-1)
data$Pred_L_star = predict(reg)
coef = as.numeric(coef(summary(reg))[,1])
Beta = coef[2]
####Output
data$logit = data$Pred_L_star/data$sq_w
data$Probability = exp(data$logit)/(1+exp(data$logit))
data$Change_in_Pr = Beta*data$Probability*(1-data$Probability)
3. Probit Model
setwd("D:/3rd Year/LAB EXAM 3RD YEAR/Econometrics/Logit")
data = read.table("Table_15.4.txt")
colnames(data) = c("X", "N", "n")
View(data)
###Probit_Model
data$P = data$n/data$N
data$I = qnorm(data$P)
reg = lm(data$I~data$X)
summary(reg)
data$Pred_I = predict(reg)
data$Pr = pnorm(data$Pred_I)
b2 = coef(summary(reg))[2,1]
data$M = b2*data$Pr*100 (For interpreting)
##Corrected_for_Heteroscedasticity
##Exercise: 15.12
data$sigma_2 = (data$P*(1-data$P))/(data$N*(data$I)**2)
data$sigma = sqrt(data$sigma_2)
data$Y_star = data$I/data$sigma
data$sigma_inv = 1/data$sigma
data$X_star = data$X/data$sigma
C_reg = lm(data$Y_star~data$sigma_inv+data$X_star-1)
summary(C_reg)
❖ Multicollinearity R Codes
1. Detection of Multicollinearity
library(tidyverse)
data("mtcars")
attach(mtcars)
head(mtcars)
❖ Heteroscedasticity R Codes
1. Park Test
setwd("D:/3rd Year/LAB EXAM 3RD YEAR/Econometrics/Heteroscedasticity")
data = read.table("Table 11.3.txt")
Y = data$V1
X = data$V2
reg = lm(Y~X)
summary(reg)
results = summary(reg)
##Park test
Ui = results$residuals
lnUi_sq = log(Ui**2)
lnXi = log(X)
reg_2 = lm(lnUi_sq~lnXi)
summary(reg_2)
2. Glejser Test
setwd("D:/3rd Year/LAB EXAM 3RD YEAR/Econometrics/Heteroscedasticity")
data = read.table("Table 11.3.txt")
Y = data$V1
X = data$V2
reg = lm(Y~X)
summary(reg_1)
results = summary(reg_1)
Ui = results$residuals
Ui_abs = abs(Ui)
##Glejser test
X1 = X
X2 = sqrt(X)
X3 = 1/X
X4 = 1/sqrt(X)
reg_1 = lm(Ui_abs~X1)
summary(reg_1)
reg_2 = lm(Ui_abs~X2)
summary(reg_2)
reg_3 = lm(Ui_abs~X3)
summary(reg_3)
reg_4 = lm(Ui_abs~X4)
summary(reg_4)
reg = lm(Y~X)
results = summary(reg)
ui = results$residuals
abs_ui = abs(ui)
Ru = rank(abs_ui)
Ry = rank(Y)
di_2 = (Ru - Ry)**2
rs = 1-6*((sum(di_2)/(n*(n**2-1))))
n = 30
##Test
num = rs*sqrt(n-2)
denum = sqrt(1-rs**2)
t = num/denum
a = 0.05 #level of significance
Critical_val = qt(a/2, 28, lower.tail = TRUE) ##Because here t is negative value, lower.tail = TRUE.
P_val = pt(t, 28, lower.tail = TRUE)
4. Goldfield-Quandt Test
library(tidyverse)
data("mtcars")
attach(mtcars)
head(mtcars)
y = mpg
x = cyl
data = data.frame(y, x)
dim(data)
d = data[order(data$x),]
n = 32
c=6
central_observation = c((n/2 - 2):(n/2 + 3))
new_d = d[-central_observation,]
dim(new_d)
G1 = new_d[1:13,]
G2 = new_d[14:26,]
m1 = lm(y ~ x, G1)
RSS1 = deviance(m1)
m2 = lm(y ~ x, G2)
RSS2 = deviance(m2)
k=2
df1 = (n-c)/2 - k
df2 = (n-c)/2 - k
lambda = (RSS1/df1)/(RSS2/df2)
lambda
qf(0.05,11,11,lower.tail = F)
5. Breusch-Pagan-Godfrey Test
library(tidyverse)
data("mtcars")
attach(mtcars)
head(mtcars)
y = mpg
x = cyl
data = data.frame(y,x)
dim(data)
reg_2 = lm(pi ~ x)
ESS = sum((predict(reg_2) - mean(pi))**2)
big_theta = ESS/2
m=2
pchisq(big_theta, m-1,lower.tail = F)
##Using library
library(lmtest)
bptest(reg, studentize = F)
6. White’s General Heteroscedasticity Test
library(tidyverse)
data("mtcars")
attach(mtcars)
head(mtcars)
y = mpg
x2 = cyl
x3 = disp
data = data.frame(y, x2, x3)
x2_2 = x2**2
x3_2 = x3**2
x2x3 = x2*x3
WG = n*R_sq
k=6
qchisq(0.05, k-1, lower.tail = F)
##Using library
library(lmtest)
bptest(reg_new)
❖ Autocorrelation R Codes
1. Durbin h Test
setwd("D:/3rd Year/LAB EXAM 3RD YEAR/Econometrics/Autocorrelation")
data = read.table("Table 12.4.txt")
colnames(data) = c("Year", "Y", "X")
dim(data)
##Regression
reg = lm(data$Y ~ data$X+data$Y_1)
r = summary(reg)
coef = coef(summary(reg))[,2]
var_beta3 = coef[3]**2
##Durbin h test
library(lmtest)
DW = dwtest(reg)
d = as.numeric(DW$statistic)
phro = 1 - d/2
n = 46
h = phro*sqrt(n/(1-n*var_beta3))
reg = lm(data$Y~data$X)
r = summary(reg)
##Durbin Watson d
ui = r$residuals
ui_1 = ui[2:10]
ui_2 = ui[1:9]
ui_3 = ui[1:10]
num = sum((ui_1-ui_2)**2)
denum = sum(ui_3**2)
d = num/denum
##Another Method
library(lmtest)
dwtest(reg)