আমি কীভাবে কোনও জিএলএমএম-এ স্থির প্রভাবগুলির গণনাটি দ্রুত করতে পারি?


9

আমি একটি সিমুলেশন অধ্যয়ন করছি যার জন্য জেনারেলাইজড রৈখিক মিশ্র মডেল থেকে প্রাপ্ত বুটস্ট্র্যাপিংয়ের প্রাক্কলন প্রয়োজন (আসলে, স্থির প্রভাবগুলির জন্য দুটি অনুমানের পণ্য, একটি জিএলএমএম থেকে এবং একটি এলএমএম থেকে) from অধ্যয়নটি ভাল করতে প্রতিটি সময় 1000 বা 1500 বুটস্ট্র্যাপের প্রতিলিপিগুলির সাথে প্রায় 1000 সিমুলেশনগুলির প্রয়োজন। এটি আমার কম্পিউটারে বেশ কয়েকটি সময় নেয় (অনেক দিন) takes

How can I speed up the computation of these fixed effects?

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

এম=α0+ +α1এক্স+ +ε1
ওয়াই*=β0+ +β1এক্স+ +β2এম+ +ε2
যেখানে y* এর অন্তর্নিহিত সুপ্ত অবিচ্ছিন্ন পরিবর্তনশীল ওয়াইএবং ত্রুটিগুলি iid নয়।
আমরা যে পরিসংখ্যান বুটস্ট্র্যাপ করতে চাই তা হ'লα1β2। সুতরাং, প্রতিটি বুটস্ট্র্যাপের প্রতিলিপিটির জন্য একটি এলএমএম এবং একটি জিএলএমএম লাগানো দরকার। আমার আর কোডটি (lme4 ব্যবহার করে)
    stat=function(dat){
        a=fixef(lmer(M~X+(X|person),data=dat))["X"]
        b=fixef(glmer(Y~X+M+(X+M|person),data=dat,family="binomial"))["M"]
        return(a*b)
    }

আমি বুঝতে পারি যে আমি একই অনুমান পেয়েছি α1 যদি আমি এটি কেবল একটি রৈখিক মডেল হিসাবে ফিট করি, যাতে কিছুটা সময় সাশ্রয় হয় তবে একই কৌশলটি কার্যকর হয় না β2।

আমার কি কেবল একটি দ্রুত কম্পিউটার কেনার দরকার? :)


1
@ বিবি বোতল ঘাড় এখানে কি? মূলত কি সময় নিচ্ছে Rprof।
— সানকুলসু

1
একটি উপায় হ'ল জিএলএমএম এর "মিশ্র" অংশটি উপেক্ষা করা। কেবল একটি সাধারণ জিএলএম ফিট করুন, অনুমানগুলি খুব বেশি বদলায় না, তবে তাদের স্ট্যান্ডার্ড ত্রুটিগুলি সম্ভবত হবে
— সম্ভাব্যতা ব্লগ

@probabilityislogic। আপনার মন্তব্য ছাড়াও, আমি আরও মনে করি, উত্তর অনেক আলাদা হবে কিনা তা গ্রুপের আকার এবং গ্রুপের স্বতন্ত্র আচরণের উপর নির্ভর করে। যেমন গেলম্যান এবং হিল বলেছেন: মিশ্র প্রভাবগুলির মডেল ফলাফলগুলি পুলিং এবং কোনও পুলিংয়ের মধ্যে নয়। (ওভ। এটি বায়েশিয়ার শ্রেণিবদ্ধ মডেলগুলির জন্য, তবে মিশ্র মডেলগুলি এটি করার একটি ধ্রুপদী উপায়))
— সানকুলসু

@ প্রোব্যাবিলিটিস্লোগিক: এটি এলএমএমের পক্ষে কাজ করে তবে এটি জিএলএমএম-এর জন্য ব্যর্থ বলে মনে হচ্ছে (অর্থাত্ আমি একই ডেটাতে অতিরিক্ত এম ছাড়িয়ে মডেল চালিয়েছি এবং উল্লেখযোগ্যভাবে পৃথক ফলাফল নিয়ে এসেছি)। অবশ্যই, যদি না গ্লোমার বাস্তবায়নে একটি ত্রুটি থাকে।
— বিআর

@ সানকুলসু: বাধাটি হ'ল জিএলএমএমের অনুমান, যা কয়েক সেকেন্ডের মধ্যে (বিশেষত কয়েকটি এলোমেলো প্রভাব সহ) পারে may তবে এটি 1000 * 1000 বার করুন এবং এটি গণনার 280 ঘন্টা। একটি জিএলএম ফিটিং করতে সময় লাগে প্রায় 1/100।
— বিআর

উত্তর:


4

এটি আরম্ভের মানগুলি নির্দিষ্ট করতে সহায়তা করবে, যদিও এটি কতটা জানা শক্ত। আপনি যেমন সিমুলেশন এবং বুটস্ট্র্যাপিং করছেন, আপনার 'সত্য' মানগুলি বা আন-বুটস্ট্র্যাপযুক্ত অনুমান বা উভয়ই জানা উচিত। start =বিকল্পগুলির মধ্যে এটি ব্যবহার করার চেষ্টা করুন glmer।

আপনি রূপান্তর ঘোষণার জন্য সহনশীলতাগুলি আপনার প্রয়োজনের তুলনায় আরও কঠোর কিনা তাও আপনি বিবেচনা করতে পারেন। lme4যদিও ডকুমেন্টেশন থেকে সেগুলি কীভাবে পরিবর্তন করা যায় তা আমি পরিষ্কার করছি না ।


4

নতুন কম্পিউটার কেনার আগে আরও দুটি সম্ভাবনাও বিবেচনা করুন।

  1. সমান্তরাল কম্পিউটিং - বুটস্ট্র্যাপিং সমান্তরালভাবে চালানো সহজ। যদি আপনার কম্পিউটারটি যুক্তিযুক্তভাবে নতুন হয় তবে আপনার কাছে সম্ভবত চারটি কোর রয়েছে। আর এর মাল্টিকোর লাইব্রেরি একবার দেখুন ।
  2. ক্লাউড কম্পিউটিং একটি সম্ভাবনা এবং যুক্তিসঙ্গত সস্তা। আমার সহকর্মী রয়েছে যারা আর স্ক্রিপ্টগুলি চালানোর জন্য অ্যামাজন ক্লাউড ব্যবহার করেছে। তারা দেখতে পেল যে এটি বেশ ব্যয়বহুল।

1
উত্তরের জন্য ধন্যবাদ. একরকম, আমি আমার দুটি কোর (আমার কম্পিউটার খুব নতুন নয়) এটিকে উপেক্ষা করেছি। আমার বহুদিন আগে মাল্টিকোরের দিকে নজর দেওয়া উচিত ছিল।
— বিআর

2

এটি সম্ভবত একটি দ্রুত কম্পিউটার হতে পারে। তবে এখানে একটি কৌশল যা কাজ করতে পারে।

এর একত্রীকরণ তৈরি করুন ওয়াই*, তবে কেবল শর্তযুক্ত ওয়াই, তারপরে সিমুলেটেডটিতে কেবল ওএলএস বা এলএমএম করুন ওয়াই* মান।

ধরা যাক আপনার লিঙ্ক ফাংশন হয় ছ(।)। এটি বলে যে আপনি কীভাবে সম্ভাবনা থেকে পানওয়াই=1 যাও ওয়াই* মান, এবং সম্ভবত লজিস্টিক ফাংশন ছ(z- র)=ঠণছ(z- র1-z- র)।

সুতরাং যদি আপনি ধরে নেন কোনও বর্নৌলি নমুনা বিতরণ ওয়াই→ওয়াই~বিইRএনণতোমার দর্শন লগ করাঠঠআমি(পি), এবং তারপরে সম্ভাবনার আগে জেফরিগুলি ব্যবহার করুন, আপনি এর জন্য একটি বিটা পোস্টেরিয়র পাবেন পি~বিইটিএকটি(ওয়াইণখগুলি+ +12,1-ওয়াইণখগুলি+ +12)। এগুলি থেকে সিমুলেট করা আলোর মতো হওয়া উচিত এবং এটি যদি না হয় তবে আপনার একটি দ্রুত কম্পিউটারের প্রয়োজন। আরও, নমুনাগুলি স্বতন্ত্র, সুতরাং এমসিএমসির মতো কোনও "রূপান্তর" ডায়াগনস্টিকগুলি পরীক্ষা করার দরকার নেই এবং আপনার সম্ভবত এতগুলি নমুনার প্রয়োজন নেই - আপনার মামলার জন্য ১০০ জরিমানা কাজ করতে পারে। দ্বিপদী থাকলেওয়াই'গুলি, তারপর শুধু প্রতিস্থাপন 1 উপরের উত্তরোত্তর সঙ্গে এনআমি, প্রতিটি জন্য দ্বিপদী পরীক্ষার সংখ্যা ওয়াইআমি।

সুতরাং আপনার সিমুলেটেড মানগুলির একটি সেট রয়েছে পিগুলিআমিমি। তারপরে আপনি এই মানগুলির প্রতিটিটিতে লিঙ্ক ফাংশনটি প্রয়োগ করেনওয়াইগুলিআমিমি=ছ(পিগুলিআমিমি)। একটি এলএমএম ফিট করুনওয়াইগুলিআমিমিযা সম্ভবত জিএলএমএম প্রোগ্রামের চেয়ে দ্রুত। আপনি মূলত মূল বাইনারি মানগুলি উপেক্ষা করতে পারেন (তবে সেগুলি মুছবেন না!) এবং কেবল "সিমুলেশন ম্যাট্রিক্স" দিয়ে কাজ করুন (এন×এস, কোথায় এন নমুনা আকার, এবং এস সিমুলেশন সংখ্যা)।

সুতরাং আপনার প্রোগ্রামে, আমি প্রতিস্থাপন করব ছমিঠইR() সঙ্গে ফাংশন ঠমিইR() ফাংশন, এবং ওয়াই একক একযোগে আপনি তারপরে এমন কিছু লুপ তৈরি করবেন যা প্রয়োগ করে ঠমিইR() প্রতিটি অনুকরণে ফাংশন করে এবং তারপরের গড় হিসাবে অনুমান হিসাবে নেয় takes খ। কিছুটা এইরকম

একটি=...
খ=0
ঘণ গুলি=1,...,এস
খইগুলিটি=ঠমিইR(ওয়াইগুলি...)
খ=খ+ +1গুলি(খইগুলিটি-খ)
ইএনঘ
Rইটিতোমার দর্শন লগ করাRএন(একটি*খ)

আমাকে কিছুটা পরিষ্কার করার দরকার হলে আমাকে জানান


উত্তরের জন্য ধন্যবাদ, এটি হজম করতে আমার কিছুটা সময় লাগবে (এবং আমার শনিবার রাতের জন্য আমার ইতিমধ্যে পরিকল্পনা রয়েছে)। এটি যথেষ্ট আলাদা যে এটি জিএলএমএম পদ্ধতির মত একই উত্তর দিলে তা আমার কাছে স্পষ্ট নয় তবে আমার এটি সম্পর্কে আরও চিন্তা করা দরকার।
— বিআর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.