สำรวจเมทริกซ์กระจาย - พล็อตสำหรับตัวแปรมากมาย


10

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

ในทางตรงกันข้ามการทำเพียงแค่เมทริกซ์สหสัมพันธ์นั้นไม่ได้ให้ข้อมูลทั้งหมดเกี่ยวกับความสัมพันธ์ 2 ตัวแปร

มีวิธี (ไลบรารีหรือเวิร์กโฟลว์) ในการสำรวจความสัมพันธ์ 2 ตัวแปรสำหรับตัวแปรหลายตัวหรือไม่

ฉันสนใจที่จะแสดงผลลัพธ์ให้ผู้อื่นโดยเฉพาะอย่างยิ่ง (บางทีหลังจากการประมวลผลข้อมูลล่วงหน้า) เช่นสิ่งที่มีการโต้ตอบใน JavaScript ฉันสามารถเห็นเมทริกซ์กระจาย - พล็อตสำหรับเขตข้อมูลที่เลือกจากเมทริกซ์สหสัมพันธ์

โดยเมทริกซ์การกระจาย - พล็อตฉันหมายถึงสิ่งที่ต้องการ:

ป้อนคำอธิบายรูปภาพที่นี่

(นำมาจากบล็อก pandasplotting ; สามารถใช้งานได้ในPython / Pandas , R , D3.jsฯลฯ )


4
คุณไม่ได้บอกชัดเจนว่าคุณทำอะไรอยู่ คุณต้องการเห็นคลาวด์ทุกจุดข้อมูลหรือไม่ คุณต้องการที่จะเห็นทุกแง่มุม bivariate ในครั้งเดียว ?
ttnphns

@ttnphns ฉันต้องการที่จะเห็นจุดข้อมูลทั้งหมดหรือพวกเขาในรูปแบบรวมบางอย่าง (เช่น 2d ฮิสโทแกรม) ฉันไม่จำเป็นต้องเห็นทุกสิ่งในครั้งเดียว (เพราะเหมาะสมกับตัวแปร <15 แต่ไม่ใช่ 200) และใช่ฉันรู้ว่าคำถามนั้นค่อนข้างเปิดกว้าง เวอร์ชันปิดท้ายคือ "มีห้องสมุด JS เพื่อแสดงแผนการกระจายและฮิสโตแกรมเมื่อเมาส์อยู่บนพิกเซลตามลำดับที่เมทริกซ์สหสัมพันธ์หรือไม่หรือฉันควรเขียนหนึ่งหรือไม่ :)" ฉันเขียนหนึ่งทั่วไปมากขึ้นเนื่องจากอาจมี เวิร์กโฟลว์ที่ดีขึ้นสำหรับการจัดการกับปัญหา
Piotr Migdal

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

คำตอบ:


7

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

  • ระบุกลุ่มแฝงแฝง (ของตัวแปรหรือกรณี)
  • ระบุค่าผิดปกติ (ในพื้นที่ univariate, bivariate หรือหลายตัวแปร)

ทั้งสองลดข้อมูลลงในบทสรุปการจัดการมากขึ้น แต่มีเป้าหมายที่แตกต่างกัน ระบุกลุ่มแฝงที่มักจะลดขนาดในข้อมูล (เช่นผ่าน PCA) แล้วสำรวจว่าตัวแปรหรือกลุ่มเคสรวมกันในพื้นที่ที่ลดลงนี้หรือไม่ ดูตัวอย่าง Friendly (2002) หรือ Cook et al (1995)

การระบุค่าผิดปกติอาจหมายถึงการปรับแบบจำลองให้เหมาะสมและวางแผนการเบี่ยงเบนจากตัวแบบ (เช่นการพล็อตส่วนที่เหลือจากตัวแบบการถดถอย) หรือลดข้อมูลลงในส่วนประกอบหลักและเน้นเฉพาะจุดที่เบี่ยงเบนจากตัวแบบ เช่นบ็อกซ์พล็อตในหนึ่งหรือสองมิติโดยทั่วไปจะแสดงเฉพาะจุดที่อยู่นอกบานพับ (Wickham & Stryjewski, 2013) การพล็อตสิ่งที่เหลือมีคุณสมบัติที่ดีที่มันควรจะแปลงให้เรียบ (Tukey, 1977) ดังนั้นหลักฐานใด ๆ ของความสัมพันธ์ในเมฆจุดที่เหลือคือ "น่าสนใจ" คำถามเกี่ยวกับ CVมีคำแนะนำที่ดีเยี่ยมในการระบุค่าผิดปกติหลายตัวแปร

วิธีการทั่วไปในการสำรวจ SPLOMS ขนาดใหญ่ดังกล่าวคือการไม่ได้พล็อตทั้งหมดของแต่ละจุด แต่บางชนิดของการสรุปง่ายและแล้วบางทีจุดที่เบี่ยงเบนไปส่วนใหญ่มาจากการสรุปนี้เช่นวงรีความเชื่อมั่น, สรุป scagnostic (วิลกินสันและพินัยกรรม 2008) สองตัวแปร กล่องแปลงแปลงโครง ด้านล่างนี้เป็นตัวอย่างของการพล็อตจุดไข่ปลาที่กำหนดความแปรปรวนร่วมและการวางซ้อนทับเรียบเพื่ออธิบายการเชื่อมโยงเชิงเส้น

Corrgram Ellipses
(ที่มา: statmethods.net )

ทั้งสองวิธีพล็อตเชิงโต้ตอบที่ใช้งานได้จริงและมีตัวแปรจำนวนมากน่าจะต้องใช้การคัดแยกอัจฉริยะ (Wilkinson, 2005) และวิธีที่ง่ายในการกรองตัวแปร (นอกเหนือจากการแปรง / เชื่อมโยงความสามารถ) ชุดข้อมูลใด ๆ ที่เหมือนจริงจะต้องมีความสามารถในการแปลงแกน (เช่นพล็อตข้อมูลในสเกลลอการิทึมแปลงข้อมูลโดยการรูทเป็นต้น) ขอให้โชคดีและอย่ายึดติดกับเนื้อเรื่องเดียว!


อ้างอิง


1
ขอบคุณ! เป้าหมายของฉันคือการสำรวจข้อมูลก่อนที่ฉันจะเรียกใช้ PCA เนื่องจากตัวแปรสามารถเกี่ยวข้องในแบบที่ไม่ใช่เชิงเส้นและต้องการการลดขนาด (หรือการประมวลผลอื่น ๆ )
Piotr Migdal

ตัวอย่าง corrgram ellipse + loess smoother ควรจะเกี่ยวข้องกันแล้ว (หรือเปลี่ยน covar. ellipse กับรูปหลายเหลี่ยมแบบวัดอื่น ๆ เช่น boxplot bivariate) และอาจช่วยให้ ID ไม่สัมพันธ์กัน คำถามติดตามที่ดีอาจเป็นไปได้ว่าเป็นไปได้ที่จะเชื่อมโยง ID ที่ไม่ใช่เชิงเส้นหลังจากการลดข้อมูลผ่าน PCA (หรือบางอย่างเช่นนั้น)
Andy W

1

คุณสามารถลองใช้อินเตอร์เฟสที่เป็นประกายจากแพ็คเกจคู่ D3 R ซึ่งมีวิธีการโต้ตอบกับเมทริกซ์พล็อตการกระจาย

ตัวอย่างของชุดข้อมูลม่านตา:

install.packages("pairsD3")
require("pairsD3")
shinypairs(iris)

ที่มา: https://github.com/garthtarr/pairsD3

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