margeo9 / R-FOR-Econometrics

1 stars 0 forks source link

GMM #27

Open margeo9 opened 1 year ago

margeo9 commented 1 year ago

----2 stage GMM estimation

library(gmm)

데이터 불러오기 data <- read.csv("data.csv")

모멘트 조건 설정 moment_condition <- function(x, z, b){ y <- x %% b moment <- cbind(y - z %% b, z) return(moment) }

Two-stage GMM with HAC 추정 gmm_result <- gmm(moment_condition, x = data$x, z = data$z, wmatrix = "HAC", kernel = "Bartlett")

추정 결과 출력 summary(gmm_result)

-------혹은

library(gmm)

데이터 불러오기 data <- read.csv("data.csv")

모멘트 함수 정의 moment_1 <- function(beta, x, y) { return(y - x %*% beta) }

1단계 : 초기값으로 b1 추정 b1 <- lm(y ~ x, data = data)$coefficients

2단계 : 추정된 b1을 이용하여 1단계 모멘트 계산 moment_1_hat <- moment_1(beta = b1, x = data$x, y = data$y)

2단계 : 추정된 b1을 이용하여 2단계 GMM 추정 moment_2 <- function(beta, moment_1_hat, x) { return(t(moment_1_hat) %*% x) }

gmm_fit <- gmm(moment_1, moment_2, b1, x = data$x, y = data$y, vcov = "HAC")

추정된 파라미터와 표준오차 출력 summary(gmm_fit)

margeo9 commented 1 year ago

lterated GMM estimation

library(gmm)

데이터 불러오기 data <- read.csv("data.csv")

모멘트 조건 설정 moment_condition <- function(x, z, b){ y <- x %% b moment <- cbind(y - z %% b, z) return(moment) }

Iterated GMM 추정 gmm_result <- gmm.iterate(moment_condition, x = data$x, z = data$z, wmatrix = "HAC", kernel = "Bartlett")

추정 결과 출력 summary(gmm_result)