กลับไปหน้าบทความ

อ่าน 14 นาที

การประมาณความหนาแน่นเคอร์เนล

ใน ทางสถิติ การ ประมาณความหนาแน่นเคอร์เนล ( KDE ) คือการประยุกต์ใช้ การปรับ เรียบเคอร์เนล สำหรับ การประมาณความหนาแน่นความน่าจะเป็น กล่าว คือวิธีการ ที่ไม่ใช้พารามิเตอร์ ใน...

การประมาณความหนาแน่นเคอร์เนล

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

ในทางสถิติการประมาณความหนาแน่นเคอร์เนล ( KDE ) คือการประยุกต์ใช้ การปรับ เรียบเคอร์เนลสำหรับการประมาณความหนาแน่นความน่าจะเป็น กล่าว คือวิธีการที่ไม่ใช้พารามิเตอร์ ใน การประมาณฟังก์ชันความหนาแน่นความน่าจะเป็นของตัวแปรสุ่มโดยใช้เคอร์เนลเป็นน้ำหนัก KDE แก้ปัญหาการปรับเรียบข้อมูลพื้นฐานที่อนุมานเกี่ยวกับประชากรโดยอาศัยตัวอย่าง ข้อมูลที่มีจำนวนจำกัด ในบางสาขา เช่นการประมวลผลสัญญาณและเศรษฐศาสตร์เชิง ปริมาณ เรียกอีกอย่างว่า วิธี หน้าต่าง Parzen–Rosenblattตามชื่อของEmanuel ParzenและMurray Rosenblattซึ่งโดยทั่วไปแล้วได้รับการยกย่องว่าสร้างวิธีการนี้ขึ้นมาอย่างอิสระในรูปแบบปัจจุบัน[ 1 ] [ 2 ] หนึ่งในการประยุกต์ใช้ที่มีชื่อเสียงของการประมาณความหนาแน่นเคอร์เนลคือการประมาณ ความหนาแน่นส่วนขอบแบบมีเงื่อนไข ของคลาส ของข้อมูลเมื่อใช้ตัวจำแนกแบบเบย์แบบง่ายซึ่งสามารถปรับปรุงความแม่นยำในการทำนายได้[ 3 ]

คำนิยาม

ให้เป็นตัวอย่างอิสระและมีการกระจายเหมือนกัน ที่ดึงมาจากการแจกแจงแบบเอกตัวแปรที่มี ความหนาแน่น ที่ไม่ทราบค่า fที่จุดx ใดๆ เราสนใจที่จะประมาณรูปร่างของฟังก์ชันf นี้ ตัวประมาณความหนาแน่นเคอร์เนลของมันคือ โดยที่Kคือเคอร์เนลซึ่งเป็นฟังก์ชันที่ไม่เป็นลบ และh > 0คือ พารามิเตอร์ การปรับเรียบที่เรียกว่าแบนด์วิดท์หรือความกว้าง[ 3 ]เคอร์เนลที่มีตัวห้อยhเรียก ว่า เคอร์เนลแบบปรับขนาดและกำหนดเป็นK h ( x ) = 1/ชม.K ( x/ชม.โดยสัญชาตญาณแล้ว เราต้องการเลือกค่า hให้เล็กที่สุดเท่าที่ข้อมูลจะเอื้ออำนวย อย่างไรก็ตาม มักจะมีข้อแลกเปลี่ยนระหว่างอคติของตัวประมาณค่าและความแปรปรวนของมันเสมอ การเลือกแบนด์วิดท์จะกล่าวถึงในรายละเอียดเพิ่มเติมด้านล่าง

โดยทั่วไปมีการใช้ ฟังก์ชันเคอร์เนลหลายประเภทได้แก่ แบบเอกรูป แบบสามเหลี่ยม แบบไบเวท แบบไตรเวทแบบเอพาเนชนิคอฟ (พาราโบลา) แบบปกติ และอื่นๆ เคอร์เนลเอพาเนชนิคอฟเป็นเคอร์เนลที่ดีที่สุดในแง่ของข้อผิดพลาดกำลังสองเฉลี่ย[ 4 ​​]แม้ว่าการสูญเสียประสิทธิภาพจะน้อยสำหรับเคอร์เนลที่ระบุไว้ก่อนหน้านี้[ 5 ]เนื่องจากคุณสมบัติทางคณิตศาสตร์ที่สะดวก เคอร์เนลแบบปกติจึงมักถูกใช้ ซึ่งหมายความว่าK ( x ) = ϕ ( x )โดยที่ϕคือ ฟังก์ชันความหนาแน่น ปกติมาตรฐาน ตัวประมาณความ หนาแน่น เคอร์เนลจึงกลายเป็น โดยที่คือค่าเบี่ยงเบนมาตรฐานของตัวอย่าง

การสร้างการประมาณความหนาแน่นเคอร์เนลพบการตีความในสาขาอื่นนอกเหนือจากการประมาณความหนาแน่น[ 6 ]ตัวอย่างเช่น ในอุณหพลศาสตร์สิ่งนี้เทียบเท่ากับปริมาณความร้อนที่เกิดขึ้นเมื่อ วาง เคอร์เนลความร้อน (คำตอบพื้นฐานของสมการความร้อน ) ไว้ที่ตำแหน่งจุดข้อมูลx i แต่ละจุด วิธีการที่คล้ายกันนี้ใช้ในการสร้างตัวดำเนินการลาปลาสแบบไม่ต่อเนื่องบนกลุ่มจุดสำหรับการเรียนรู้แมนิโฟ ลด์ (เช่นแผนที่การแพร่กระจาย )

ตัวอย่าง

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

ตัวอย่าง 123456
ค่า −2.1−1.3-0.41.95.16.2

สำหรับการสร้างฮิสโตแกรม ขั้นแรก แกนแนวนอนจะถูกแบ่งออกเป็นช่วงย่อยหรือช่อง (bins) ซึ่งครอบคลุมช่วงของข้อมูล ในกรณีนี้คือหกช่อง แต่ละช่องมีความกว้าง 2 เมื่อใดก็ตามที่จุดข้อมูลตกอยู่ภายในช่วงนี้ จะมีการวางกล่องที่มีความสูง 1/12 ไว้ในตำแหน่งนั้น หากมีจุดข้อมูลมากกว่าหนึ่งจุดตกอยู่ภายในช่องเดียวกัน กล่องเหล่านั้นจะถูกวางซ้อนกัน

สำหรับการประมาณความหนาแน่นของเคอร์เนล เคอร์เนลปกติที่มีค่าเบี่ยงเบนมาตรฐาน 1.5 (แสดงด้วยเส้นประสีแดง) จะถูกวางไว้บนจุดข้อมูลx i แต่ละ จุด เคอร์เนลเหล่านี้จะถูกรวมเข้าด้วยกันเพื่อสร้างการประมาณความหนาแน่นของเคอร์เนล (เส้นโค้งสีน้ำเงินทึบ) ความเรียบของการประมาณความหนาแน่นของเคอร์เนล (เมื่อเทียบกับความไม่ต่อเนื่องของฮิสโตแกรม) แสดงให้เห็นว่าการประมาณความหนาแน่นของเคอร์เนลลู่เข้าสู่ความหนาแน่นที่แท้จริงได้เร็วกว่าสำหรับตัวแปรสุ่มต่อเนื่อง[ 7 ]

การเปรียบเทียบฮิสโตแกรม (ซ้าย) และการประมาณความหนาแน่นของเคอร์เนล (ขวา) ที่สร้างขึ้นโดยใช้ข้อมูลชุดเดียวกัน เคอร์เนลแต่ละตัวทั้งหกตัวแสดงด้วยเส้นประสีแดง การประมาณความหนาแน่นของเคอร์เนลแสดงด้วยเส้นสีน้ำเงิน จุดข้อมูลคือแผนภาพแบบ Rug Plot บนแกนแนวนอน
การเปรียบเทียบฮิสโตแกรม (ซ้าย) และการประมาณความหนาแน่นของเคอร์เนล (ขวา) ที่สร้างขึ้นโดยใช้ข้อมูลชุดเดียวกัน เคอร์เนลแต่ละตัวทั้งหกตัวแสดงด้วยเส้นประสีแดง การประมาณความหนาแน่นของเคอร์เนลแสดงด้วยเส้นสีน้ำเงิน จุดข้อมูลคือแผนภาพแบบ Rug Plotบนแกนแนวนอน

การเลือกแบนด์วิดท์

การประมาณความหนาแน่นเคอร์เนล (KDE) ด้วยแบนด์วิดท์ที่แตกต่างกันของตัวอย่างสุ่ม 100 จุดจาก1การแจกแจงปกติมาตรฐาน สีเทา: ความหนาแน่นจริง (ปกติมาตรฐาน) สีแดง: KDE ที่ h=0.05 สีดำ: KDE ที่ h=0.337 สีเขียว: KDE ที่ h=2

แบนด์วิดท์ของเคอร์เนลเป็นพารามิเตอร์อิสระที่มีอิทธิพลอย่างมากต่อค่าประมาณที่ได้ เพื่อแสดงให้เห็นถึงผลกระทบนี้ เราจึงใช้ตัวอย่างสุ่ม จำลอง จาก1 การแจกแจงปกติ มาตรฐาน (แสดงด้วยจุดสีน้ำเงินในกราฟแบบ Rug Plotบนแกนแนวนอน) เส้นโค้งสีเทาคือความหนาแน่นที่แท้จริง (ความหนาแน่นปกติที่มีค่าเฉลี่ย 0 และความแปรปรวน 1) ในทางเปรียบเทียบ เส้นโค้งสีแดงนั้นปรับให้เรียบน้อยเกินไป เนื่องจากมีข้อมูลผิดปกติจำนวนมากที่เกิดจากการใช้แบนด์วิดท์h = 0.05 ซึ่งเล็กเกินไป เส้นโค้งสีเขียวนั้นปรับให้เรียบ มากเกินไป เนื่องจากการใช้แบนด์วิดท์h = 2ทำให้โครงสร้างพื้นฐานส่วนใหญ่ถูกบดบัง เส้นโค้งสีดำที่มีแบนด์วิดท์h = 0.337 ถือว่าปรับให้เรียบอย่างเหมาะสมที่สุด เนื่องจากค่าประมาณความหนาแน่นใกล้เคียงกับความหนาแน่นที่แท้จริง สถานการณ์สุดขั้วเกิดขึ้นในขีดจำกัด(ไม่มีการปรับให้เรียบ) ซึ่งค่าประมาณจะเป็นผลรวมของฟังก์ชันเดลต้าn ฟังก์ชัน ที่อยู่ตรงกลางที่พิกัดของตัวอย่างที่วิเคราะห์ ในอีกกรณีสุดขั้วหนึ่งค่าประมาณจะคงรูปทรงของเคอร์เนลที่ใช้ โดยมีจุดศูนย์กลางอยู่ที่ค่าเฉลี่ยของตัวอย่าง (เรียบเนียนอย่างสมบูรณ์)

เกณฑ์ความเหมาะสมที่ใช้กันทั่วไปในการเลือกพารามิเตอร์นี้คือฟังก์ชันความเสี่ยงL2 ที่คาดหวัง หรือเรียกอีกอย่างว่าค่าเฉลี่ยของข้อผิดพลาดกำลังสองแบบบูรณาการ :

ภายใต้สมมติฐานที่อ่อนแอเกี่ยวกับf และK ( โดยที่ fคือฟังก์ชันความหนาแน่นจริงซึ่งโดยทั่วไปไม่ทราบ) [ 1 ] [ 2 ]

โดยที่oคือสัญลักษณ์ o ตัวเล็กและnคือขนาดตัวอย่าง (ดังข้างต้น) AMISE คือ MISE แบบเชิงเส้นกำกับ กล่าวคือ พจน์นำสองพจน์

โดยที่สำหรับฟังก์ชันgและคืออนุพันธ์อันดับสองของและคือเคอร์เนล ค่าต่ำสุดของ AMISE นี้คือคำตอบของสมการเชิงอนุพันธ์ นี้

หรือ

ไม่ สามารถใช้สูตรAMISE หรือhAMISE ได้โดยตรง เนื่องจากเกี่ยวข้อง กับ ฟังก์ชันความหนาแน่นที่ไม่ทราบค่า หรืออนุพันธ์อันดับสองเพื่อเอาชนะความยากลำบากนั้น จึงได้มีการพัฒนาวิธีการอัตโนมัติที่ใช้ข้อมูลหลากหลายวิธีเพื่อเลือกแบนด์วิดท์ มีการศึกษาวิจัยหลายชิ้นเพื่อเปรียบเทียบประสิทธิภาพของวิธีการเหล่านี้[ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ]โดยมีความเห็นพ้องต้องกันโดยทั่วไปว่าตัวเลือกปลั๊กอิน[ 6 ] [ 15 ] [ 16 ]และตัวเลือกการตรวจสอบแบบไขว้[ 17 ] [ 18 ] [ 19 ]มีประโยชน์มากที่สุดสำหรับชุดข้อมูลที่หลากหลาย

การแทนที่แบนด์วิดท์h ใดๆ ที่มีลำดับเชิงอะซิมโทติก n −1/5เดียวกันกับh AMISEลงใน AMISE จะได้ว่าAMISE( h ) = O ( n −4/5 )โดยที่Oคือสัญกรณ์Oขนาดใหญ่สามารถแสดงได้ว่าภายใต้สมมติฐานที่อ่อนแอ จะไม่มีตัวประมาณค่าแบบไม่ใช้พารามิเตอร์ที่ลู่เข้าได้เร็วกว่าตัวประมาณค่าเคอร์เนล[ 20 ]โปรดทราบว่า อัตรา n −4/5 นั้น ช้ากว่า อัตราการลู่เข้า n −1 ทั่วไป ของวิธีการแบบพารามิเตอร์

หากแบนด์วิดท์ไม่คงที่ แต่เปลี่ยนแปลงไปตามตำแหน่งของค่าประมาณ (ตัวประมาณแบบบอลลูน) หรือตัวอย่าง (ตัวประมาณแบบจุด) จะได้วิธีการที่มีประสิทธิภาพเป็นพิเศษ เรียกว่าการประมาณความหนาแน่นเคอร์เนลแบบปรับได้ หรือแบบแบนด์วิดท์แปรผัน

การเลือกแบนด์วิดท์สำหรับการประมาณความหนาแน่นเคอร์เนลของการกระจายแบบหางหนักค่อนข้างยาก[ 21 ]

เครื่องมือประมาณแบนด์วิดท์แบบคร่าวๆ

หากใช้ฟังก์ชันพื้นฐานแบบเกาส์เซียนเพื่อประมาณ ข้อมูล ตัวแปรเดียวและความหนาแน่นพื้นฐานที่กำลังประมาณเป็นแบบเกาส์เซียน ตัวเลือกที่เหมาะสมที่สุดสำหรับh (นั่นคือแบนด์วิดท์ที่ทำให้ข้อผิดพลาดกำลังสองแบบบูรณาการเฉลี่ย น้อยที่สุด ) คือ: [ 22 ]

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

โดยที่IQRคือช่วงควาร์ไทล์

การเปรียบเทียบระหว่างแบนด์วิดท์แบบใช้หลักการคร่าวๆ กับแบนด์วิดท์แบบแก้สมการ
การเปรียบเทียบระหว่างแบนด์วิดท์แบบใช้หลักการคร่าวๆ กับแบนด์วิดท์แบบแก้สมการ

การปรับเปลี่ยนอีกอย่างที่จะช่วยปรับปรุงแบบจำลองคือการลดค่าตัวประกอบจาก 1.06 เหลือ 0.9 จากนั้นสูตรสุดท้ายจะเป็นดังนี้:

ขนาดตัวอย่างอยู่ ที่ไหน

การประมาณค่านี้เรียกว่าการประมาณค่าการกระจายแบบปกติการประมาณค่าแบบเกาส์เซียน หรือกฎทั่วไปของซิลเวอร์แมน [ 22 ] แม้ว่ากฎทั่วไปนี้จะคำนวณได้ง่าย แต่ควรใช้ด้วยความระมัดระวัง เนื่องจากอาจให้ค่าประมาณที่ไม่ถูกต้องอย่างมากเมื่อความหนาแน่นไม่ใกล้เคียงกับแบบปกติ ตัวอย่างเช่น เมื่อประมาณแบบจำลองการผสมเกาส์เซียน แบบสอง โหมดจากตัวอย่าง 200 จุด รูปทางด้านขวาแสดงความหนาแน่นที่แท้จริงและการประมาณค่าความหนาแน่นเคอร์เนลสองแบบ — แบบหนึ่งใช้แบนด์วิดท์ตามกฎทั่วไป และอีกแบบหนึ่งใช้แบนด์วิดท์แบบแก้สมการ[ 6 ] [ 16 ]การประมาณค่าตามแบนด์วิดท์ตามกฎทั่วไปนั้นเรียบเกินไปอย่างมีนัยสำคัญ

ความสัมพันธ์กับตัวประมาณความหนาแน่นของฟังก์ชันลักษณะเฉพาะ

เมื่อกำหนดตัวอย่าง( x 1 , x 2 , ..., x n ) แล้ว การประมาณฟังก์ชันลักษณะเฉพาะφ ( t ) = E[ e itX ] เป็นเรื่องปกติ เมื่อ ทราบฟังก์ชันลักษณะเฉพาะแล้ว ก็สามารถหาฟังก์ชันความหนาแน่นความน่าจะเป็นที่สอดคล้องกันได้โดยใช้ สูตร การแปลงฟูริเยร์ความยากลำบากอย่างหนึ่งในการใช้สูตรการผกผันนี้คือ มันนำไปสู่ปริพันธ์ที่ลู่เข้าสู่ค่าอนันต์ เนื่องจากค่าประมาณนั้นไม่น่าเชื่อถือสำหรับ ค่า t ที่มาก เพื่อหลีกเลี่ยงปัญหานี้ ตัวประมาณค่าจะถูกคูณด้วยฟังก์ชันลดทอนψ h ( t ) = ψ ( ht )ซึ่งมีค่าเท่ากับ 1 ที่จุดกำเนิดแล้วลดลงเหลือ 0 ที่อนันต์ “พารามิเตอร์แบนด์วิดท์” hควบคุมว่าเราพยายามลดทอนฟังก์ชันเร็วแค่ไหนโดยเฉพาะอย่างยิ่งเมื่อhมีค่าน้อยψ h ( t )จะมีค่าประมาณหนึ่งสำหรับช่วงค่าt ที่กว้าง ซึ่งหมายความว่าค่า ψ h ( t ) แทบจะไม่เปลี่ยนแปลงในบริเวณที่สำคัญที่สุดของค่า t

ตัวเลือกที่พบบ่อยที่สุดสำหรับฟังก์ชันψคือ ฟังก์ชันเอกรูปψ ( t ) = 1 {−1 ≤ t ≤ 1}ซึ่งหมายถึงการตัดช่วงการอินทิเกรตในสูตรผกผันให้เหลือ[−1/ h , 1/ h ]หรือฟังก์ชันเกาส์เซียนψ ( t ) = e −πt 2เมื่อเลือกฟังก์ชันψแล้ว สามารถใช้สูตรผกผันได้ และจะได้ค่าประมาณความหนาแน่น

โดยที่Kคือการแปลงฟูริเยร์ของฟังก์ชันหน่วงψดังนั้น ตัวประมาณความหนาแน่นเคอร์เนลจึงตรงกับตัวประมาณความหนาแน่นของฟังก์ชันลักษณะเฉพาะ

ลักษณะทางเรขาคณิตและโทโพโลยี

เราสามารถขยายความหมายของโหมด (ระดับโลก) ไปสู่ความหมายระดับท้องถิ่น และกำหนดโหมดระดับท้องถิ่นได้ดังนี้:

กล่าวคือคือชุดของจุดที่ฟังก์ชันความหนาแน่นมีค่าสูงสุดในระดับท้องถิ่น ตัวประมาณค่าตามธรรมชาติของคือปลั๊กอินจาก KDE [ 23 ] [ 24 ]โดยที่และคือเวอร์ชัน KDE ของและภายใต้สมมติฐานที่ไม่ซับซ้อน เป็นตัวประมาณค่าที่สอดคล้องกันของโปรดทราบว่าเราสามารถใช้อัลกอริธึมการเลื่อนค่าเฉลี่ย[ 25 ] [ 26 ] [ 27 ]เพื่อคำนวณตัวประมาณค่าในเชิง ตัวเลขได้

การนำไปใช้ทางสถิติ

ต่อไปนี้คือตัวอย่างซอฟต์แวร์ที่ใช้ในการประมาณความหนาแน่นของเคอร์เนล (ซึ่งไม่ใช่รายการทั้งหมด):

  • ในAnalyticaเวอร์ชัน 4.4 ตัวเลือก การปรับให้เรียบ (Smoothing)Pdf สำหรับผลลัพธ์ PDF ใช้ KDE และสามารถใช้งานได้จากนิพจน์ผ่าน ฟังก์ชันในตัว
  • ในภาษา C / C++นั้นFIGTreeเป็นไลบรารีที่ใช้สำหรับคำนวณค่าประมาณความหนาแน่นของเคอร์เนลโดยใช้เคอร์เนลแบบปกติ มีอินเทอร์เฟซสำหรับ MATLAB ให้ใช้งานได้ด้วย
  • ในภาษา C++ libagf เป็นไลบรารีสำหรับ การ ประมาณความหนาแน่นเคอร์เนลแบบแปรผัน
  • ในภาษา C++นั้นmlpackเป็นไลบรารีที่สามารถคำนวณ KDE โดยใช้เคอร์เนลที่แตกต่างกันหลายแบบ อนุญาตให้กำหนดค่าความคลาดเคลื่อนที่ยอมรับได้เพื่อการคำนวณที่เร็วขึ้น มีอินเทอร์เฟซ สำหรับ PythonและRให้ใช้งาน
  • ในภาษา C#และF#นั้นMath.NET Numericsเป็นไลบรารีโอเพนซอร์สสำหรับการคำนวณเชิงตัวเลข ซึ่งรวมถึงการประมาณความหนาแน่นของเคอร์เนล ด้วย
  • ในCrimeStatการประมาณความหนาแน่นเคอร์เนลถูกนำมาใช้โดยใช้ฟังก์ชันเคอร์เนลที่แตกต่างกันห้าแบบ ได้แก่ แบบปกติ แบบเอกรูป แบบกำลังสี่ แบบเลขชี้กำลังลบ และแบบสามเหลี่ยม มีทั้งรูทีนการประมาณความหนาแน่นแบบเคอร์เนลเดี่ยวและแบบเคอร์เนลคู่ การประมาณความหนาแน่นเคอร์เนลยังถูกใช้ในการแทรกสอดรูทีน Head Bang ในการประมาณฟังก์ชันความหนาแน่นการเดินทางไปยังสถานที่เกิดเหตุแบบสองมิติ และในการประมาณการเดินทางไปยังสถานที่เกิดเหตุแบบเบย์เซียนสามมิติ
  • ในELKIฟังก์ชันความหนาแน่นเคอร์เนลสามารถพบได้ในแพ็กเกจde.lmu.ifi.dbs.elki.math.statistics.kernelfunctions
  • ใน ผลิตภัณฑ์ ของ ESRIการสร้างแผนที่ความหนาแน่นของเคอร์เนลจะถูกจัดการจากกล่องเครื่องมือ Spatial Analyst และใช้เคอร์เนล Quartic (biweight)
  • ในโปรแกรม Excelสมาคมเคมีแห่งราชวงศ์อังกฤษได้สร้างส่วนเสริมเพื่อใช้ในการประมาณความหนาแน่นของเคอร์เนลโดยอิงจากเอกสาร สรุปทางเทคนิคฉบับที่ 4 ของคณะกรรมการวิธีการวิเคราะห์ ของพวกเขา
  • ในgnuplotการประมาณความหนาแน่นของเคอร์เนลจะถูกนำไปใช้โดยsmooth kdensityตัวเลือก โดยไฟล์ข้อมูลสามารถมีน้ำหนักและแบนด์วิดท์สำหรับแต่ละจุด หรือแบนด์วิดท์สามารถตั้งค่าโดยอัตโนมัติ[ 28 ]ตาม "กฎทั่วไปของซิลเวอร์แมน" (ดูด้านบน)
  • ในภาษา Haskellความหนาแน่นของเคอร์เนลถูกนำไปใช้ในแพ็กเกจ statistics
  • ในIGOR Proการประมาณความหนาแน่นของเคอร์เนลนั้นดำเนินการโดยใช้StatsKDEวิธีการคำนวณ (เพิ่มเข้ามาใน Igor Pro 7.00) แบนด์วิดท์สามารถกำหนดโดยผู้ใช้หรือประมาณโดยใช้วิธี Silverman, Scott หรือ Bowmann และAzzaliniประเภทของเคอร์เนลได้แก่: Epanechnikov, Bi-weight, Tri-weight, Triangular, Gaussian และ Rectangular
  • ในภาษา Javaแพ็ก เกจการเรียนรู้ของเครื่อง Wekaมีเมธอดweka.estimators.KernelEstimatorและเมธอดอื่นๆ อีกมากมาย
  • ในJavaScriptแพ็กเกจการแสดงภาพข้อมูลD3.jsมีแพ็กเกจ KDE ในแพ็กเกจ science.stats ของมัน
  • ในJMPแพลตฟอร์ม Graph Builder ใช้การประมาณความหนาแน่นเคอร์เนลเพื่อสร้างแผนภูมิเส้นชั้นความสูงและบริเวณความหนาแน่นสูง (HDR) สำหรับความหนาแน่นแบบสองตัวแปร และแผนภูมิไวโอลินและ HDR สำหรับความหนาแน่นแบบตัวแปรเดียว ตัวเลื่อนช่วยให้ผู้ใช้สามารถปรับแบนด์วิดท์ได้ นอกจากนี้ แพลตฟอร์ม Fit Y by X และ Distribution ยังให้การประมาณความหนาแน่นเคอร์เนลแบบสองตัวแปรและตัวแปรเดียวตามลำดับด้วย
  • ในภาษา Juliaการประมาณความหนาแน่นของเคอร์เนลนั้นถูกนำไปใช้ในแพ็กเกจKernelDensity.jl
  • ในKNIMEสามารถสร้างและพล็อตการแจกแจงความหนาแน่นเคอร์เนลแบบ 1 มิติและ 2 มิติได้โดยใช้โหนดจาก ส่วนสนับสนุนของชุมชน Vernalisเช่นโหนดพล็อตความหนาแน่นเคอร์เนลแบบ 1 มิติเป็นต้น การใช้งานพื้นฐานเขียนด้วยภาษาJava
  • ในMATLABการประมาณความหนาแน่นของเคอร์เนลจะถูกนำไปใช้ผ่านksdensityฟังก์ชัน (Statistics Toolbox) ตั้งแต่เวอร์ชัน 2018a ของ MATLAB สามารถระบุแบนด์วิดท์และเคอร์เนลสมูทเตอร์ได้ รวมถึงตัวเลือกอื่นๆ เช่น การระบุช่วงของความหนาแน่นของเคอร์เนล[ 29 ]หรืออีกทางหนึ่ง แพ็คเกจซอฟต์แวร์ MATLAB ฟรีที่ใช้เมธอดการเลือกแบนด์วิดท์อัตโนมัติ[ 6 ]ก็มีให้ใช้งานจาก MATLAB Central File Exchange สำหรับ
    • ข้อมูล 1 มิติ
    • ข้อมูล 2 มิติ
    • ข้อมูล n มิติเก็บถาวรเมื่อ 2017-02-09 ที่Wayback Machine กล่องเครื่องมือ MATLAB ฟรีพร้อมการใช้งานการถดถอยเคอร์เนล การประมาณความหนาแน่นเคอร์เนล การประมาณฟังก์ชันอันตรายเคอร์เนล และอื่นๆ อีกมากมายมีให้ใช้งานในหน้าเหล่านี้ (กล่องเครื่องมือนี้เป็นส่วนหนึ่งของหนังสือ[ 30 ] )
  • ในMathematicaการประมาณความหนาแน่นเคอร์เนลเชิงตัวเลขจะถูกนำไปใช้โดยฟังก์ชันSmoothKernelDistribution[ 31 ]และการประมาณเชิงสัญลักษณ์จะถูกนำไปใช้โดยใช้ฟังก์ชันKernelMixtureDistribution[ 32 ]ซึ่งทั้งสองอย่างนี้ให้แบนด์วิดท์ที่ขับเคลื่อนด้วยข้อมูล
  • ในMinitabสมาคมเคมีแห่งราชวงศ์ได้สร้างมาโครเพื่อเรียกใช้การประมาณความหนาแน่นของเคอร์เนลโดยอิงจากเอกสารสรุปทางเทคนิคของคณะกรรมการวิธีการวิเคราะห์ฉบับที่ 4 [ 33 ]
  • ในไลบรารี NAGการประมาณความหนาแน่นของเคอร์เนลจะถูกนำไปใช้ผ่านg10baรูทีน (มีให้ใช้งานทั้งในเวอร์ชัน Fortran [ 34 ]และ C [ 35 ]ของไลบรารี)
  • ในNuklei วิธีการหาความหนาแน่นของเคอร์เนลใน ภาษาC++จะเน้นที่ข้อมูลจากกลุ่มยูคลิดพิเศษ (Special Euclidean group )
  • ในOctaveการประมาณความหนาแน่นของเคอร์เนลนั้นดำเนินการโดยใช้kernel_densityตัวเลือก (จากแพ็กเกจ econometrics)
  • ในOriginสามารถสร้างกราฟความหนาแน่นเคอร์เนล 2 มิติได้จากส่วนติดต่อผู้ใช้ และสามารถใช้ฟังก์ชันสองฟังก์ชัน ได้แก่ Ksdensity สำหรับ 1 มิติ และ Ks2density สำหรับ 2 มิติ จากLabTalk ที่เก็บถาวรไว้เมื่อวันที่ 19 ตุลาคม 2014 ในWayback Machine , Pythonหรือโค้ดC ได้
  • ในภาษา Perlสามารถพบการใช้งานได้ในโมดูล Statistics-KernelEstimation
  • ในPHPสามารถพบการใช้งานได้ในไลบรารี MathPHP
  • ในPythonมีการใช้งานอยู่หลายแบบ ได้แก่ โมดูล pyqt_fit.kdeในแพ็คเกจ PyQt-Fit , SciPy ( scipy.stats.gaussian_kde), Statsmodels ( KDEUnivariateและKDEMultivariate) และscikit-learn ( KernelDensity) (ดูการเปรียบเทียบ[ 36 ] ) KDEpyรองรับข้อมูลถ่วงน้ำหนัก และการใช้งาน FFT ของมันเร็วกว่าการใช้งานอื่นๆ หลายเท่า ไลบรารี pandas ที่ใช้กันทั่วไป[1]ให้การสนับสนุนการพล็อต kde ผ่านเมธอด plot ( df.plot(kind='kde')[2] ) แพ็คเกจ getdistสำหรับตัวอย่าง MCMC ที่ถ่วงน้ำหนักและมีความสัมพันธ์กัน รองรับแบนด์วิดท์ที่ปรับให้เหมาะสม การแก้ไขขอบเขต และวิธีการลำดับสูงกว่าสำหรับการกระจายแบบ 1 มิติและ 2 มิติ แพ็คเกจที่ใช้ใหม่สำหรับการประมาณความหนาแน่นของเคอร์เนลคือ seaborn ( import seaborn as sns, sns.kdeplot()) [ 37 ]นอกจากนี้ยังมีการใช้งาน KDE บน GPU ด้วย[ 38 ]
  • ในRฟังก์ชันนี้ถูกนำไปใช้ผ่านdensityการแจกแจงพื้นฐาน และbw.nrd0ฟังก์ชันนี้ถูกใช้ในแพ็คเกจ stats โดยฟังก์ชันนี้ใช้สูตรที่ปรับให้เหมาะสมที่สุดในหนังสือของ Silverman bkdeในไลบรารี KernSmoothใน ParetoDensityEstimationไลบรารีDataVisualizations (สำหรับ การประมาณความหนาแน่น ของการแจกแจงแบบ Pareto ) kdeในไลบรารี ksและdkdenในdbckdenไลบรารีevmix (สำหรับประมาณความหนาแน่นของเคอร์เนลที่แก้ไขขอบเขตสำหรับช่วงการรองรับที่มีขอบเขต) npudensในไลบรารี np (ข้อมูลตัวเลขและข้อมูลเชิงหมวดหมู่ ) sm.densityในไลบรารี smสำหรับการใช้งาน ฟังก์ชันที่ไม่จำเป็นต้องติดตั้งแพ็คเกจหรือไลบรารีใดๆ โปรดดูที่ kde.Rไลบรารีbtbซึ่งใช้สำหรับการวิเคราะห์เมืองโดยเฉพาะ ใช้การประมาณความหนาแน่นของเคอร์เนลผ่านkde.Rฟังก์ชันนี้kernel_smoothing
  • ในSASสามารถproc kdeใช้เพื่อประมาณความหนาแน่นของเคอร์เนลแบบตัวแปรเดียวและแบบสองตัวแปรได้
  • ในApache Sparkคลาส[KernelDensity() 39 ]
  • ในStataจะมีการนำไปใช้ผ่านทางkdensity[ 40 ] ตัวอย่างเช่นhistogram x, kdensityหรืออีกทางเลือกหนึ่งคือมีโมดูล KDENS ฟรีสำหรับ Stata [ 41 ]ซึ่งช่วยให้ผู้ใช้สามารถประมาณฟังก์ชันความหนาแน่น 1 มิติหรือ 2 มิติได้
  • ในภาษา Swiftฟังก์ชันนี้ถูกนำไปใช้ผ่านทางSwiftStats.KernelDensityEstimationไลบรารีสถิติแบบโอเพนซอร์สที่ชื่อว่าSwiftStats

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • ฮาร์เดิล, โวล์ฟกัง; มึลเลอร์, มาร์ลีน; สแปร์ลิช, สเตฟาน; แวร์วัตซ์, แอ็กเซล (2004) แบบ จำลองที่ไม่ใช่พารามิเตอร์และกึ่งพารามิเตอร์ซีรี่ส์ Springer ในสถิติ เบอร์ลิน ไฮเดลเบิร์ก: สปริงเกอร์-แวร์แลก หน้า  39–83 ISBN 978-3-540-20722-1.
  • บทนำเกี่ยวกับการประมาณความหนาแน่นเคอร์เนลบทแนะนำสั้นๆ ที่ชี้ให้เห็นถึงประโยชน์ของการประมาณความหนาแน่นเคอร์เนลเมื่อเทียบกับฮิสโตแกรม
  • การเพิ่มประสิทธิภาพแบนด์วิดท์เคอร์เนลเครื่องมือออนไลน์ฟรีที่สร้างค่าประมาณความหนาแน่นของเคอร์เนลที่เหมาะสมที่สุด
  • ซอฟต์แวร์ออนไลน์ฟรี (เครื่องคำนวณ)คำนวณค่าประมาณความหนาแน่นเคอร์เนลสำหรับอนุกรมข้อมูลตามเคอร์เนลต่อไปนี้: เกาส์เซียน, เอพาเนชนิคอฟ, สี่เหลี่ยมผืนผ้า, สามเหลี่ยม, ไบเวท, โคไซน์ และออปโตโคไซน์
  • แอปเพล็ตการประมาณความหนาแน่นเคอร์เนลตัวอย่างแบบโต้ตอบออนไลน์ของการประมาณความหนาแน่นเคอร์เนล ต้องใช้ .NET 3.0 หรือเวอร์ชันที่ใหม่กว่า
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Kernel_density_estimation&oldid=1351750789 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การประมาณความหนาแน่นเคอร์เนล

ใน ทางสถิติ การ ประมาณความหนาแน่นเคอร์เนล ( KDE ) คือการประยุกต์ใช้ การปรับ เรียบเคอร์เนล สำหรับ การประมาณความหนาแน่นความน่าจะเป็น กล่าว คือวิธีการ ที่ไม่ใช้พารามิเตอร์ ใน...

คำนิยาม

ให้เป็นตัวอย่าง อิสระและมีการกระจายเหมือนกัน ที่ดึงมาจากการแจกแจงแบบเอกตัวแปรที่มี ความหนาแน่น ที่ไม่ทราบค่า f ที่จุด x ใดๆ เราสนใจที่จะประมาณรูปร่างของฟังก์ชัน f นี้ ตัวประมาณความหนาแน่นเคอร์เนล ของมันคือ โดยที่ K คือ เคอร์เนล ซึ่งเป็นฟังก์ชันที่ไม่เป็นลบ...

ตัวอย่าง

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

การเลือกแบนด์วิดท์

แบน ด์วิดท์ ของเคอร์เนลเป็น พารามิเตอร์อิสระ ที่มีอิทธิพลอย่างมากต่อค่าประมาณที่ได้ เพื่อแสดงให้เห็นถึงผลกระทบนี้ เราจึงใช้ ตัวอย่างสุ่ม จำลอง จาก1 การแจกแจงปกติ มาตรฐาน (แสดงด้วยจุดสีน้ำเงินใน กราฟแบบ Rug Plot บนแกนแนวนอน)...