শ্রেণিবদ্ধ লিনিয়ার রিগ্রেশন করার জন্য স্ট্যান্ডার্ড অ্যালগরিদম?


9

শ্রেণিবদ্ধ লিনিয়ার রিগ্রেশন করার জন্য কি স্ট্যান্ডার্ড অ্যালগোরিদম (প্রোগ্রামগুলির বিপরীতে) রয়েছে? লোকেরা সাধারণত কেবল এমসিএমসি করেন বা আরও বিশেষায়িত, সম্ভবত আংশিকভাবে বন্ধ ফর্ম, অ্যালগরিদম?

উত্তর:


9

হার্ভে গোল্ডস্টিনের পুনরাবৃত্তিকে সাধারণের জন্য সর্বনিম্ন-স্কোয়ারগুলি (আইজিএলএস) অ্যালগরিদম রয়েছে এবং এটি ছোটখাটো পরিবর্তন, সীমাবদ্ধ পুনরাবৃত্তিকে জেনারেলাইজড ন্যূনতম স্কোয়ারস (আরআইজিএলএস) বলে, যা বৈকল্পিক পরামিতিগুলির নিরপেক্ষ অনুমান দেয়।

এই অ্যালগোরিদমগুলি এখনও পুনরাবৃত্ত, তাই বন্ধ ফর্ম নয়, তবে তারা এমসিএমসি বা সর্বাধিক সম্ভাবনার চেয়ে কম্পিউটেশনালি সহজ simp প্যারামিটারগুলি একত্রিত না হওয়া পর্যন্ত আপনি কেবল পুনরাবৃত্তি করুন।

  • গোল্ডস্টেইন এইচ। মাল্টিলেভেল মিশ্রিত লিনিয়ার-মডেল বিশ্লেষণ Iterative জেনারেলাইজড স্বল্প-স্কোয়ারগুলি ব্যবহার করে। বায়োমেটিকা 1986; 73 (1): 43-56। doi: 10.1093 / বায়োমেট / 73.1.43

  • গোল্ডস্টেইন এইচ। সীমাবদ্ধ নিরপেক্ষ আইট্রেটিভ লেস্ট-স্কোয়ার্স অনুমান Es বায়োমেটিকা 1989; 76 (3): 622-623। doi: 10.1093 / বায়োমেট / 76.3.622

এটি এবং বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য, দেখুন:


অবিশাস্য! ঠিক আমি খুঁজছেন ছিল কি.
জন সালভাটিয়ার

4

আর-এর lme4 প্যাকেজটি পুনরাবৃত্তভাবে সর্বনিম্ন স্কোয়্যারস (আইআরএলএস) ব্যবহার করে এবং শাস্তিযুক্ত পুনরাবৃত্তভাবে ন্যূনতম স্কোয়্যারস (পিআইআরএলএস) ব্যবহার করে। পিডিএফটি এখানে দেখুন:

http://rss.acs.unt.edu/Rdoc/library/lme4/doc/index.html


1
ডগলাস বেটস এবং স্টিভেন ওয়াকার একটি গিটহাব প্রকল্প তৈরি করেছেন যার লক্ষ্য উপরের পিআরএলএস অ্যালগরিদম বাস্তবায়নের জন্য খাঁটি আর কোড ব্যবহার করা। github.com/lme4/lme4pureR । আপনি যদি আর lmer()এর lme4প্যাকেজে বেস ফাংশনটি বিবেচনা করেন তবে আপনাকে সাধারণত সি ++ কোডের পুরো গুচ্ছটির মাধ্যমে পড়তে হবে এতে পিআরএলএসের প্রয়োগগুলি বুঝতে lmer()হবে (যা আমাদের মধ্যে যারা সি ++ প্রোগ্রামিংয়ে এতটা দক্ষ নন তাদের পক্ষে চ্যালেঞ্জিং হতে পারে)।
ক্রিস

1

এইচএলএম এর জন্য "কম্পিউটিং অ্যালগরিদম" এর জন্য আরেকটি ভাল উত্স (আবার আপনি তাদের এলএমএম-এর মতো স্পেসিফিকেশন হিসাবে দেখেন এমন পরিমাণে) হ'ল:

  • ম্যাককুলাচ, সি।, সেরেল, এস।, নিউহাউস, জে। (২০০৮)। লিনিয়ার এবং মিশ্রিত মডেলগুলি সাধারণীকরণ করা হয়। দ্বিতীয় সংস্করণ। উইলি। অধ্যায় 14 - কম্পিউটিং।

তারা এলএমএম গণনা করার জন্য তালিকার অ্যালগোরিদমে অন্তর্ভুক্ত রয়েছে:

  • ইএম অ্যালগরিদম
  • নিউটন রাফসন অ্যালগরিদম

জিএলএমএম-এর জন্য তারা তালিকাভুক্ত অ্যালগরিদমে অন্তর্ভুক্ত রয়েছে:

  • সংখ্যাসূচক চৌম্বক (জিএইচ চতুর্ভুজ)
  • ইএম অ্যালগরিদম
  • এমসিএমসি অ্যালগরিদম (যেমন আপনি উল্লেখ করেছেন)
  • স্টোকাস্টিক আনুমানিক অ্যালগরিদম
  • সিমুলেটেড সর্বাধিক সম্ভাবনা

জিএলএমএম-এর জন্য অন্যান্য অ্যালগরিদমে যেগুলি তাদের পরামর্শ দেয় সেগুলির মধ্যে রয়েছে:

  • দণ্ডিত অর্ধ-সম্ভাবনা পদ্ধতিগুলি
  • ল্যাপ্লেস আনুমানিক
  • বুটস্ট্র্যাপ পক্ষপাত সংশোধন সহ পিকিউএল / ল্যাপ্লেস

0

আপনি যদি এইচএলএমকে এক প্রকার রৈখিক মিশ্র মডেল হিসাবে বিবেচনা করেন তবে আপনি EM অ্যালগরিদম বিবেচনা করতে পারেন। নিম্নলিখিত কোর্সের নোটগুলির 22-23 পৃষ্ঠা মিশ্র মডেলের জন্য ক্লাসিক ইএম অ্যালগরিদম কীভাবে প্রয়োগ করতে হবে তা নির্দেশ করে:

http://www.stat.ucla.edu/~yuille/courses/stat153/emtutorial.pdf

###########################################################
#     Classical EM algorithm for Linear  Mixed Model      #
###########################################################
em.mixed <- function(y, x, z, beta, var0, var1,maxiter=2000,tolerance = 1e-0010)
    {
    time <-proc.time()
    n <- nrow(y)
    q1 <- nrow(z)
    conv <- 1
    L0 <- loglike(y, x, z, beta, var0, var1)
    i<-0
    cat("  Iter.       sigma0                 sigma1        Likelihood",fill=T)
    repeat {
            if(i>maxiter) {conv<-0
                    break}
    V <- c(var1) * z %*% t(z) + c(var0) * diag(n)
    Vinv <- solve(V)
    xb <- x %*% beta
    resid <- (y-xb)
    temp1 <- Vinv %*% resid
    s0 <- c(var0)^2 * t(temp1)%*%temp1 + c(var0) * n - c(var0)^2 * tr(Vinv)
    s1 <- c(var1)^2 * t(temp1)%*%z%*%t(z)%*%temp1+ c(var1)*q1 -
                                                c(var1)^2 *tr(t(z)%*%Vinv%*%z)
    w <- xb + c(var0) * temp1
    var0 <- s0/n
    var1 <- s1/q1
    beta <- ginverse( t(x) %*% x) %*% t(x)%*% w
    L1 <- loglike(y, x, z, beta, var0, var1)
    if(L1 < L0) { print("log-likelihood must increase, llikel <llikeO, break.")
                             conv <- 0
break
}
    i <- i + 1
    cat("  ", i,"  ",var0,"  ",var1,"  ",L1,fill=T)
    if(abs(L1 - L0) < tolerance) {break}  #check for convergence
    L0 <- L1
    }
list(beta=beta, var0=var0,var1=var1,Loglikelihood=L0)
}

#########################################################
#  loglike calculates the LogLikelihood for Mixed Model #
#########################################################
loglike<- function(y, x, z, beta, var0, var1)
}
{
n<- nrow(y)
V <- c(var1) * z %*% t(z) + c(var0) * diag(n)
Vinv <- ginverse(V)
xb <- x %*% beta
resid <- (y-xb)
temp1 <- Vinv %*% resid
(-.5)*( log(det(V)) + t(resid) %*% temp1 )
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.