Rotina referente ao seguinte vĂ­deo no YouTube: https://youtu.be/czRZrRg7sQQ

library(wooldridge)

data(mroz)

dados_q1_l8 <- subset(mroz, inlf == 1)


f_wald <- function(R, c1, reg){
  
  if(is.vector(R)){
    R <- t(as.matrix(R))
  }
  
  c1 <- as.matrix(c1)
  
  b_mqo <- reg$coefficients
  cov_mqo <- vcov(reg)
  
  Est.F <- 
    t(R %*% b_mqo - c1) %*% 
    solve(R %*% cov_mqo %*% t(R)) %*% 
    (R %*% b_mqo - c1) / nrow(R)
  
  n <- length(reg$residuals)
  
  kp1 <- length(b_mqo)
  
  p_value_F <- pf(
    q = Est.F,
    df1 = nrow(R),
    df2 = n - kp1,
    lower.tail = F
  )
  
  ## resultados ##
  
  return(
    list(
      "Est.F" = Est.F,
      "valor-p" = p_value_F
    )
  )
}

reg1 <- lm(
  formula = lwage ~ 1 + educ + exper + expersq + age,
  data = dados_q1_l8
)

# letra a

R1_a <- rbind(
  c(0, 1, 0, 0, 0),
  c(0, 0, 1, 0, 0),
  c(0, 0, 0, 1, 0),
  c(0, 0, 0, 0, 1)
)

c1_a <- as.matrix(rep(0, nrow(R1_a)))

resp1_a <- f_wald(R1_a, c1_a, reg1)

# letra b

R1_b <- rbind(
  c(0, 0, 1, 0, 0),
  c(0, 0, 0, 1, 0)
)

c1_b <- as.matrix(c(0.05, 0))

resp1_b <- f_wald(R1_b, c1_b, reg1)

# letra c

R1_c <- rbind(
  c(0, 0, 1, 1, 0)
)

c1_c <- as.matrix(c(0.05))

resp1_c <- f_wald(R1_c, c1_c, reg1)