วิธีการระบุนอตใน R
ns
ฟังก์ชั่นสร้างถดถอยธรรมชาติเส้นโค้งพื้นฐานได้รับการป้อนข้อมูลเวกเตอร์ ปมสามารถระบุได้โดยผ่านอาร์กิวเมนต์องศาอิสระdf
ซึ่งใช้จำนวนเต็มหรือผ่านอาร์กิวเมนต์นอตknots
ซึ่งใช้เวกเตอร์เพื่อให้ได้ตำแหน่งที่ต้องการของปม โปรดทราบว่าในรหัสที่คุณเขียน
library(splines)
lda.pred <- lda(y ~ ns(x, knots=5))
คุณยังไม่ได้ร้องขอห้า knots แต่ขอknot (ภายใน) เดียวที่ตำแหน่ง 5
ถ้าคุณใช้df
อาร์กิวเมนต์แล้วนอตภายในจะถูกเลือกขึ้นอยู่กับ quantiles x
ของเวกเตอร์ ตัวอย่างเช่นหากคุณโทรออก
ns(x, df=5)
จากนั้นพื้นฐานจะรวมสองนอตขอบเขตและ4นอตภายในวางไว้ที่ 20, 40, 60 และ 80 ของ quantiles ของx
ตามลำดับ x
นอตเขตแดนโดยค่าเริ่มต้นจะอยู่ที่นาทีและสูงสุด
นี่คือตัวอย่างเพื่อระบุตำแหน่งของนอต
x <- 0:100
ns(x, knots=c(20,35,50))
หากคุณต้องโทรหาns(x, df=4)
คุณจะได้รับปมภายใน 3 ตำแหน่งที่ตำแหน่ง 25, 50 และ 75 ตามลำดับ
นอกจากนี้คุณยังสามารถระบุว่าคุณต้องการคำดักจับหรือไม่ ปกติแล้วสิ่งนี้จะไม่ถูกระบุเนื่องจากns
มักใช้ร่วมกับlm
ซึ่งรวมถึงการสกัดกั้นโดยปริยาย (ยกเว้นกรณีที่ไม่บังคับ) หากคุณใช้intercept=TRUE
ในการโทรไปns
ตรวจสอบให้แน่ใจว่าคุณรู้ว่าทำไมคุณถึงทำเช่นนั้นเพราะถ้าคุณทำสิ่งนี้แล้วโทรไปlm
อย่างไร้เดียงสาเมทริกซ์การออกแบบจะจบลงด้วยการขาดอันดับ
กลยุทธ์ในการวางนอต
นอตจะอยู่กันมากที่สุดที่ quantiles ns
เช่นพฤติกรรมเริ่มต้นของ สัญชาตญาณคือถ้าคุณมีกลุ่มข้อมูลจำนวนมากที่อยู่ติดกันคุณอาจต้องการให้มีปมมากขึ้นเพื่อสร้างแบบจำลองความไม่เชิงเส้นที่อาจเกิดขึ้นในภูมิภาคนั้น แต่นั่นไม่ได้หมายความว่านี่เป็นทางเลือกเพียงทางเดียว (ก) หรือทางเลือกที่ดีที่สุด
ตัวเลือกอื่น ๆ สามารถทำได้อย่างชัดเจนและเฉพาะโดเมน การดูฮิสโทแกรมและการประมาณความหนาแน่นของเครื่องทำนายของคุณอาจให้เบาะแสว่าจำเป็นต้องใช้ปมอะไรเว้นแต่จะมีตัวเลือก "มาตรฐาน" ที่ให้ข้อมูลของคุณ
ในแง่ของการตีความการถดถอยฉันจะทราบว่าในขณะที่คุณสามารถ "เล่นรอบ" กับตำแหน่งปมได้อย่างแน่นอนคุณควรตระหนักว่าคุณได้รับโทษจากการเลือกรูปแบบสำหรับสิ่งนี้ซึ่งคุณควรระมัดระวังในการประเมินและควรปรับการอนุมานใด ๆ ผล.