আর-তে একটি শূন্য-স্ফীত প্যারামিটারের ঘনত্বটি কীভাবে অনুমান করতে পারি?


10

আমার কাছে প্রচুর শূন্যের সাথে এমন একটি ডেটা সেট রয়েছে যা দেখতে দেখতে এটি:

set.seed(1)
x <- c(rlnorm(100),rep(0,50))
hist(x,probability=TRUE,breaks = 25)

আমি এর ঘনত্বের জন্য একটি লাইন আঁকতে চাই, তবে density()ফাংশনটি একটি চলমান উইন্ডো ব্যবহার করে যা এক্স এর নেতিবাচক মানগুলি গণনা করে।

lines(density(x), col = 'grey')

একটি density(... from, to)যুক্তি রয়েছে, তবে এগুলি কেবল গণনাটি কেটে যাবে বলে মনে হচ্ছে, উইন্ডোটি পরিবর্তন করবে না যাতে 0 এর ঘনত্বটি নীচের প্লটের দ্বারা দেখা যায় এমন ডেটার সাথে সামঞ্জস্যপূর্ণ:

lines(density(x, from = 0), col = 'black')

(যদি দ্বিখণ্ডিত পরিবর্তন করা হয় তবে আমি আশা করব যে ধূসররেখার চেয়ে কালো রেখার উচ্চ ঘনত্ব 0 হবে)

এই ফাংশনের বিকল্প রয়েছে যা শূন্যের ঘনত্বের আরও ভাল গণনা সরবরাহ করবে?

এখানে চিত্র বর্ণনা লিখুন

উত্তর:


14

ঘনত্বটি শূন্যের তুলনায় অসীম কারণ এটিতে একটি বিচ্ছিন্ন স্পাইক রয়েছে। জিরোদের অনুপাত ব্যবহার করে আপনার স্পাইকটি অনুমান করতে হবে এবং তারপরে ঘনত্বের ধনাত্মক অংশটি নির্বিঘ্নে ধরে নিয়ে অনুমান করতে হবে। বামদিকের শেষে কে-ডি-ই সমস্যা সৃষ্টি করবে কারণ এটি নেতিবাচক মানগুলিতে কিছুটা ওজন ফেলবে। একটি দরকারী পদ্ধতির মধ্যে রয়েছে লগগুলিতে রূপান্তর করা, কেডিএ ব্যবহার করে ঘনত্বের অনুমান করা এবং তারপরে ফিরে রূপান্তর করা। দেখুন ওয়ান্ড, Marron & Ruppert (JASA 1991) একটি রেফারেন্স জন্য।

নিম্নলিখিত আর ফাংশন রূপান্তরিত ঘনত্ব করবে:

logdensity <- function (x, bw = "SJ") 
{
    y <- log(x)
    g <- density(y, bw = bw, n = 1001)
    xgrid <- exp(g$x)
    g$y <- c(0, g$y/xgrid)
    g$x <- c(0, xgrid)
    return(g)
}

তারপরে নীচেরগুলি আপনার যে প্লটটি চান তা দেবে:

set.seed(1)
x <- c(rlnorm(100),rep(0,50))
hist(x,probability=TRUE,breaks = 25)
fit <- logdensity(x[x>0]) # Only take density of positive part
lines(fit$x,fit$y*mean(x>0),col="red") # Scale density by proportion positive
abline(v=0,col="blue") # Add spike at zero.

এখানে চিত্র বর্ণনা লিখুন


আপনার উত্তরের জন্য আপনাকে ধন্যবাদ, তবে আমি বিভ্রান্ত হয়ে পড়েছি- আপনি বলেছিলেন যে 'জিরো অনুপাত ব্যবহার করে স্পাইকটি অনুমান করুন' তবে এটিকে কোনও সীমানা ছাড়াই পরিকল্পনা করুন। স্পাইকের একটি পৃথক উচ্চতা আছে বা এটি অসীম, যদি পৃথক হয় তবে এটি কি ? পি(এক্স=0)
আবে

এটি একটি বিচ্ছিন্ন বিতরণ এবং একটি অবিচ্ছিন্ন বিতরণের মিশ্রণ। যখন ঘনত্ব হিসাবে পরিকল্পনা করা হয়, স্পাইকটি অসীম (আসলে একটি ডায়রাক ডেল্টা ফাংশন)। কখনও কখনও লোকেরা বিচ্ছিন্ন অংশটিকে সম্ভাব্য ভর ফাংশন হিসাবে প্লট করে (তাই স্পাইকটি উচ্চতা ) এবং ঘনত্ব ফাংশন হিসাবে অবিচ্ছিন্ন অংশ থাকে। এটি সম্ভবত আরও ভাল চাক্ষুষ করে তোলে তবে এটি দুটি পৃথক স্কেল জড়িত। পি(এক্স=0)
রব হ্যান্ডম্যান

এই কাজে আসছে। fyi: এটি উপস্থিত হয় যে, যদিও bw = "SJ" অপরিবর্তিত স্থানের ঘনত্বকে প্রভাবিত করে, লগডেনসিটি "এসজে" এবং ডিফল্ট "nrd0" ব্যবহার করে একই ... আমি এসজে রেফারেন্সটি পড়তে চলেছি: "শীদার এবং জোন্স (1991) কার্নেল ঘনত্বের অনুমানের জন্য একটি নির্ভরযোগ্য ডেটা-ভিত্তিক ব্যান্ডউইথ নির্বাচন পদ্ধতি "" jstor.org/stable/2345597
অ্যাবে

4

আমি রব হ্যান্ডম্যানের সাথে একমত হই যে আপনার আলাদাভাবে শূন্যদের নিয়ে ডিল করতে হবে। 'রিফ্লেকশন', 'রেনররমালাইজেশন' এবং 'রৈখিক সংমিশ্রণ' সহ সীমাবদ্ধ সমর্থন সহ একটি ভেরিয়েবলের কার্নেল ঘনত্বের অনুমানের সাথে কাজ করার কয়েকটি পদ্ধতি রয়েছে। এগুলি আর এর densityফাংশনে প্রয়োগ করা হয়েছে বলে মনে হয় না , তবে স্টেনার জন্য বেন জানের kdensপ্যাকেজে এটি উপলব্ধ ।


1

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

এছাড়াও এমন পদ্ধতি রয়েছে ( oldlogsplineফাংশন) যা ব্যবধান সীমাবদ্ধতার বিবেচনায় নেবে, সুতরাং যদি 0 টি সঠিক 0 না হয় তবে এটি গোলাকার হয় যাতে আপনি জানেন যে তারা 0 এবং কিছু অন্যান্য সংখ্যার (উদাহরণস্বরূপ একটি সনাক্তকরণের সীমা) এর মধ্যে মানগুলি উপস্থাপন করেন তবে আপনি ফিটিং ফাংশনে সেই তথ্য দিতে পারে।

অতিরিক্ত 0 টি যদি 0 এর মান হয় (বৃত্তাকার নয়) তবে স্পাইক বা পয়েন্টের ভর নির্ধারণ করা আরও ভাল পদ্ধতির, তবে লগস্প্লাইন অনুমানের সাথেও মিলিত হতে পারে।


0

আপনি ব্যান্ডউইথকে কম করার চেষ্টা করতে পারেন (নীল রেখার জন্য রয়েছে adjust=0.5), এখানে চিত্র বর্ণনা লিখুন

তবে সম্ভবত এই জাতীয় ডেটা ব্যবহারের জন্য কেডিএই সেরা পদ্ধতি নয়।


অন্য কোন পদ্ধতি আছে যা আপনি সুপারিশ করবেন?
আবে

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