การคำนวณที่มีประสิทธิภาพเชิงคำนวณของโหมดหลายตัวแปร


14

เวอร์ชั่นสั้น: อะไรคือวิธีที่มีประสิทธิภาพมากที่สุดในการคำนวณโหมดของชุดข้อมูลหลายมิติตัวอย่างจากการแจกแจงแบบต่อเนื่อง

รุ่นยาว: ฉันมีชุดข้อมูลที่ฉันต้องการประเมินโหมดของ โหมดไม่ตรงกับค่าเฉลี่ยหรือค่ามัธยฐาน ตัวอย่างที่แสดงด้านล่างนี้เป็นตัวอย่าง 2D แต่โซลูชัน ND น่าจะดีกว่า: ป้อนคำอธิบายรูปภาพที่นี่

ปัจจุบันวิธีการของฉันคือ

  1. คำนวณการประมาณความหนาแน่นของเคอร์เนลบนกริดเท่ากับความละเอียดที่ต้องการของโหมด
  2. มองหาจุดที่คำนวณมากที่สุด

เห็นได้ชัดว่านี่เป็นการคำนวณ KDE ในจุดที่ไม่น่าเชื่อถือซึ่งเป็นสิ่งที่ไม่ดีโดยเฉพาะอย่างยิ่งหากมีจุดข้อมูลจำนวนมากที่มีมิติสูงหรือฉันคาดหวังความละเอียดที่ดีในโหมด

ทางเลือกอื่นคือใช้การจำลองการอบอ่อนอัลกอริธึมทางพันธุกรรม ฯลฯ เพื่อค้นหาจุดสูงสุดทั่วโลกใน KDE

คำถามคือว่ามีวิธีการคำนวณที่ชาญฉลาดกว่านี้หรือไม่?


ฉันไม่รู้คำตอบ แต่คิดว่านี่เป็นคำถามที่ดี มันยากสำหรับฉันที่จะคิดถึงวิธีการที่ดีกว่าวิธีที่คุณพูดถึง ฉันคิดว่ามีความแตกต่างระหว่างวิธีการประมาณค่าเคอร์เนลแบบ univariate เมื่อเทียบกับหลายตัวแปร หนังสือเล่มนี้โดย David Scott อาจมีประโยชน์เกี่ยวกับวิธีการหลายตัวแปรในเคอร์เนลแม้ว่าฉันจะไม่แน่ใจว่าเขาพูดถึงการล่าสัตว์สูงสุด amazon.com/…
Michael R. Chernick

คำตอบ:


7

KKf(x)Kf(x)K

นอกจากนี้ยังมีการอธิบายอย่างละเอียดเกี่ยวกับอัลกอริทึมในรายการบล็อกนี้


3
อ้างอิงนีแลร์รี่ Wasserman เมื่อเร็ว ๆ นี้มีการโพสต์สั้นอธิบายเทคนิคในรายละเอียดน้อยกว่าThe Amazing Mean เปลี่ยนอัลกอริทึม
Andy W

1
@AndyW โทรดี! โพสต์ของ Larry Wasserman (และบล็อกของเขาโดยทั่วไป) ยอดเยี่ยมมาก จากความคิดเห็นฉันพบการอ้างอิงเชิงประกอบเกี่ยวกับการเปลี่ยนค่าเฉลี่ย, การเปลี่ยนค่ากลางและตัวแปร QuickShift
Sameer

2
ขอบคุณ ไม่สามารถบอกได้ว่าอันนั้นเร็วที่สุดหรือไม่ แต่แน่นอนว่ามันหาค่าสูงสุดในท้องที่ นี่คือบางส่วนของแปลงวิถีและอัตราการเรียนรู้เกี่ยวกับข้อมูลการสังเคราะห์บางคน
tkw954

9

หากความสนใจหลักของคุณคือปัญหา 2 มิติฉันจะบอกว่าการประมาณความหนาแน่นของเคอร์เนลเป็นตัวเลือกที่ดีเพราะมันมีคุณสมบัติเชิงเส้นกำกับที่ดี (โปรดสังเกตว่าฉันไม่ได้บอกว่ามันดีที่สุด) ดูตัวอย่าง

Parzen, E. (1962) การประมาณของฟังก์ชั่นความหนาแน่นของความน่าจะเป็นและโหมด พงศาวดารของคณิตศาสตร์สถิติ 33: 1065-1076

de Valpine, P. (2004) Monte Carlo โอกาสเกิดสภาพพื้นที่โดยการถ่วงน้ำหนักหลังเคอร์เนลประมาณความหนาแน่น วารสารสมาคมสถิติอเมริกัน 99: 523-536

สำหรับมิติที่สูงขึ้น (4 +) วิธีนี้คือจริงๆช้าเนื่องจากความยากลำบากที่รู้จักกันดีในการประมาณเมทริกซ์แบนด์วิดธ์ที่ดีที่สุดเห็น

ตอนนี้ปัญหาเกี่ยวกับคำสั่งksในแพคเกจKDEก็คือตามที่คุณกล่าวถึงว่ามันประเมินความหนาแน่นในตารางเฉพาะซึ่งสามารถ จำกัด ได้มาก ปัญหานี้สามารถแก้ไขได้ถ้าคุณใช้แพคเกจKDEสำหรับการประเมินเมทริกซ์แบนด์วิดธ์ที่ใช้เช่นHscvดำเนินการมีความหนาแน่นประมาณ Kernel optimแล้วเพิ่มฟังก์ชั่นนี้โดยใช้คำสั่ง Rนี้แสดงอยู่ด้านล่างโดยใช้ข้อมูลจำลองและเคอร์เนลเสียนใน

rm(list=ls())

# Required packages
library(mvtnorm)
library(ks)

# simulated data
set.seed(1)
dat = rmvnorm(1000,c(0,0),diag(2))

# Bandwidth matrix
H.scv=Hlscv(dat)

# [Implementation of the KDE](http://en.wikipedia.org/wiki/Kernel_density_estimation)
H.eig = eigen(H.scv)
H.sqrt = H.eig$vectors %*% diag(sqrt(H.eig$values)) %*% solve(H.eig$vectors)
H = solve(H.sqrt)
dH = det(H.scv)

Gkde = function(par){
return( -log(mean(dmvnorm(t(H%*%t(par-dat)),rep(0,2),diag(2),log=FALSE)/sqrt(dH))))
}

# Optimisation
Max = optim(c(0,0),Gkde)$par
Max

ตัวประมาณรูปร่างที่ จำกัด มักจะเร็วกว่าตัวอย่างเช่น

Cule, ML, Samworth, RJ และ Stewart, MI (2010) การประมาณค่าความน่าจะเป็นสูงสุดของหลายมิติความหนาแน่นของการเข้าสู่ระบบเว้า วารสารสมาคมสถิติรอยัล B 72: 545–600

แต่พวกเขาแหลมเกินไปสำหรับจุดประสงค์นี้

4

วิธีการอื่น ๆ ที่คุณอาจพิจารณาใช้คือ: ปรับส่วนผสมที่มีหลายตัวแปรของ normals (หรือการแจกแจงแบบยืดหยุ่นอื่น ๆ ) หรือ

Abraham, C. , Biau, G. และ Cadre, B. (2003) การประมาณค่าที่เรียบง่ายของรูปแบบของความหนาแน่นของหลายตัวแปร วารสารสถิติแคนาดา 31: 23–34

ฉันหวังว่านี่จะช่วยได้.


0

เมื่อเร็ว ๆ นี้เราได้ตีพิมพ์บทความแนะนำตัวประมาณค่าโหมดที่สอดคล้องอย่างรวดเร็ว

PS Ruzankin และ AV Logachov (2019) ตัวประมาณโหมดแบบเร็วในพื้นที่หลายมิติ สถิติและจดหมายน่าจะเป็น

O(dn)dn

ฉันยังขอแนะนำตัวประมาณค่าโหมดความแปรปรวนขั้นต่ำใหม่จากรายงานล่าสุด

PS Ruzankin (2020) คลาสของตัวประมาณโหมด nonparametric การสื่อสารในสถิติ - การจำลองและการคำนวณ

O(dn2)nRd

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.