লজিস্টিক রিগ্রেশন প্যারামিটার গণনা করার জন্য মুহুর্তগুলির সাধারণীকরণ পদ্ধতি (GMM) ব্যবহার করে


13

লজিস্টিক রিগ্রেশন-এর মতো অনুরূপ একটি রিগ্রেশনের সহগের গুণাগুলি গণনা করতে চাই (অন্য সহগের সাথে আসলে লজিস্টিক রিগ্রেশন: যখন দেওয়া যেতে পারে)। সহগের হিসাব করার জন্য আমি জিএমএম ব্যবহার করার কথা ভেবেছিলাম, তবে আমার যে মুহুর্তের পরিস্থিতি ব্যবহার করা উচিত তা আমি নিশ্চিত নই।

A1+e(b0+b1x1+b2x2+),
A

কেউ কি আমাকে এতে সহায়তা করতে পারে?

ধন্যবাদ!


আপনি যখন " A দেওয়া যেতে পারে " বলছেন , আপনার অর্থ কি এটি ব্যবহারকারী দ্বারা নির্দিষ্ট করা হয়েছে বা এটি মডেল দ্বারা অনুমান করা হয়েছে?
ম্যাক্রো

যেভাবেই হোক আমি এটিকে একটি ইনপুট (উদাহরণস্বরূপ = 0.25) হিসাবে রাখতে পারি বা সন্ধানের সহগগুলির মধ্যে একটি হতে পারি
user5497

এটি কি সাবজেক্টে সাবজেক্টে পরিবর্তিত হয় (যেমন এটি ডেটা) বা এটি সমস্ত পর্যবেক্ষণ জুড়ে একটি স্থির ধ্রুবক?
ম্যাক্রো

সমস্ত পর্যবেক্ষণ (যেমন
বি 0

2
জিএমএম এর পরিবর্তে সর্বাধিক সম্ভাবনা কেন ব্যবহার করবেন না?
ম্যাক্রো

উত্তর:


6

ধরে ধরে , এই মডেলটির সাথে বার্নোল্লি প্রতিক্রিয়া ভেরিয়েবল ওয়াই আই রয়েছেA1Yi

Pr(Yi=1)=A1+eXib,

যেখানে (এবং সম্ভবত একটি , তা একটি ধ্রুবক বা একটি প্যারামিটার হিসাবে গণ্য হবে উপর নির্ভর করে) লাগানো কোফিসিয়েন্টস এবং এক্স আমি পর্যবেক্ষণ জন্য ডেটা আমি । আমি ধরে নিই যে ইন্টারপেস টার্মটি হ'ল ডেটা ম্যাট্রিক্সে ধ্রুবক মান 1 সহ একটি ভেরিয়েবল যুক্ত করে পরিচালনা করা হয়েছে।bAXii

মুহুর্তের শর্তগুলি:

E[(YiA1+eXib)Xi]=0.

N

m=1Ni=1N[(YiA1+eXib)Xi]=0

mmb

A

dat <- as.matrix(cbind(data.frame(IsVersicolor = as.numeric(iris$Species == "versicolor"), Intercept=1), iris[,1:4]))
head(dat)
#      IsVersicolor Intercept Sepal.Length Sepal.Width Petal.Length Petal.Width
# [1,]            0         1          5.1         3.5          1.4         0.2
# [2,]            0         1          4.9         3.0          1.4         0.2
# [3,]            0         1          4.7         3.2          1.3         0.2
# [4,]            0         1          4.6         3.1          1.5         0.2
# [5,]            0         1          5.0         3.6          1.4         0.2
# [6,]            0         1          5.4         3.9          1.7         0.4

লজিস্টিক রিগ্রেশন ব্যবহার করে এখানে সহগের সংযোজন রয়েছে:

summary(glm(IsVersicolor~., data=as.data.frame(dat[,-2]), family="binomial"))
# Coefficients:
#              Estimate Std. Error z value Pr(>|z|)    
# (Intercept)    7.3785     2.4993   2.952 0.003155 ** 
# Sepal.Length  -0.2454     0.6496  -0.378 0.705634    
# Sepal.Width   -2.7966     0.7835  -3.569 0.000358 ***
# Petal.Length   1.3136     0.6838   1.921 0.054713 .  
# Petal.Width   -2.7783     1.1731  -2.368 0.017868 *  

(YiA1+eXib)Xii

moments <- function(b, X) {
  A <- 1
  as.vector(X[,1] - A / (1 + exp(-(X[,-1] %*% cbind(b))))) * X[,-1]
}

b

init.coef <- lm(IsVersicolor~., data=as.data.frame(dat[,-2]))$coefficients
library(gmm)
fitted <- gmm(moments, x = dat, t0 = init.coef, type = "iterative", crit = 1e-19,
              wmatrix = "optimal", method = "Nelder-Mead",
              control = list(reltol = 1e-19, maxit = 20000))
fitted
#  (Intercept)  Sepal.Length   Sepal.Width  Petal.Length   Petal.Width  
#      7.37849      -0.24536      -2.79657       1.31364      -2.77834  
# 
# Convergence code =  0 

0 এর কনভার্জেনশন কোডটি রূপান্তরিত পদ্ধতিটি নির্দেশ করে এবং পরামিতিগুলি লজিস্টিক রিগ্রেশন দ্বারা ফিরে আসা সমান।

momentEstim.baseGmm.iterativegmm:::.obj1মি'মিoptimgmm

gmm.objective <- function(theta, x, momentFun) {
  avg.moment <- colMeans(momentFun(theta, x))
  sum(avg.moment^2)
}
optim(init.coef, gmm.objective, x=dat, momentFun=moments,
      control = list(reltol = 1e-19, maxit = 20000))$par
#  (Intercept) Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
#    7.3784866   -0.2453567   -2.7965681    1.3136433   -2.7783439 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.