"মডেল রূপান্তর করতে ব্যর্থ হয়েছে" লিটারে সতর্কতা ()


21

নিম্নলিখিত ডেটাসেটের সাহায্যে আমি দেখতে চেয়েছিলাম যে সাইটগুলি, seasonতু, সময়কাল এবং তাদের মিথস্ক্রিয়া সম্পর্কিত প্রতিক্রিয়া (প্রভাব) পরিবর্তন হয় কিনা। পরিসংখ্যান সম্পর্কিত কিছু অনলাইন ফোরাম আমাকে লিনিয়ার মিক্সড-এফেক্টস মডেলগুলির সাথে কাজ করার পরামর্শ দিয়েছিল, তবে সমস্যাটি হ'ল প্রতিলিপি যেহেতু প্রতিটি স্টেশনের মধ্যে এলোমেলোভাবে তৈরি করা হয়, তাই পরের মরসুমে ঠিক একই স্থান থেকে নমুনা সংগ্রহ করার আমার খুব কম সুযোগ থাকে (উদাহরণস্বরূপ, বর্ষার পরে s1 এর repl-1 বর্ষার মতো হতে পারে না)। এটি ক্লিনিকাল ট্রায়ালগুলির বিপরীতে (সাবজেক্টের মধ্যে ডিজাইন সহ) যেখানে আপনি একই বিষয়টিকে বারবার মরসুমে মাপেন। যাইহোক, সাইট এবং মরসুমটিকে এলোমেলো ফ্যাক্টর হিসাবে বিবেচনা করে আমি নিম্নলিখিত কমান্ডগুলি চালিত করে একটি সতর্কতা বার্তা পেয়েছি:

Warning messages:
1: In checkConv(attr(opt, "derivs"), optpar,ctrl=controlpar,ctrl=controlcheckConv, 
: unable to evaluate scaled gradient
2: In checkConv(attr(opt, "derivs"), optpar,ctrl=controlpar,ctrl=controlcheckConv, 
: Model failed to converge: degenerate Hessian with 1 negative eigenvalues

কেউ কি আমাকে সমস্যা সমাধানে সহায়তা করতে পারে? কোডগুলি নীচে দেওয়া হয়েছে:

library(lme4)
read.table(textConnection("duration season  sites   effect
                          4d    mon s1  7305.91
                          4d    mon s2  856.297
                          4d    mon s3  649.93
                          4d    mon s1  10121.62
                          4d    mon s2  5137.85
                          4d    mon s3  3059.89
                          4d    mon s1  5384.3
                          4d    mon s2  5014.66
                          4d    mon s3  3378.15
                          4d    post    s1  6475.53
                          4d    post    s2  2923.15
                          4d    post    s3  554.05
                          4d    post    s1  7590.8
                          4d    post    s2  3888.01
                          4d    post    s3  600.07
                          4d    post    s1  6717.63
                          4d    post    s2  1542.93
                          4d    post    s3  1001.4
                          4d    pre s1  9290.84
                          4d    pre s2  2199.05
                          4d    pre s3  1149.99
                          4d    pre s1  5864.29
                          4d    pre s2  4847.92
                          4d    pre s3  4172.71
                          4d    pre s1  8419.88
                          4d    pre s2  685.18
                          4d    pre s3  4133.15
                          7d    mon s1  11129.86
                          7d    mon s2  1492.36
                          7d    mon s3  1375
                          7d    mon s1  10927.16
                          7d    mon s2  8131.14
                          7d    mon s3  9610.08
                          7d    mon s1  13732.55
                          7d    mon s2  13314.01
                          7d    mon s3  4075.65
                          7d    post    s1  11770.79
                          7d    post    s2  4254.88
                          7d    post    s3  753.2
                          7d    post    s1  11324.95
                          7d    post    s2  5133.76
                          7d    post    s3  2156.2
                          7d    post    s1  12103.76
                          7d    post    s2  3143.72
                          7d    post    s3  2603.23
                          7d    pre s1  13928.88
                          7d    pre s2  3208.28
                          7d    pre s3  8015.04
                          7d    pre s1  11851.47
                          7d    pre s2  6815.31
                          7d    pre s3  8478.77
                          7d    pre s1  13600.48
                          7d    pre s2  1219.46
                          7d    pre s3  6987.5
                          "),header=T)->dat1


m1 = lmer(effect ~ duration + (1+duration|sites) +(1+duration|season),
          data=dat1, REML=FALSE)

@Ian_Fin। সম্পাদনার জন্য আপনাকে ধন্যবাদ। আসলে, আমি উপরের মতো আর কোডগুলি কীভাবে অন্তর্ভুক্ত করতে জানি না
সায়ামকুমার।

উত্তর:


47

ব্যর্থ রূপান্তর সম্পর্কে সতর্কবার্তা না পাওয়ার দিক থেকে আপনি যে সমস্যার মুখোমুখি হয়েছিলেন তা "সমাধান" করা সহজসাধ্য : আপনি ডিফল্ট BOBYQA অপটিমাইজার ব্যবহার করেন না বরং এর পরিবর্তে আপনি পূর্ববর্তী সংস্করণগুলিতে ডিফল্টরূপে নেল্ডার-মিড অপ্টিমাইজেশন রুটিন ব্যবহার করতে পছন্দ করেন 1.0.x। অথবা আপনি প্যাকেজটি ইনস্টল করেছেন optimxযাতে আপনি সরাসরি একটি এল-বিএফজিএস-বি রুটিন বা nlminb( ভার্চেরlme4 পূর্বে সংস্করণগুলির মতো একই 1) করতে পারেন। উদাহরণ স্বরূপ:

m1 = lmer(effect~duration+(1+duration|sites)+(1+duration|season), 
          data = dat1, REML = FALSE, 
          control = lmerControl(optimizer ="Nelder_Mead")
library(optimx)
m1 = lmer(effect~duration+(1+duration|sites)+(1+duration|season), 
          data = dat1, REML = FALSE, 
          control = lmerControl(
                           optimizer ='optimx', optCtrl=list(method='L-BFGS-B')))
m1 = lmer(effect~duration+(1+duration|sites)+(1+duration|season), 
          data = dat1, REML = FALSE, 
          control = lmerControl(
                           optimizer ='optimx', optCtrl=list(method='nlminb')))

সমস্ত কাজ ঠিক আছে (কোন সতর্কতা নেই)। আকর্ষণীয় প্রশ্নগুলি হ'ল:

  1. আপনি কেন এই সতর্কতাগুলি শুরু করেছিলেন এবং দিয়ে
  2. কেন আপনি যখন ব্যবহার করেছেন তখন আপনার REML = TRUEকোনও সতর্কতা নেই।

Succinctly, 1. আপনি ঐ সতর্কবার্তা পেয়েছেন কারণ আপনি সংজ্ঞায়িত durationএকটি নির্দিষ্ট প্রভাব সেইসাথে ফ্যাক্টর জন্য র্যান্ডম ঢাল উভয় sitesভাল হিসাবে হিসাবে season। আপনার সংজ্ঞায়িত opাল এবং ইন্টারসেপ্টগুলির মধ্যে পারস্পরিক সম্পর্কের অনুমান করার জন্য মডেলটি স্বাধীনতার ডিগ্রিগুলির কার্যকরীভাবে ছড়িয়ে পড়ে। আপনি যদি প্রান্তিক সরল মডেল ব্যবহার করেন তবে:

m1 = lmer(effect~duration+ (1+duration|sites) + (0+duration|season) + (1|season),
          data=dat1, REML = FALSE)

আপনি কোন রূপান্তর সমস্যা সম্মুখীন হবে। এই মডেলটি কার্যকরভাবে প্রতিটিটির জন্য নিরবিচ্ছিন্ন র্যান্ডম ইন্টারসেপ্ট এবং এলোমেলো slালু অনুমান করবে season

REML = FALSEতদতিরিক্ত , ২. আপনি যখন সংজ্ঞা দিয়েছেন আপনি সীমাবদ্ধ সর্বাধিক সম্ভাবনার পরিবর্তে সর্বাধিক সম্ভাবনাটি ব্যবহার করেছেন। আরএএমএল অনুমান করে সর্বোত্তম র্যান্ডম-ইফেক্টের বৈকল্পিক কাঠামোটি সন্ধান করার আগে স্থির প্রভাব এর প্রভাব "ফ্যাক্টর আউট" করার চেষ্টা করে (আরও বিশদ জন্য থ্রেড " কী" সীমাবদ্ধ সর্বাধিক সম্ভাবনা "এবং কখন ব্যবহার করা উচিত? " বিষয়টি সম্পর্কে তথ্য)। গুণগতভাবে এই পদ্ধতিটি মূলত LME মডেল সমীকরণের উভয় অংশকে ম্যাট্রিক্স দ্বারা গুণিত করে সম্পন্ন করা হয় যেমন , অর্থাৎ আপনি মূল এবং উভয়ই পরিবর্তন করেন দ্যy = X β + Z γ + ϵ K K X = 0 y K Y Z K Z Zএক্সY=এক্সβ+ +জেডγ+ +εকেকেএক্স=0YকেYজেড করতে । আমি দৃ strongly়ভাবে সন্দেহ করি যে এটি ডিজাইনের ম্যাট্রিক্স শর্ত সংখ্যাটি প্রভাবিত করেছে এবং এর ফলে আপনাকে সংখ্যক কঠোর স্থান থেকে বের করে এনে সহায়তা করেছে যা আপনি নিজেকে প্রথম স্থানে খুঁজে পেয়েছেন।কেজেডজেড

একটি চূড়ান্ত দ্রষ্টব্য হ'ল আমি নিশ্চিত নই যে এটি দিয়ে seasonএলোমেলো প্রভাব হিসাবে ব্যবহার করা বোধগম্য । সর্বোপরি কেবলমাত্র অনেকগুলি মরসুম রয়েছে তাই আপনি এগুলি স্থির প্রতিক্রিয়া হিসাবেও বিবেচনা করতে পারেন।


বিটিডাব্লু, সম্প্রদায়কে স্বাগতম!
usεr11852 বলছেন

1
@ সায়ামকুমার.আর: শীতল, আমি আনন্দিত যে আমি সাহায্য করতে পারলাম। আপনি যদি এই প্রশ্নের উত্তরটি বিশ্বাস করেন তবে উত্তরটি গ্রহণ করার বিষয়ে আপনি বিবেচনা করতে পারেন।
usεr11852

আপনাকে অনেক ধন্যবাদ!! তৃতীয় বৈকল্পিক - REML = FALSE, glmerControl(optimizer ='optimx', optCtrl=list(method='nlminb'))- আসলে রূপান্তর সমস্যার সমাধান glmer!
কৌতুহল

0

প্রশ্নটি প্রযুক্তিগত চেয়ে স্ট্যাটিস্টিকাল is প্রকৃতপক্ষে, আমি স্থির প্রভাবের পরিবর্তে একটি এলোমেলো প্রভাব মডেল ব্যবহার করেছি I আমি মনে করি যে কোনও একটি কারণকে এলোমেলো ফ্যাক্টর হিসাবে বিবেচনা করা উচিত কারণ আমাদের কমপক্ষে 5 বা 6 স্তর প্রয়োজন বা কোনও কারণকে এলোমেলো প্রভাব হিসাবে গণ্য করতে প্রতিলিপি তৈরি করা উচিত (দেখুন দেখুন) এখানে কোনও এলোমেলো প্রভাবের জন্য ন্যূনতম প্রস্তাবিত সংখ্যার গ্রুপ কী? )।

উপরের ডেটাসেটে কেবলমাত্র ত্রিভুজযুক্ত নমুনা / সাইট / মরসুম রয়েছে যা এলোমেলো প্রভাব মডেলের জন্য অপর্যাপ্ত। তথ্য সময়সীমার মধ্যে, 4 দিনের এবং 7 দিনের একই সময়ে চলমান দুটি পৃথক সমান্তরাল পরীক্ষার অন্তর্ভুক্ত। সুতরাং সময়কাল (4-দিন এবং 7-দিন) দ্বারা নির্ধারিত ডেটাগুলি ছুঁড়ে ফেলা এবং মৌসুম এবং সাইটগুলির সাথে প্রতিটি সময়কালের জন্য 2-উপায় আনোভা সম্পাদন করা কারণগুলি এখানে প্রভাব (প্রতিক্রিয়া পরিবর্তনশীল) মডেল করার জন্য যথেষ্ট হবে। মডেলটি নিম্নলিখিত হওয়া উচিত:

lm(day_4_effect~sites*season, data=dat1)

lm(day_7_effect~sites*season, data=dat1)

বোডো শীতকালীন ( http://www.bodowinter.com/tutorial/bw_LME_tutorial2.pdf ) এবং @ usεr11852 কে ধন্যবাদ, যিনি আমাকে সমস্যা সমাধানে সহায়তা করেছেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.