คำถามติดแท็ก median

30
ฟังก์ชั่นการคำนวณค่ามัธยฐานใน SQL Server
ตามMSDN , ค่ามัธยฐานไม่พร้อมใช้งานเป็นฟังก์ชันรวมใน Transact-SQL อย่างไรก็ตามฉันต้องการค้นหาว่าเป็นไปได้ที่จะสร้างฟังก์ชันนี้หรือไม่ (โดยใช้ฟังก์ชั่นสร้างการรวมฟังก์ชันที่ผู้ใช้กำหนดเองหรือวิธีอื่น) อะไรจะเป็นวิธีที่ดีที่สุด (ถ้าเป็นไปได้) ในการทำเช่นนี้ - อนุญาตให้มีการคำนวณค่ามัธยฐาน (สมมติว่าเป็นชนิดข้อมูลตัวเลข) ในแบบสอบถามรวม?

8
ค้นหาค่ามัธยฐานที่ใช้งานอยู่จากกระแสของจำนวนเต็ม
ซ้ำเป็นไปได้: อัลกอริทึมค่ามัธยฐานกลิ้งใน C ระบุว่าจำนวนเต็มอ่านจาก data stream ค้นหาค่ามัธยฐานขององค์ประกอบที่อ่านได้อย่างมีประสิทธิภาพ วิธีแก้ปัญหาที่ฉันได้อ่าน: เราสามารถใช้สูงสุดกองด้านซ้ายเพื่อเป็นตัวแทนองค์ประกอบที่น้อยกว่าค่ามัธยฐานที่มีประสิทธิภาพและกองต่ำสุดทางด้านขวาเพื่อเป็นตัวแทนองค์ประกอบที่มากกว่าค่ามัธยฐานที่มีประสิทธิภาพ หลังจากประมวลผลองค์ประกอบที่เข้ามาจำนวนขององค์ประกอบในกองแตกต่างกันมากที่สุด 1 องค์ประกอบ เมื่อทั้งสองฮีปมีจำนวนองค์ประกอบเท่ากันเราจะพบว่าค่าเฉลี่ยของข้อมูลรูทของฮีปนั้นเป็นค่ามัธยฐานที่มีประสิทธิภาพ เมื่อฮีปไม่สมดุลเราจะเลือกค่ามัธยฐานที่มีประสิทธิภาพจากรูทฮีปที่มีองค์ประกอบมากกว่า แต่เราจะสร้าง heap สูงสุดและ heap สูงสุดได้อย่างไรเราจะรู้ค่ามัธยฐานที่มีประสิทธิภาพได้อย่างไร ฉันคิดว่าเราจะแทรก 1 องค์ประกอบใน max-heap แล้วองค์ประกอบ 1 ถัดไปใน min-heap และอื่น ๆ สำหรับองค์ประกอบทั้งหมด ถูกต้องฉันถ้าฉันผิดที่นี่
223 algorithm  heap  median 

30
วิธีง่ายๆในการคำนวณค่ามัธยฐานด้วย MySQL
อะไรคือวิธีที่ง่ายที่สุด (และหวังว่าจะไม่ช้าเกินไป) ในการคำนวณค่ามัธยฐานด้วย MySQL? ฉันใช้AVG(x)เพื่อหาค่าเฉลี่ย แต่ฉันมีเวลายากที่จะหาวิธีง่ายๆในการคำนวณค่ามัธยฐาน สำหรับตอนนี้ฉันกลับแถวทั้งหมดไปที่ PHP ทำการเรียงลำดับแล้วเลือกแถวกลาง แต่แน่นอนว่าต้องมีวิธีการง่ายๆในแบบสอบถาม MySQL เดียว ข้อมูลตัวอย่าง: id | val -------- 1 4 2 7 3 2 4 2 5 9 6 8 7 3 เรียงลำดับตามการvalให้2 2 3 4 7 8 9ดังนั้นค่ามัธยฐานควรจะเป็น4เมื่อเทียบกับSELECT AVG(val)ที่ 5==
207 sql  mysql  statistics  median 

23
การค้นหาค่ามัธยฐานของรายการใน Python
คุณจะพบค่ามัธยฐานของรายการใน Python ได้อย่างไร รายการสามารถมีขนาดใดก็ได้และตัวเลขไม่ได้รับประกันว่าจะอยู่ในลำดับใด ๆ หากรายการมีจำนวนองค์ประกอบเท่ากันฟังก์ชันควรคืนค่าเฉลี่ยของค่ากลางสองค่า นี่คือตัวอย่าง (เรียงลำดับเพื่อการแสดงผล): median([1]) == 1 median([1, 1]) == 1 median([1, 1, 2, 4]) == 1.5 median([0, 2, 5, 6, 8, 9, 9]) == 6 median([0, 0, 0, 0, 4, 4, 6, 8]) == 2
181 python  list  sorting  median 

12
ขั้นตอนวิธีค่ามัธยฐานแบบโรลลิ่งใน C
ฉันกำลังทำงานกับอัลกอริทึมเพื่อใช้ตัวกรองค่ามัธยฐานแบบกลิ้ง (คล้ายกับตัวกรองค่าเฉลี่ยแบบกลิ้ง) ใน C. จากการค้นหาวรรณกรรมของฉันดูเหมือนว่าจะมีสองวิธีที่มีประสิทธิภาพพอสมควร อันดับแรกคือการจัดเรียงหน้าต่างเริ่มต้นของค่าจากนั้นทำการค้นหาแบบไบนารีเพื่อแทรกค่าใหม่และลบค่าที่มีอยู่ออกในการวนซ้ำแต่ละครั้ง ประการที่สอง (จาก Hardle and Steiger, 1995, JRSS-C, Algorithm 296) สร้างโครงสร้างฮีปแบบปลายคู่โดยมี Maxheap ที่ปลายด้านหนึ่งมินฮ็อปอีกด้านหนึ่งและค่ามัธยฐานอยู่ตรงกลาง สิ่งนี้ให้ผลอัลกอริทึมเวลาเชิงเส้นแทนที่จะเป็นหนึ่งที่เป็น O (n log n) นี่คือปัญหาของฉัน: การนำแบบเดิมมาใช้นั้นทำได้ แต่ฉันต้องเรียกใช้สิ่งนี้กับอนุกรมเวลานับล้านดังนั้นประสิทธิภาพจึงมีความสำคัญมาก ข้อหลังนี้พิสูจน์ได้ยากมากที่จะนำไปใช้ ฉันพบรหัสในไฟล์ Trunmed.c ของรหัสสำหรับแพ็คเกจสถิติของ R แต่มันค่อนข้างจะอ่านไม่ออก มีใครรู้จักการใช้งาน C ที่เขียนมาอย่างดีสำหรับอัลกอริธึมค่ามัธยฐานการหมุนเวลาเชิงเส้นหรือไม่? แก้ไข: ลิงก์ไปยังโค้ด Trunmed.c http://google.com/codesearch/p?hl=th&sa=N&cd=1&ct=rc#mYw3h_Lb_e0/R-2.2.0/src/library/stats/src/Trunmed.c
114 c  algorithm  r  statistics  median 

13
อัลกอริทึม "ออนไลน์" (ตัววนซ้ำ) สำหรับการประมาณค่ามัธยฐานทางสถิติโหมดความเบ้ความเคอร์โทซิส?
มีอัลกอริทึมในการประมาณค่ามัธยฐานโหมดความเบ้และ / หรือ kurtosis ของชุดค่า แต่ไม่จำเป็นต้องจัดเก็บค่าทั้งหมดในหน่วยความจำในครั้งเดียว? ฉันต้องการคำนวณสถิติพื้นฐาน: ค่าเฉลี่ย: ค่าเฉลี่ยเลขคณิต ความแปรปรวน: ค่าเฉลี่ยของการเบี่ยงเบนกำลังสองจากค่าเฉลี่ย ค่าเบี่ยงเบนมาตรฐาน: รากที่สองของความแปรปรวน มัธยฐาน: ค่าที่แยกตัวเลขครึ่งหนึ่งที่ใหญ่กว่าออกจากครึ่งที่เล็กกว่า โหมด: ค่าที่พบบ่อยที่สุดในชุด ความเบ้: tl; ดร เคอร์โทซิส: tl; ดร สูตรพื้นฐานสำหรับการคำนวณสิ่งเหล่านี้คือเลขคณิตระดับประถมศึกษาและฉันก็รู้ดี มีไลบรารีสถิติมากมายที่ใช้งานได้เช่นกัน ปัญหาของฉันคือค่าจำนวนมาก (หลายพันล้าน) ในชุดที่ฉันจัดการ: การทำงานใน Python ฉันไม่สามารถสร้างรายการหรือแฮชด้วยองค์ประกอบหลายพันล้านรายการได้ แม้ว่าฉันจะเขียนสิ่งนี้ใน C แต่อาร์เรย์พันล้านองค์ประกอบก็ไม่สามารถใช้งานได้จริง ข้อมูลไม่ถูกจัดเรียง มันผลิตขึ้นแบบสุ่มทันทีโดยกระบวนการอื่น ๆ ขนาดของแต่ละชุดมีความผันแปรสูงและจะไม่ทราบขนาดล่วงหน้า ฉันได้หาวิธีจัดการค่าเฉลี่ยและความแปรปรวนได้ค่อนข้างดีแล้วโดยจะวนซ้ำตามแต่ละค่าในเซตตามลำดับใด ๆ (จริงๆแล้วในกรณีของฉันฉันจะเรียงลำดับตามลำดับที่สร้างขึ้น) นี่คืออัลกอริทึมที่ฉันใช้http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#On-line_algorithm : เริ่มต้นตัวแปรสามตัว: count, sum และ sum_of_squares สำหรับแต่ละค่า: จำนวนที่เพิ่มขึ้น …

4
ทางเลือกที่รวดเร็วสำหรับ numpy.median.reduceat
เกี่ยวข้องกับคำตอบนี้มีวิธีที่รวดเร็วในการคำนวณค่ามัธยฐานของอาร์เรย์ที่มีกลุ่มที่มีจำนวนองค์ประกอบไม่เท่ากันหรือไม่? เช่น: data = [1.00, 1.05, 1.30, 1.20, 1.06, 1.54, 1.33, 1.87, 1.67, ... ] index = [0, 0, 1, 1, 1, 1, 2, 3, 3, ... ] แล้วฉันต้องการคำนวณความแตกต่างระหว่างจำนวนและค่ามัธยฐานต่อกลุ่ม (เช่นค่ามัธยฐานของกลุ่ม0คือ1.025ผลลัพธ์แรกคือ1.00 - 1.025 = -0.025) ดังนั้นสำหรับอาร์เรย์ด้านบนผลลัพธ์จะปรากฏเป็น: result = [-0.025, 0.025, 0.05, -0.05, -0.19, 0.29, 0.00, 0.10, -0.10, ...] เนื่องจากnp.median.reduceatยังไม่มี () ยังมีวิธีอื่นที่รวดเร็วในการบรรลุเป้าหมายนี้หรือไม่? …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.