2D তে কার্নেল ঘনত্বের প্রাক্কলনকারীকে সংহত করে


12

কেউ এই পদক্ষেপটি অনুসরণ করতে চাইলে আমি এই প্রশ্ন থেকে আসছি ।

মূলত আমার কাছে একটি ডেটা সেট রয়েছে বস্তুর সমন্বয়ে গঠিত যেখানে প্রতিটি বস্তুর সাথে একটি সংখ্যক পরিমাপ করা মান সংযুক্ত থাকে (এই ক্ষেত্রে দুটি):এনΩN

Ω=o1[x1,y1],o2[x2,y2],...,oN[xN,yN]

আমি একটি সম্ভাবনা নির্ধারণ করতে একটি উপায় প্রয়োজন নতুন বস্তু p[xp,yp] একাত্মতার Ω তাই আমি যে প্রশ্নে পরামর্শ দেওয়া হয় একটি সম্ভাব্যতা ঘনত্ব প্রাপ্ত f^ একটি কার্নেল ঘনত্ব মূল্নির্ধারক মাধ্যমে, যা আমি আমার বিশ্বাস ইতিমধ্যে আছে.

যেহেতু আমার লক্ষ্য এই 2 ডি ডেটা সেট \ ওমেগা সম্পর্কিত নতুন নতুন অবজেক্টের ( p[xp,yp] ) সম্ভাবনা অর্জন করা , তাই আমাকে পিডিএফ- টুপি-এফ " ওপরে " সমর্থনটির মানগুলি সংহত করতে বলা হয়েছিল ঘনত্বটি আপনি লক্ষ্য করেছেন তার চেয়ে কম "। "পালন" ঘনত্ব \ টুপি {চ} নতুন অবজেক্ট মূল্যায়ন পি : অর্থাত \ টুপি {চ} (x_p, y_p) । সুতরাং আমার সমীকরণটি সমাধান করা দরকার:Ωf^f^pf^(xp,yp)

x,y:f^(x,y)<f^(xp,yp)f^(x,y)dxdy

আমার 2D ডেটা সেটের পিডিএফ (পাইথনের স্ট্যাটাস.গুশিয়ান_কেডি মডিউলের মাধ্যমে প্রাপ্ত ) এর মতো দেখাচ্ছে:

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

যেখানে লাল বিন্দু আমার ডেটা সেটের প্লট করা নতুন অবজেক্ট উপস্থাপন করে ।p[xp,yp]

সুতরাং প্রশ্নটি হল: দেখতে যখন সীমাবদ্ধতার জন্য আমি কীভাবে উপরের অবিচ্ছেদ্য গণনা করতে পারি ?x,y:f^(x,y)<f^(xp,yp)


যোগ

আমি মন্টি কার্লো পদ্ধতিটি যে কোনও মন্তব্যে কাজ করেছি তার মধ্যে আমি কতটা ভাল উল্লেখ করেছি তা দেখার জন্য আমি কয়েকটি পরীক্ষা করেছি। এটি আমি পেয়েছি:

টেবিল

উভয় ব্যান্ডউইথের সাথে কম-বেশি একই ভিন্নতা দেখানো হওয়ায় মানগুলি কম ঘনত্ব অঞ্চলের ক্ষেত্রে কিছুটা আলাদা হয় বলে মনে হয়। সারণীর বৃহত্তম প্রকরণটি পয়েন্ট (x, y) = (2.4,1.5) এর জন্য ঘটে সিলভারম্যানের 2500 বনাম 1000 নমুনা মানের তুলনা করে যা এর পার্থক্য দেয় 0.0126বা ~1.3%। আমার ক্ষেত্রে এটি বেশিরভাগ ক্ষেত্রে গ্রহণযোগ্য হবে।

সম্পাদনা : আমি কেবল লক্ষ্য করেছি যে স্ক্রিটের 2 টি মাত্রায় এখানে দেওয়া সংজ্ঞা অনুযায়ী সিলভারম্যানের সমতুল্য।


2
আপনি কি লক্ষ্য করেছেন যে আপনার অনুমানকটি সর্বমোচনীয় নয়, তবে আপনি যে সুপারিশটি স্পষ্টভাবে অনুসরণ করছেন তা কেবল "ইউনিমোডাল" বিতরণে প্রযোজ্য? এর অর্থ এই নয় যে আপনি কিছু ভুল করছেন তবে এর উত্তরের অর্থ কী হতে পারে তা নিয়ে কিছুটা চিন্তাভাবনা করা উচিত।
whuber

হাই @ শুভর, আসলে এই প্রশ্নের উত্তরটি বলে যে এটি সর্বজনীন বিতরণের জন্য "ভাল আচরণ করা", তাই আমি ভেবেছিলাম যে এটি সম্ভবত কিছু সংশোধন করে আমার সমস্যা নিয়ে কাজ করতে পারে । "ভাল আচরণ করা" মানে কি পরিসংখ্যানগত জারগনে "সত্যই কাজ করে" (সৎ প্রশ্ন)? চিয়ার্স।
গ্যাব্রিয়েল

আমার মূল উদ্বেগ হ'ল কেডিএটি ব্যান্ডউইথের নির্বাচনের ক্ষেত্রে সংবেদনশীল হতে পারে এবং আমি আপনার অবিচ্ছেদ্য আশা করি, বিশেষত চিত্রের মধ্যে প্রদর্শিত প্রান্তিক জায়গাগুলির জন্য পছন্দটি খুব সংবেদনশীল হবে । (গণনা নিজেই, উপায় দ্বারা, একবার আপনি এর মতো রাস্টার ইমেজ তৈরি করার পরে সহজ: এটি চিত্রগুলির গড় মানের সাথে পয়েন্টগুলির মধ্যে সমানুপাতিক, যার মান "প্রোব" বিন্দুর চেয়ে কম।) আপনি যোগাযোগ করতে পারেন যুক্তিসঙ্গত ব্যান্ডউইদথের সম্পূর্ণ পরিসরের জন্য উত্তরটি গণনা করে দেখুন এবং দেখুন যে এটি কোনও পরিসরের পরিবর্তিত হয় কিনা range যদি না হয়, আপনি ভাল আছেন।
whuber

আমি সমাধানটির বিষয়ে মন্তব্য করব না, তবে ইন্টিগ্রেশনটি সহজ মন্টি কার্লো দ্বারা করা যেতে পারে: sample থেকে নমুনা পয়েন্টগুলি (এটি সহজ, যেহেতু কেডিই ঘনত্বের মিশ্রণ যা থেকে নমুনা দেওয়া সহজ), এবং গণনা সংহত অঞ্চলের অভ্যন্তরে পয়েন্টগুলির ভগ্নাংশ (যেখানে বৈষম্য ধারণ করে)। f^
জেন

আপনার ডেটাসেটে আপনার কত পর্যবেক্ষণ রয়েছে?
হংক ওওয়ে

উত্তর:


11

একটি সহজ উপায় হ'ল ইন্টিগ্রেশনের ডোমেনটিকে রাস্টারাইজ করা এবং ইন্টিগ্রালের সাথে একটি পৃথক স্বীকৃতি গণনা করা।

এখানে নজর রাখার জন্য কয়েকটি জিনিস রয়েছে:

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

  2. রাস্টার রেজোলিউশনের সাথে ফলাফলটি কিছুটা পৃথক হবে। রেজুলেশনটি ব্যান্ডউইথের একটি ছোট ভগ্নাংশ হওয়া দরকার। যেহেতু গণনার সময়টি রাস্টারগুলির কোষের সংখ্যার সাথে সমানুপাতিক, তাই উদ্দেশ্যযুক্তের তুলনায় মোটা রেজোলিউশন ব্যবহার করে কয়েকটি গণনা করতে প্রায় অতিরিক্ত অতিরিক্ত সময় লাগে না: পরীক্ষা করুন যে মোটা লোকদের ফলাফল ফলাফলের জন্য রূপান্তরিত হচ্ছে check সেরা রেজোলিউশন। যদি তা না হয় তবে একটি সূক্ষ্ম সমাধানের প্রয়োজন হতে পারে।

এখানে 256 পয়েন্টের একটি ডেটাসেটের জন্য একটি চিত্রণ দেওয়া হয়েছে:

চিত্র 1

পয়েন্টগুলি দুটি কর্নেল ঘনত্বের প্রাক্কলন অনুসারে কালো বিন্দু হিসাবে সুপারিশ করা হয়েছে। ছয়টি বড় লাল পয়েন্ট হ'ল "প্রোব" যেখানে আলগোরিদিমকে মূল্যায়ন করা হয়। এটি চারটি ব্যান্ডউইথের জন্য করা হয়েছে (1.8 (উল্লম্বভাবে) এবং 3 (অনুভূমিকভাবে), 1/2, 1 এবং 5 ইউনিটের মধ্যে একটি ডিফল্ট) 1000 দ্বারা 1000 কক্ষের রেজোলিউশনে। নিম্নলিখিত ছড়িয়ে ছিটিয়ে থাকা ম্যাট্রিক্স দেখায় যে এই ছয়টি প্রোব পয়েন্টগুলির জন্য ফলাফলগুলি কতটা দৃ strongly়তার সাথে নির্ভর করে, যা বিস্তৃত ঘনত্বকে কভার করে:

চিত্র ২

তারতম্য দুটি কারণে ঘটে। স্পষ্টতই ঘনত্বের অনুমানগুলি আলাদা হয়, একধরণের বৈচিত্রের প্রবর্তন করে। আরও গুরুত্বপূর্ণ, ঘনত্ব অনুমানের পার্থক্য যে কোনও একক ("প্রোব") পয়েন্টে বড় পার্থক্য তৈরি করতে পারে । পয়েন্টগুলির ক্লাস্টারগুলির মাঝারি ঘনত্ব "সীমান্ত" এর কাছাকাছি বৈচিত্রটি সর্বাধিক - ঠিক সেই জায়গাগুলিতে যেখানে এই গণনাটি সর্বাধিক ব্যবহৃত হতে পারে।

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


আর কোড

প্রথম কার্যকারিতাটির অর্ধ ডজন লাইনে অ্যালগরিদম থাকে f। এর ব্যবহার চিত্রিত করার জন্য, বাকী কোডটি পূর্ববর্তী চিত্রগুলি উত্পন্ন করে।

library(MASS)     # kde2d
library(spatstat) # im class
f <- function(xy, n, x, y, ...) {
  #
  # Estimate the total where the density does not exceed that at (x,y).
  #
  # `xy` is a 2 by ... array of points.
  # `n`  specifies the numbers of rows and columns to use.
  # `x` and `y` are coordinates of "probe" points.
  # `...` is passed on to `kde2d`.
  #
  # Returns a list:
  #   image:    a raster of the kernel density
  #   integral: the estimates at the probe points.
  #   density:  the estimated densities at the probe points.
  #
  xy.kde <- kde2d(xy[1,], xy[2,], n=n, ...)
  xy.im <- im(t(xy.kde$z), xcol=xy.kde$x, yrow=xy.kde$y) # Allows interpolation $
  z <- interp.im(xy.im, x, y)                            # Densities at the probe points
  c.0 <- sum(xy.kde$z)                                   # Normalization factor $
  i <- sapply(z, function(a) sum(xy.kde$z[xy.kde$z < a])) / c.0
  return(list(image=xy.im, integral=i, density=z))
}
#
# Generate data.
#
n <- 256
set.seed(17)
xy <- matrix(c(rnorm(k <- ceiling(2*n * 0.8), mean=c(6,3), sd=c(3/2, 1)), 
               rnorm(2*n-k, mean=c(2,6), sd=1/2)), nrow=2)
#
# Example of using `f`.
#
y.probe <- 1:6
x.probe <- rep(6, length(y.probe))
lims <- c(min(xy[1,])-15, max(xy[1,])+15, min(xy[2,])-15, max(xy[2,]+15))
ex <- f(xy, 200, x.probe, y.probe, lim=lims)
ex$density; ex$integral
#
# Compare the effects of raster resolution and bandwidth.
#
res <- c(8, 40, 200, 1000)
system.time(
  est.0 <- sapply(res, 
           function(i) f(xy, i, x.probe, y.probe, lims=lims)$integral))
est.0
system.time(
  est.1 <- sapply(res, 
           function(i) f(xy, i, x.probe, y.probe, h=1, lims=lims)$integral))
est.1
system.time(
  est.2 <- sapply(res, 
           function(i) f(xy, i, x.probe, y.probe, h=1/2, lims=lims)$integral))
est.2
system.time(
  est.3 <- sapply(res, 
           function(i) f(xy, i, x.probe, y.probe, h=5, lims=lims)$integral))
est.3
results <- data.frame(Default=est.0[,4], Hp5=est.2[,4], 
                      H1=est.1[,4], H5=est.3[,4])
#
# Compare the integrals at the highest resolution.
#
par(mfrow=c(1,1))
panel <- function(x, y, ...) {
  points(x, y)
  abline(c(0,1), col="Red")
}
pairs(results, lower.panel=panel)
#
# Display two of the density estimates, the data, and the probe points.
#
par(mfrow=c(1,2))
xy.im <- f(xy, 200, x.probe, y.probe, h=0.5)$image
plot(xy.im, main="Bandwidth=1/2", col=terrain.colors(256))
points(t(xy), pch=".", col="Black")
points(x.probe, y.probe, pch=19, col="Red", cex=.5)

xy.im <- f(xy, 200, x.probe, y.probe, h=5)$image
plot(xy.im, main="Bandwidth=5", col=terrain.colors(256))
points(t(xy), pch=".", col="Black")
points(x.probe, y.probe, pch=19, col="Red", cex=.5)

আশ্চর্যজনক উত্তর, যদিও আমি নিশ্চিত নই যে আমি Defaultএবং Hp5ব্যান্ডউইথগুলির অর্থ বুঝতে পারি (আমি ধরে নিই H1এবং H5বুঝি h=1এবং h=5) Hp5এর মান কি h=1/2? তা হলে কী Default?
গ্যাব্রিয়েল

1
আপনার বোঝাপড়াটি সঠিক। ("পি 5" এর অর্থ ".5"।) ডিফল্টটি kde2dব্যবহার করে স্বয়ংক্রিয়ভাবে গণনা করা হয় bandwidth.nrd। নমুনা তথ্যের জন্য এটি অনুভূমিক দিকের এবং উল্লম্ব দিকের সমান , পরীক্ষার এবং এর মানের মধ্যে প্রায় অর্ধেক পথ way লক্ষ্য করুন যে এই ডিফল্ট ব্যান্ডউইথগুলি পয়েন্টগুলি তাদের পয়েন্টের পরিমাণ ছাড়িয়ে মোট ঘনত্বের একটি প্রশংসনীয় অনুপাত রাখার জন্য যথেষ্ট বড়, যার কারণে আপনি যে সংহতকরণ অ্যালগরিদমটি ব্যবহার করতে পারেন তা নির্বিশেষে সেই পরিমাণটি প্রসারিত করা দরকার। 1.85 1 531.8515
whuber

সুতরাং আমি কি সঠিকভাবে বুঝতে পারছি যদি আমি বলি যে আমি ব্যান্ডউইথ বৃদ্ধি করি ফলে ফলাফলের পরিমাণও kdeবৃদ্ধি পায় (এবং সুতরাং আমাকে সংহতকরণ সীমাটি প্রসারিত করতে হবে)? <10%অবিচ্ছেদ্যের ফলস্বরূপ মানটির একটি ত্রুটি নিয়ে আমি বেঁচে থাকতে পারছি বলে স্কট রুল ব্যবহার সম্পর্কে আপনার কী ধারণা?
গ্যাব্রিয়েল

আমি মনে করি যেহেতু এই বিধিগুলি সম্পূর্ণ ভিন্ন উদ্দেশ্যে তৈরি করা হয়েছিল, আপনার সন্দেহ হওয়া উচিত যে তারা আপনার উদ্দেশ্যগুলির জন্য ভাল পারফরম্যান্স করতে পারে না, বিশেষত যদি এটি stats.stackexchange.com/questions/63263 এ দেওয়া পরামর্শ বাস্তবায়ন করতে হয় । আপনি কে-ই-র জন্য থাম্বের নিয়ম ব্যবহার করতে পারেন তা নিয়ে চিন্তিত হওয়া অকাল; পুরো পর্যায়ে এমনকি নির্ভরযোগ্যভাবে কাজ করবে কিনা এই পর্যায়ে আপনার গুরুত্ব সহকারে উদ্বিগ্ন হওয়া উচিত।
whuber

1
উপরের স্ক্র্যাচ করুন। আমি কি করতে যদি বাস্তবায়ন কাজ করছে এবং এমনকি পরিমাণে এটা কত ভাল কাজ করছে জানার একটা উপায় আছে। এটি কিছুটা জটিল এবং সময়সাপেক্ষ তবে এটি (সক্ষম হওয়া উচিত) আমি করতে পারি।
গ্যাব্রিয়েল

1

আপনার যদি শালীন সংখ্যক পর্যবেক্ষণ থাকে তবে আপনার কোনও সংহত করার দরকার নেই। বলুন আপনার নতুন বিন্দু । ধরে নিন আপনার ঘনত্বের অনুমানকারী ; ; পর্যবেক্ষণের সংখ্যা যোগ করুন যার জন্য এবং নমুনা আকার দ্বারা বিভক্ত করুন। এটি আপনাকে প্রয়োজনীয় সম্ভাব্যতার একটি সীমাবদ্ধতা দেয়। এক্স ( এক্স )< ( এক্স 0)x0f^xf^(x)<f^(x0)

এটি ধরে নিয়েছে যে "খুব ছোট" নয় এবং নিম্ন-ঘনত্বের অঞ্চলে শালীন অনুমান দেওয়ার জন্য আপনার নমুনার আকার যথেষ্ট বড় (এবং যথেষ্ট স্প্রেড-আউট) is 20000 মামলা বৃহৎ যথেষ্ট বলে মনে হচ্ছে না যদিও, bivariate জন্য।এক্সf^(x0)x


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