শ্রেণিবদ্ধ লিনিয়ার রিগ্রেশন করার জন্য কি স্ট্যান্ডার্ড অ্যালগোরিদম (প্রোগ্রামগুলির বিপরীতে) রয়েছে? লোকেরা সাধারণত কেবল এমসিএমসি করেন বা আরও বিশেষায়িত, সম্ভবত আংশিকভাবে বন্ধ ফর্ম, অ্যালগরিদম?
শ্রেণিবদ্ধ লিনিয়ার রিগ্রেশন করার জন্য কি স্ট্যান্ডার্ড অ্যালগোরিদম (প্রোগ্রামগুলির বিপরীতে) রয়েছে? লোকেরা সাধারণত কেবল এমসিএমসি করেন বা আরও বিশেষায়িত, সম্ভবত আংশিকভাবে বন্ধ ফর্ম, অ্যালগরিদম?
উত্তর:
হার্ভে গোল্ডস্টিনের পুনরাবৃত্তিকে সাধারণের জন্য সর্বনিম্ন-স্কোয়ারগুলি (আইজিএলএস) অ্যালগরিদম রয়েছে এবং এটি ছোটখাটো পরিবর্তন, সীমাবদ্ধ পুনরাবৃত্তিকে জেনারেলাইজড ন্যূনতম স্কোয়ারস (আরআইজিএলএস) বলে, যা বৈকল্পিক পরামিতিগুলির নিরপেক্ষ অনুমান দেয়।
এই অ্যালগোরিদমগুলি এখনও পুনরাবৃত্ত, তাই বন্ধ ফর্ম নয়, তবে তারা এমসিএমসি বা সর্বাধিক সম্ভাবনার চেয়ে কম্পিউটেশনালি সহজ 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
এটি এবং বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য, দেখুন:
আর-এর lme4 প্যাকেজটি পুনরাবৃত্তভাবে সর্বনিম্ন স্কোয়্যারস (আইআরএলএস) ব্যবহার করে এবং শাস্তিযুক্ত পুনরাবৃত্তভাবে ন্যূনতম স্কোয়্যারস (পিআইআরএলএস) ব্যবহার করে। পিডিএফটি এখানে দেখুন:
lmer()
এর lme4
প্যাকেজে বেস ফাংশনটি বিবেচনা করেন তবে আপনাকে সাধারণত সি ++ কোডের পুরো গুচ্ছটির মাধ্যমে পড়তে হবে এতে পিআরএলএসের প্রয়োগগুলি বুঝতে lmer()
হবে (যা আমাদের মধ্যে যারা সি ++ প্রোগ্রামিংয়ে এতটা দক্ষ নন তাদের পক্ষে চ্যালেঞ্জিং হতে পারে)।
এইচএলএম এর জন্য "কম্পিউটিং অ্যালগরিদম" এর জন্য আরেকটি ভাল উত্স (আবার আপনি তাদের এলএমএম-এর মতো স্পেসিফিকেশন হিসাবে দেখেন এমন পরিমাণে) হ'ল:
তারা এলএমএম গণনা করার জন্য তালিকার অ্যালগোরিদমে অন্তর্ভুক্ত রয়েছে:
জিএলএমএম-এর জন্য তারা তালিকাভুক্ত অ্যালগরিদমে অন্তর্ভুক্ত রয়েছে:
জিএলএমএম-এর জন্য অন্যান্য অ্যালগরিদমে যেগুলি তাদের পরামর্শ দেয় সেগুলির মধ্যে রয়েছে:
আপনি যদি এইচএলএমকে এক প্রকার রৈখিক মিশ্র মডেল হিসাবে বিবেচনা করেন তবে আপনি 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 )
}