কীভাবে পো ব্যবহারের প্রক্রিয়াটি অনুমান করবেন? (বা: কীভাবে এনএইচপোইসন প্যাকেজটি ব্যবহার করবেন?)


15

আমার কাছে ইভেন্টগুলির একটি ডাটাবেস রয়েছে (অর্থাত্ তারিখের একটি পরিবর্তনশীল) এবং এর সাথে সংযুক্ত covariates।

ইভেন্টগুলি অ-স্টেশনারি পোইসন প্রক্রিয়া দ্বারা উত্পন্ন হয় যার সাথে প্যারামিটারটি কিছু সংখ্যক কোয়ারিয়েটের অজানা (তবে সম্ভবত লিনিয়ার) ফাংশন হয়।

আমি মনে করি NHPoisson প্যাকেজটি কেবল এই উদ্দেশ্যেই বিদ্যমান; তবে 15 ঘন্টা ব্যর্থ গবেষণার পরেও আমি এটি ব্যবহার করার উপায় সম্পর্কে এখনও কাছে নই।

হেক, আমি এমনকি উভয় রেফারেন্স বই পড়ার চেষ্টা করেছি: কোলস, এস। (2001)। চরম মানগুলির পরিসংখ্যানগত মডেলিংয়ের একটি ভূমিকা। স্প্রিঙ্গের। কেসেলা, জি এবং বার্গার, আরএল, (2002)। পরিসংখ্যান অনুমান. ব্রুকস / কোল।

FitPP.fun এর ডকুমেন্টেশনের একক উদাহরণটি আমার সেটআপে ফিট করে না বলে মনে হয়; আমার চরম মূল্য নেই! আমি খালি ঘটনা আছে।

কেউ আমার পরামিতি সঙ্গে একটি পইসন প্রক্রিয়া ঝুলানো সহজ উদাহরণ সাহায্য করুন করতে পারেন একক covariate সঙ্গে , এবং ধৃষ্টতা, যে ? আমি এবং অনুমান করতে আগ্রহী । আমি ইভেন্টের সময়ের সাথে একটি দ্বি-কলামের ডেটা সেট সরবরাহ করি (যাক বলে নেওয়া যাক, কিছু স্বেচ্ছাসেবী সময়ের পরে সেকেন্ডে পরিমাপ করা হবে ) এবং কোভারিয়েট মান সহ অন্য একটি কলাম ?λএক্সλ=λ0+ +αএক্সλ0αটি0এক্স


আগ্রহীদের জন্য, আমি ব্যবহারযোগ্যতা উন্নত করতে এই গ্রন্থাগারের পুনর্লিখনের জন্য কাজ করছি। github.com/statwonk/NHPoisson
স্ট্যাটওয়ঙ্ক

উত্তর:


15

স্থির পোয়সন প্রক্রিয়া ফিটিং

সবার আগে এটি অনুধাবন করা গুরুত্বপূর্ণ, এনএইচপোসাইনের কী ধরণের ইনপুট ডেটা প্রয়োজন।

সর্বাগ্রে, এনএইচপোসাইনের ইভেন্টের মুহুর্তগুলির সূচকগুলির একটি তালিকা প্রয়োজন । যদি আমরা সময়ের ব্যবধানে এবং সময়ের ব্যবধানে সংখ্যার ইভেন্টগুলি রেকর্ড করি, তার চেয়ে আমাদের অবশ্যই এটি তারিখের একক কলামে অনুবাদ করতে হবে, সম্ভবত যে বিরতিগুলি রেকর্ড করা হয়েছে তার চেয়ে সম্ভবত তারিখগুলি "গন্ধযুক্ত" করা উচিত।

λ

λ=1

lambda=1/60 #1 event per minute
time.span=60*60*24 #24 hours, with time granularity one second

aux<-simNHP.fun(rep(lambda,time.span))

simNHP.funসিমুলেশন করে তোলে। আমরা পেতে ব্যবহার করি , সিমুলেটেড ইভেন্ট ফায়ারিংয়ের মুহুর্তের সূচকগুলিরaux$posNH সাথে একটি পরিবর্তনশীল । আমরা দেখতে পারি `দৈর্ঘ্য (aux $ posNH) পরীক্ষা করে আমাদের প্রায় 60 * 24 = 1440 ইভেন্ট রয়েছে।

λfitPP.fun

out<-fitPP.fun(posE=aux$posNH,n=time.span,start=list(b0=0)) # b0=0 is our guess at initial value for optimization, which is internally made with `nlminb` function

λ>0fitPP

সুতরাং আমরা আসলে যা করি তা হ'ল আমরা দ্বিপদী ইভেন্টগুলির দানাদার ক্রম সহ পোইসন প্রক্রিয়াটিকে আনুমানিকভাবে নির্ধারণ করি , প্রতিটি ইভেন্ট সময়ের এক ইউনিট বিস্তৃত হয়, যে পদ্ধতিতে পোসন বিতরণকে আইনে দ্বিপদী বিতরণের সীমা হিসাবে দেখা যায় বিরল ঘটনা

একবার আমরা এটি বুঝতে পারলে বাকিটি অনেক সহজ (কমপক্ষে আমার জন্য)।

λbetaexp(coef(out)[1])NHPoissonλλ

একটি নন-স্টেশনারি পইসন প্রক্রিয়া ফিটিং

NHPoisson নিম্নলিখিত মডেল ফিট করে:

λ=মেপুঃ(পিটিβ)

পিλ

এবার আসি নন-স্টেশনারি পোইসন প্রক্রিয়াটি।

time.span=60*60*24 #24 hours, with time granularity one second
all.seconds<-seq(1,time.span,length.out=time.span)
lambdas=0.05*exp(-0.0001*all.seconds) #we can't model a linear regression with NHPoisson. It must have the form with exp.
aux<-simNHP.fun(lambdas)

ঠিক আগের মতোই, aux$posNHআমাদের ইভেন্টগুলি সূচকগুলি দিত, তবে এবার আমরা লক্ষ্য করব, সময়ের সাথে ঘটনার তীব্রতা তাত্পর্যপূর্ণভাবে হ্রাস পাচ্ছে। এবং এই হ্রাসের হারটি আমরা অনুমান করতে চাই এমন একটি প্যারামিটার।

out<-fitPP.fun(tind=TRUE,covariates=cbind(all.seconds),
        posE=aux$posNH,
        start=list(b0=0,b1=0),modSim=TRUE)

এটি লক্ষ করা গুরুত্বপূর্ণ, আমাদের all.secondsএকটি covariate হিসাবে রাখা প্রয়োজন , না lambdas। সূত্রপাত / লগারিটিমাইজেশন দ্বারা অভ্যন্তরীণভাবে সম্পন্ন করা হয় fitPP.fun। বিটিডাব্লু, পূর্বাভাসিত মানগুলি বাদে, ফাংশনটি ডিফল্টভাবে দুটি গ্রাফ তৈরি করে।

শেষ অংশটি মডেল বৈধতার জন্য একটি সুইস-ছুরি ফাংশন globalval.fun

aux<-globalval.fun(obFPP=out,lint=2000,
        covariates=cbind(all.seconds),typeI='Disjoint',
        typeRes='Raw',typeResLV='Raw',resqqplot=FALSE)

অন্যান্য জিনিসের মধ্যে, ফাংশনটি সময়কে অন্তরগুলিতে বিভক্ত করে, প্রতিটি lintনমুনা দীর্ঘ, সুতরাং অপরিশোধিত গ্রাফ তৈরি করা সম্ভব যা পর্যবেক্ষণের তীব্রতার সাথে পূর্বাভাসের তীব্রতার তুলনা করে।


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

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

λআমি(টি)=মেপুঃ(একটিআমি+ +টি)আমি

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

পিগুলিএনএইচ,এন=টিআমিমিগুলিপিএকটিএন,টিএকটি=0)RRRআমিএনআমিটিপিপিতোমার দর্শন লগ করাএন(পিগুলি=একটিতোমার দর্শন লগ করাএক্সposNH, n = সময়.span, বিটা = 0): আর্গুমেন্ট "শুরু" অনুপস্থিত, কোনও ডিফল্ট নয়
ভাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.