การสลับแกนสำหรับ GAM 2 ตัวทำนายใน r

ฉันขออภัยสำหรับคำถามง่ายๆ เช่นนี้ แต่ยังไม่สามารถหาคำตอบได้เมื่ออ่านข้อมูลในเว็บไซต์ ฉันกำลังพยายามพล็อตชุดโมเดล GAM ของข้อมูลการจับสัตว์ที่ไม่มีกระดูกสันหลังใน R หนึ่งในตัวทำนายมักจะใช้คำที่ปรับให้เรียบสำหรับหมายเลขวันของปี (DOY) ซึ่งควรใช้พื้นที่ของแกน x เสมอ แกน y ควรเป็นตัวทำนายตัวแปรสภาพอากาศเชิงเส้นหรือแบบเรียบ ด้วยฟังก์ชัน vis.gam() ฉันสามารถสร้างพล็อตโครงร่างพื้นผิวที่มีการไล่ระดับสีซึ่งแสดงถึงค่าที่คาดการณ์ไว้ของการตอบสนองสำหรับคู่ x-y ใดๆ เมื่อตัวทำนายที่สองไม่เป็นเชิงเส้น ดังเช่นใน:

totbest=gam(Totallog10pl1~s(DOY)+s(SRVarDetrendDerived),data=poolREplotGAM)

แล้วรูปก็ดูเท่าที่ควร (ขออภัยที่ไม่สามารถลงภาพได้ แต่นี่คือคำสั่ง plotting):

vis.gam(totbest, type="response",plot.type="contour",n.grid=50)

แต่เมื่อตัวทำนายเป็นเส้นตรง:

totbest1=gam(Totallog10pl1~s(DOY)+SRVarDetrendDerived,data=poolREplotGAM)

สวิตช์แกน:

vis.gam(totbest1, type="response",plot.type="contour",n.grid=50)

หากคุณมีวิธีส่งกลับตัวแปรที่เกี่ยวข้องกับเวลากลับคืนสู่แกน x ก็ยินดีเป็นอย่างยิ่ง ขอบคุณล่วงหน้าสำหรับความช่วยเหลือใด ๆ

ไมค์


person user3277394    schedule 14.08.2015    source แหล่งที่มา


คำตอบ (1)


ดูเหมือนว่าจะเป็นเพราะลำดับที่องค์ประกอบ var.summary ของวัตถุ gam ถูกส่งคืน ลอง totbest$var.summary กับ totbest1$var.summary

"การแก้ไข" จะทำสิ่งนี้:

totbest1$var.summary <- totbest1$var.summary[2:1]
vis.gam(totbest1, type="response",plot.type="contour",n.grid=50)

Caveat: ฉันยังอ่านเกี่ยวกับวัตถุ gam ไม่มากพอที่จะเข้าใจว่าลำดับย้อนกลับของ var.summary เป็นไปตามการออกแบบหรือไม่

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

person RichAtMango    schedule 14.08.2015
comment
มันได้ผล ขอบคุณมาก! ผมขอขอบคุณความช่วยเหลือของคุณ. - person user3277394; 15.08.2015
comment
ฉันเกลียดที่ต้องคลานกลับมาแบบนี้ แต่ฉันทำให้เกิดรอยย่นในแบบจำลองของฉัน ซึ่งทำให้การปรับทิศทางรูปร่างของฉันใหม่ตามที่กล่าวข้างต้นเป็นไปไม่ได้ เท่าที่ฉันเห็น ฉันได้ปรับแต่งมันแล้วและไม่สามารถเข้าใจสิ่งนี้ได้ ฉันได้รวมปัจจัย/การโต้ตอบที่ราบรื่น เช่นใน: totbest=gam(Totallog10pl1~s(SRVarDetrendDerived)+s(DOY,by=Plot),na.action=na.omit,data=poolFACTORplotGAM) การเรียงลำดับความเรียบใหม่ในโค้ดจะวาง SRVar และ DOY บนแกน แทนที่จะเป็น DOY และ Plot แต่ตอนนี้จะตั้งค่า DOY บนแกน Y เสมอ @RichAtMango หรือใครก็ตามที่คุณมีข้อเสนอแนะบ้างไหม? ขอขอบคุณอีกครั้งสำหรับความช่วยเหลือ! - person user3277394; 18.08.2015