จอห์นฟ็อกซ์หนังสืออาสหายกับการถดถอยประยุกต์เป็น Ressource R
ที่ดีในการสร้างแบบจำลองการถดถอยการประยุกต์ใช้กับ แพคเกจcar
ที่ฉันใช้ตลอดในคำตอบนี้คือแพ็คเกจที่แนบมาด้วย หนังสือเล่มนี้ยังมีเว็บไซต์ที่มีบทเพิ่มเติม
การแปลงการตอบสนอง (หรือที่รู้จักว่าตัวแปรขึ้นอยู่กับผลลัพธ์)
R
lm
boxCox
car
λfamily="yjPower"
boxCox(my.regression.model, family="yjPower", plotit = TRUE)
สิ่งนี้สร้างพล็อตเหมือนกับที่ต่อไปนี้:
λλ
ในการแปลงตัวแปรตามของคุณทันทีให้ใช้ฟังก์ชันyjPower
จากcar
แพ็คเกจ:
depvar.transformed <- yjPower(my.dependent.variable, lambda)
lambda
λboxCox
สำคัญ:แทนที่จะเปลี่ยนตัวแปรที่ต้องอาศัยการบันทึกคุณควรพิจารณาให้พอดีกับ GLM กับลิงค์ล็อก นี่คือการอ้างอิงบางอย่างที่ให้ข้อมูลเพิ่มเติมคือ: ครั้งแรก , สอง , สาม ในการทำสิ่งนี้R
ให้ใช้glm
:
glm.mod <- glm(y~x1+x2, family=gaussian(link="log"))
ที่y
เป็นตัวแปรขึ้นอยู่กับคุณและx1
, x2
ฯลฯ เป็นตัวแปรอิสระของคุณ
การแปลงตัวทำนาย
การเปลี่ยนแปลงของตัวทำนายเชิงบวกที่เข้มงวดสามารถประเมินได้โดยความเป็นไปได้สูงสุดหลังจากการเปลี่ยนแปลงของตัวแปรตาม ในการทำเช่นนั้นให้ใช้ฟังก์ชั่นboxTidwell
จากcar
แพ็คเกจ (สำหรับกระดาษต้นฉบับดูที่นี่ ) ใช้มันเหมือนที่: boxTidwell(y~x1+x2, other.x=~x3+x4)
. สิ่งสำคัญที่นี่คือตัวเลือกที่other.x
ระบุเงื่อนไขของการถดถอยที่จะไม่ถูกแปลง นี่จะเป็นตัวแปรเด็ดขาดทั้งหมดของคุณ ฟังก์ชันสร้างผลลัพธ์ของฟอร์มต่อไปนี้:
boxTidwell(prestige ~ income + education, other.x=~ type + poly(women, 2), data=Prestige)
Score Statistic p-value MLE of lambda
income -4.482406 0.0000074 -0.3476283
education 0.216991 0.8282154 1.2538274
income
λincome
incomenew=1/incomeold−−−−−−−−√
อีกประการหนึ่งที่น่าสนใจมากโพสต์ในเว็บไซต์เกี่ยวกับการเปลี่ยนแปลงของตัวแปรอิสระที่เป็นคนนี้
ข้อเสียของการเปลี่ยนแปลง
1/y√λλ
การสร้างแบบจำลองความสัมพันธ์ที่ไม่เชิงเส้น
ทั้งสองวิธีมีความยืดหยุ่นมากทีเดียวที่จะความสัมพันธ์ที่ไม่เป็นเชิงเส้นพอดีมีหลายชื่อเศษส่วนและเส้นโค้ง เหล่านี้สามเอกสารมีการแนะนำที่ดีมากที่จะทั้งสองวิธี: ครั้งแรก , ครั้งที่สองและสาม นอกจากนี้ยังมีทั้งหนังสือR
เกี่ยวกับพหุนามและเศษส่วน R
แพคเกจmfp
การดำเนินการหลายตัวแปรพหุนามเศษส่วน งานนำเสนอนี้อาจมีข้อมูลเกี่ยวกับพหุนามเศษส่วน เพื่อให้พอดีกับเส้นโค้งคุณสามารถใช้ฟังก์ชั่นgam
(รุ่นเสริมทั่วไปดูที่นี่สำหรับการแนะนำที่ยอดเยี่ยมด้วยR
) จากแพ็คเกจmgcv
หรือฟังก์ชั่นns
(เส้นโค้งธรรมชาติลูกบาศก์) และbs
(ลูกบาศก์ B- เส้นโค้ง) จากแพ็คเกจsplines
(ดูที่นี่สำหรับตัวอย่างของการใช้ฟังก์ชันเหล่านี้) การใช้gam
คุณสามารถระบุตัวทำนายที่คุณต้องการให้พอดีกับการใช้เส้นโค้งโดยใช้s()
ฟังก์ชั่น:
my.gam <- gam(y~s(x1) + x2, family=gaussian())
ที่นี่x1
จะได้รับการติดตั้งโดยใช้เส้นโค้งและx2
เป็นเส้นตรงในการถดถอยเชิงเส้นปกติ ภายในgam
คุณสามารถระบุตระกูลการแจกจ่ายและฟังก์ชันลิงก์glm
ได้ ดังนั้นเพื่อให้พอดีกับรุ่นที่มีฟังก์ชั่นการเข้าสู่ระบบการเชื่อมโยงคุณสามารถระบุตัวเลือกfamily=gaussian(link="log")
ในเช่นเดียวกับในgam
glm
ดูที่โพสต์นี้จากเว็บไซต์