Open margeo9 opened 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)
----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)