แบบจำลองหลายระดับสำหรับกลุ่มที่มีตัวทำนายต่างกัน
ลองนึกภาพว่าฉันกำลังพยายามสร้างโมเดลหลายระดับให้กับผลิตภัณฑ์และต้องการจัดกลุ่มตามประเภทผลิตภัณฑ์
ในกรณีที่ประเภทผลิตภัณฑ์มีตัวทำนายเดียวกันทั้งหมดนี้เป็นการส่งต่อโดยตรง เช่นคุณอาจประมาณผลกระทบของสีต่อการขายหรือสิ่งที่คล้ายกัน
แต่จะเกิดอะไรขึ้นถ้าตัวทำนายบางตัวเหมาะสมกับผลิตภัณฑ์บางประเภทเท่านั้น? เช่นเดียวกับคุณลักษณะ "ความยาวขา" อาจเหมาะสำหรับกางเกงขาสั้นหากผู้คนชอบว่าชอบกางเกงขาสั้นสูงหรือต่ำกว่าเข่า แต่ไม่ใช่กางเกงที่มีความยาวเต็มเสมอ และมันอาจจะไม่ค่อยเข้าท่าสำหรับเสื้อเชิ้ตเนื่องจากไม่ต้องมีความยาวขาเลย
ในกรณีนี้มีวิธีจัดการหรือไม่หรือที่ดีที่สุดคือมีรุ่นต่างๆต่อกลุ่ม สำหรับคุณสมบัติที่ใช้ร่วมกันและคาดว่าจะมาจากการกระจายเดียวกันฉันเดาว่าเราเสียประโยชน์บางอย่างนั่นจึงเป็นเหตุผลว่าทำไมฉันจึงสงสัยว่าโมเดลสามารถทำได้เป็นแบบจำลองเดียวหรือไม่
ฉันคิดเกี่ยวกับหลายสิ่ง (เช่นสำหรับผลิตภัณฑ์ที่ไม่มีคุณสมบัติการตั้งค่าเป็นค่าคงที่หรือเป็นค่าสุ่มที่ดึงมาจากการแจกแจงค่าคุณลักษณะจากผลิตภัณฑ์ที่คุณลักษณะนั้นเหมาะสม ฯลฯ ) แต่ดูเหมือนจะมีปัญหาที่ชัดเจนมาก
คำตอบ
มีวิธีที่สมเหตุสมผลในการทำเช่นนี้หากคุณตั้งศูนย์ตัวทำนายทั้งหมดของคุณโดยการลบค่าเฉลี่ย
ใช้ตัวอย่างของคุณสมมติว่าคุณมีกางเกงขาสั้นกีฬากางเกงขาสั้นและกางเกงยีนส์และตัวทำนายตัวเลขของคุณคือก) ความสว่าง (กำหนดไว้สำหรับทุกหมวดหมู่) และ b) ความยาวสั้น (กำหนดไว้สำหรับกางเกงขาสั้นเท่านั้นNA
สำหรับกางเกงขายาว) ตอนนี้ถ้าคุณอยู่ตรงกลางตัวทำนายตัวเลขของคุณคุณจะได้รับการวัด a) ว่ารายการนั้นเข้มหรือเบากว่าค่าเฉลี่ยหรือไม่และ b) กางเกงขาสั้นสั้นหรือยาวกว่าค่าเฉลี่ยหรือไม่ คุณสามารถพูดได้อย่างปลอดภัยว่าเป็นกางเกงขายาว$\pm0$ซม. สั้นหรือยาวกว่าค่าเฉลี่ยดังนั้นจึงกำหนดค่าเป็น 0 สำหรับตัวทำนายนี้สำหรับสินค้าทั้งหมดที่ไม่ใช่กางเกงขาสั้น (ไม่สั้นหรือยาวกว่าค่าเฉลี่ย) จากนั้นคุณสามารถใส่หลายระดับได้ตามปกติโดยอนุญาตให้ตัวทำนายทั้งหมดแตกต่างกันไปตามหมวดหมู่:
lmer(sales ~ 1 + centred_colour + centred_leg_length +
(1 + centred_colour + centred_leg_length | category),
data=sales_data)
เนื่องจากตัวทำนายนี้แตกต่างกันไปสำหรับกางเกงขาสั้นประเภทต่างๆเท่านั้นการขายสินค้าเหล่านั้นจะมีผลต่อพารามิเตอร์นี้ เนื่องจากมีการตั้งค่าเป็น 0 สำหรับผลิตภัณฑ์อื่น ๆ ตัวทำนายนี้จะไม่มีผลต่อการอนุมานหรือการคาดการณ์เกี่ยวกับผลิตภัณฑ์เหล่านี้
หากเกิดขึ้นว่าคุณมีกางเกงขาสั้นเพียงหมวดหมู่เดียวในข้อมูลของคุณหากไม่สามารถรวมเป็นเอฟเฟกต์แบบสุ่มได้และคุณจะต้องเปลี่ยนโมเดลตาม:
lmer(sales ~ 1 + centred_colour + centred_leg_length +
(1 + centred_colour | category),
data=sales_data)
พยายามสร้างตัวแปรดัมมี่ที่เป็น 0 เมื่อผลิตภัณฑ์ไม่มีคุณลักษณะ (เช่นไม่มีขา) และ 1 เมื่อมีคุณลักษณะนี้ เปลี่ยนตัวแปรดัมมี่นี้ให้เป็นปัจจัย
เมื่อหุ่นไม่มีคุณลักษณะให้แทนที่ค่าที่ขาดหายไปด้วยศูนย์
จากนั้นในโมเดลของคุณให้โต้ตอบตัวแปรที่คุณสนใจอย่างต่อเนื่องกับตัวแปรดัมมี่แฟกเตอร์ เพิ่มตัวแปรดัมมี่แฟคเตอร์ด้วย
หมายเหตุ: ฉันยินดีที่จะอ่านจากบุคคลที่มีความรู้มากขึ้นว่าเหตุใดจึงได้ผล (หรือไม่ได้ผลในกรณีทั่วไป)