আর এর সাথে লজিস্টিক রিগ্রেশনে সহগের গণনা করুন


18

একাধিক লিনিয়ার রিগ্রেশনটিতে নিম্নলিখিত সূত্র সহ সহকারীটি খুঁজে পাওয়া সম্ভব।

b=(XX)1(X)ওয়াই

beta = solve(t(X) %*% X) %*% (t(X) %*% Y) ; beta

এই ক্ষেত্রে:

> y <- c(9.3, 4.8, 8.9, 6.5, 4.2, 6.2, 7.4, 6, 7.6, 6.1)
> x0 <- c(1,1,1,1,1,1,1,1,1,1) 
> x1 <-  c(100,50,100,100,50,80,75,65,90,90)
> x2 <- c(4,3,4,2,2,2,3,4,3,2)
> Y <- as.matrix(y)
> X <- as.matrix(cbind(x0,x1,x2))

> beta = solve(t(X) %*% X) %*% (t(X) %*% Y);beta
         [,1]
x0 -0.8687015
x1  0.0611346
x2  0.9234254
> model <- lm(y~+x1+x2) ; model$coefficients
(Intercept)          x1          x2 
 -0.8687015   0.0611346   0.9234254 

আমি চাই যে লজিস্টিক রিগ্রেশনটির জন্য একই "ম্যানুয়াল" পদ্ধতিতে বিটা কীভাবে গণনা করা যায়। অবশ্যই যেখানে y হবে 1 বা 0 হবে ধরে নিই আমি লগইট লিঙ্কের সাহায্যে দ্বিপদী পরিবারটি ব্যবহার করছি।


1
প্রশ্ন আসলে জিজ্ঞাসা ইতিমধ্যে এ যাকে জাহির করা হয়েছে stats.stackexchange.com/questions/949/... । আপনি যে প্রশ্নটি জিজ্ঞাসা করতে চেয়েছিলেন তার উত্তর এখানে দেওয়া উচিত।
হোয়বার

উত্তর:


26

লিনিয়ার রিগ্রেশন মডেলটিতে ওএলএসের অনুমানকারীটি সম্পত্তিটি বদ্ধ আকারে উপস্থাপন করা যায় এমন ক্ষেত্রে খুব বিরল, এটি কোনও ফাংশনের অপ্টিমাইজার হিসাবে প্রকাশ করার প্রয়োজন ছাড়াই। এটি অবশ্য কোনও ফাংশনের একটি অপ্টিমাইজার - স্কোয়ার ফাংশনের অবশিষ্টাংশ যোগ - এবং এটি হিসাবে গণনা করা যায়।

লজিস্টিক রিগ্রেশন মডেলের এমএলই যথাযথভাবে সংজ্ঞায়িত লগ-সম্ভাবনা ফাংশনটির অপ্টিমাইজার, তবে যেহেতু এটি কোনও বন্ধ ফর্ম এক্সপ্রেশনটিতে পাওয়া যায় না, তাই এটি অবশ্যই অপটিমাইজার হিসাবে গণনা করতে হবে।

বেশিরভাগ পরিসংখ্যান অনুমানকারী কেবলমাত্র মানদণ্ডের ফাংশন বলে তথ্যের যথাযথ নির্মিত ফাংশনগুলির অনুকূলক হিসাবে প্রকাশযোগ্য। এই ধরনের অপ্টিমাইজারগুলির জন্য উপযুক্ত সংখ্যাসূচক অপ্টিমাইজেশন অ্যালগরিদম ব্যবহার প্রয়োজন। optim()কিছু সাধারণ উদ্দেশ্য অপ্টিমাইজেশন অ্যালগরিদম বা আরও বিশেষায়িত প্যাকেজগুলির মধ্যে একটি যেমন সরবরাহ করে ফাংশনটি ব্যবহার করে ফাংশনগুলির অপ্টিমাইজারগুলি গণনা করা যেতে পারে optimx। বিভিন্ন ধরণের মডেল এবং পরিসংখ্যানের মাপদণ্ডের জন্য কোন অপ্টিমাইজেশন অ্যালগরিদম ব্যবহার করা জেনে রাখা কী।

বর্গের লিনিয়ার রিগ্রেশন অবশিষ্টাংশের যোগফল

OLS ঔজ্জ্বল্যের প্রেক্ষাপটে মূল্নির্ধারক বর্গের সুপরিচিত অবশিষ্ট সমষ্টি অপটিমাইজার হিসেবে সংজ্ঞায়িত করা হয় ফাংশন:

β^=ARGসর্বনিম্নβ(ওয়াই-এক্সβ)'(ওয়াই-এক্সβ)=(এক্স'এক্স)-1এক্স'ওয়াই

স্কোয়ারের অবশিষ্টাংশের মতো একটি দ্বিগুণ স্বতন্ত্র, উত্তল ফাংশনের ক্ষেত্রে, বেশিরভাগ গ্রেডিয়েন্ট-ভিত্তিক অপটিমাইজার ভাল কাজ করে। এই ক্ষেত্রে, আমি বিএফজিএস অ্যালগরিদম ব্যবহার করব।

#================================================
# reading in the data & pre-processing
#================================================
urlSheatherData = "http://www.stat.tamu.edu/~sheather/book/docs/datasets/MichelinNY.csv"
dfSheather = as.data.frame(read.csv(urlSheatherData, header = TRUE))

# create the design matrices
vY = as.matrix(dfSheather['InMichelin'])
mX = as.matrix(dfSheather[c('Service','Decor', 'Food', 'Price')])

# add an intercept to the predictor variables
mX = cbind(1, mX)

# the number of variables and observations
iK = ncol(mX)
iN = nrow(mX)

#================================================
# compute the linear regression parameters as 
#   an optimal value
#================================================
# the residual sum of squares criterion function
fnRSS = function(vBeta, vY, mX) {
  return(sum((vY - mX %*% vBeta)^2))
}

# arbitrary starting values
vBeta0 = rep(0, ncol(mX))

# minimise the RSS function to get the parameter estimates
optimLinReg = optim(vBeta0, fnRSS,
                   mX = mX, vY = vY, method = 'BFGS', 
                   hessian=TRUE)

#================================================
# compare to the LM function
#================================================
linregSheather = lm(InMichelin ~ Service + Decor + Food + Price,
                    data = dfSheather)

এই ফলন:

> print(cbind(coef(linregSheather), optimLinReg$par))
                    [,1]         [,2]
(Intercept) -1.492092490 -1.492093965
Service     -0.011176619 -0.011176583
Decor        0.044193000  0.044193023
Food         0.057733737  0.057733770
Price        0.001797941  0.001797934

লজিস্টিক রিগ্রেশন লগ-সম্ভাবনা

লজিস্টিক রিগ্রেশন মডেলটিতে এমএলই-এর সাথে সম্পর্কিত মানদণ্ড কার্য লগ-সম্ভাবনা ফাংশন।

লগএলএন(β)=Σআমি=1এন(ওয়াইআমিলগΛ(এক্সআমি'β)+ +(1-ওয়াইআমি)লগ(1-Λ(এক্সআমি'β)))
যেখানে হ'ল লজিস্টিক ফাংশন। প্যারামিটারের অনুমানগুলি এই ফাংশনটির অপটিমাইজার are Λ()=1/(1+ +মেপুঃ(-))
β^=ARGসর্বোচ্চβলগএলএন(β)

আমি কীভাবে optim()পুনরায় বিএফজিএস অ্যালগরিদমকে নিযুক্ত করে ফাংশনটি ব্যবহার করে মানদণ্ড ফাংশনটি তৈরি এবং অনুকূলকরণ করব show

#================================================
# compute the logistic regression parameters as 
#   an optimal value
#================================================
# define the logistic transformation
logit = function(mX, vBeta) {
  return(exp(mX %*% vBeta)/(1+ exp(mX %*% vBeta)) )
}

# stable parametrisation of the log-likelihood function
# Note: The negative of the log-likelihood is being returned, since we will be
# /minimising/ the function.
logLikelihoodLogitStable = function(vBeta, mX, vY) {
  return(-sum(
    vY*(mX %*% vBeta - log(1+exp(mX %*% vBeta)))
    + (1-vY)*(-log(1 + exp(mX %*% vBeta)))
    ) 
  ) 
}

# initial set of parameters
vBeta0 = c(10, -0.1, -0.3, 0.001, 0.01) # arbitrary starting parameters

# minimise the (negative) log-likelihood to get the logit fit
optimLogit = optim(vBeta0, logLikelihoodLogitStable,
                   mX = mX, vY = vY, method = 'BFGS', 
                   hessian=TRUE)

#================================================
# test against the implementation in R
# NOTE glm uses IRWLS: 
# http://en.wikipedia.org/wiki/Iteratively_reweighted_least_squares
# rather than the BFGS algorithm that we have reported
#================================================
logitSheather = glm(InMichelin ~ Service + Decor + Food + Price,
                                  data = dfSheather, 
                         family = binomial, x = TRUE)

এই ফলন

> print(cbind(coef(logitSheather), optimLogit$par))
                    [,1]         [,2]
(Intercept) -11.19745057 -11.19661798
Service      -0.19242411  -0.19249119
Decor         0.09997273   0.09992445
Food          0.40484706   0.40483753
Price         0.09171953   0.09175369

সাবধান হিসাবে, নোটিকাল অপটিমাইজেশন অ্যালগরিদমগুলি যত্ন সহকারে ব্যবহারের প্রয়োজন হয় বা আপনি সমস্ত ধরণের রোগতাত্ত্বিক সমাধান দিয়ে শেষ করতে পারেন note যতক্ষণ না আপনি সেগুলি ভালভাবে বুঝতে পারবেন, উপলব্ধ প্যাকেজযুক্ত বিকল্পগুলি ব্যবহার করা সবচেয়ে ভাল যা আপনাকে কীভাবে সংখ্যার সাথে সংখ্যার তুলনা করতে হবে তা চিন্তা করার পরিবর্তে মডেলটি নির্দিষ্টকরণে মনোনিবেশ করতে দেয়।


1
@ টাকক্রাবর্তীর দুর্দান্ত কাজ, লগ-সম্ভাবনা ফাংশনটি ব্যবহার করে সহজ করা যেতে পারে-sum(vY%*%(mX%*%vBeta)-log(1+exp(mX%*%vBeta)))
মামুন বেনহেজাল

11

আপনি এখান থেকে যেতে পারবেন না। সাধারণ লিনিয়ার মডেল এবং লজিস্টিক মডেল উভয়ের সমাধান সম্পর্কিত সর্বাধিক সম্ভাবনা সমীকরণগুলি সমাধান করে, তবে কেবলমাত্র লিনিয়ার মডেলটির একটি বদ্ধ ফর্ম সমাধান রয়েছে।

আপনি যদি ম্যাককুল্লাগ এবং নেল্ডারের বইয়ের সাথে পরামর্শ করেন তবে আপনি কীভাবে লজিস্টিক ক্ষেত্রে (বা অন্যান্য সাধারণীকরণের মডেল) সমাধানগুলি পাওয়া যায় তা শিখতে পারেন। ফলস্বরূপ, সমাধানগুলি পুনরাবৃত্তভাবে উত্পাদিত হয়, যেখানে প্রতিটি পুনরাবৃত্তিতে একটি ওজনযুক্ত লিনিয়ার রিগ্রেশন সমাধান করা জড়িত। ওজনগুলি লিঙ্ক ফাংশনের উপর নির্ভর করে।


2
বা "পুনরাবৃত্তির সাথে সর্বনিম্ন স্কোয়ারগুলি
পুনরুদ্ধার করুন

বা সরাসরি এখানে: stats.stackexchange.com/questions/236676/…
kjetil b halvorsen
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.