การเลือกคุณสมบัติตาม p-value ผิดหรือไม่?


12

มีหลายโพสต์เกี่ยวกับวิธีการเลือกคุณสมบัติ หนึ่งในวิธีการอธิบายความสำคัญของคุณสมบัติตามสถิติ t ใน R ที่varImp(model)ใช้กับโมเดลเชิงเส้นพร้อมคุณสมบัติที่เป็นมาตรฐานจะใช้ค่าสัมบูรณ์ของ t-statistic สำหรับพารามิเตอร์แต่ละโมเดล ดังนั้นโดยทั่วไปเราเลือกคุณลักษณะตามสถิติของ t ซึ่งหมายถึงความแม่นยำของสัมประสิทธิ์ แต่ความแม่นยำของค่าสัมประสิทธิ์ของฉันบอกฉันบางอย่างเกี่ยวกับความสามารถในการทำนายของคุณสมบัติหรือไม่

มันจะเกิดขึ้นหรือไม่ที่คุณสมบัติของฉันมี t-statisstics ต่ำ แต่จะยังคงปรับปรุง (สมมติว่า) ความแม่นยำของโมเดลหรือไม่ ถ้าใช่จะมีใครต้องการแยกตัวแปรตามสถิติของ t หรือไม่ หรือเป็นเพียงจุดเริ่มต้นในการตรวจสอบความสามารถในการทำนายของตัวแปรที่ไม่สำคัญ?


3
สำหรับการทดสอบหนึ่งตัวอย่างของค่าเฉลี่ยสถิติ t คือค่าเฉลี่ยตัวอย่างหารด้วยข้อผิดพลาดมาตรฐานโดยประมาณ (ค่าเบี่ยงเบนมาตรฐานตัวอย่างหารด้วยรากที่สองของขนาดตัวอย่าง) สถิตินั้นไม่ได้ขึ้นอยู่กับสมมติฐานเฉพาะใด ๆ การรับค่า ap จากสถิตินั้นขึ้นอยู่กับสมมติฐาน
Dan Hicks

@DanHicks ฉันแก้ไขคำถามของฉัน
อลีนา

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

คำตอบ:


11

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

ค่า P บอกว่าคุณลักษณะปลอมแปลงมีความสำคัญ

พิจารณาการตั้งค่าสถานการณ์จำลองต่อไปนี้ในอาร์ลองสร้างเวกเตอร์สองอันอันแรกคือการโยนเหรียญแบบสุ่มครั้ง:5000

set.seed(154)
N <- 5000
y <- rnorm(N)

เวกเตอร์ที่สองคือการสังเกตโดยแต่ละค่าจะถูกสุ่มให้กับหนึ่งในคลาสที่มีขนาดเท่ากัน:5005000500

N.classes <- 500
rand.class <- factor(cut(1:N, N.classes))

ตอนนี้เราพอดีกับรูปแบบเชิงเส้นที่จะคาดการณ์ได้รับyrand.classes

M <- lm(y ~ rand.class - 1) #(*)

ที่ถูกต้องคุ้มค่าสำหรับทุกค่าสัมประสิทธิ์เป็นศูนย์ไม่มีของพวกเขามีใดอำนาจการพยากรณ์ ไม่น้อยเลยส่วนใหญ่มีความสำคัญในระดับ 5%

ps <- coef(summary(M))[, "Pr(>|t|)"]
hist(ps, breaks=30)

ฮิสโตแกรมของค่า p

ในความเป็นจริงเราควรคาดหวังว่าประมาณ 5% ของพวกเขาจะมีความสำคัญแม้ว่าพวกเขาจะไม่มีพลังในการทำนาย!

ค่า P ไม่สามารถตรวจสอบคุณสมบัติที่สำคัญ

นี่คือตัวอย่างในทิศทางอื่น

set.seed(154)
N <- 100
x1 <- runif(N)
x2 <- x1 + rnorm(N, sd = 0.05)
y <- x1 + x2 + rnorm(N)

M <- lm(y ~ x1 + x2)
summary(M)

ฉันสร้างผู้ทำนายสองตัวที่มีความสัมพันธ์กันแต่ละคนมีพลังในการทำนาย

M <- lm(y ~ x1 + x2)
summary(M)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.1271     0.2092   0.608    0.545
x1            0.8369     2.0954   0.399    0.690
x2            0.9216     2.0097   0.459    0.648

p-values ​​ไม่สามารถตรวจจับพลังการทำนายของตัวแปรทั้งสองได้เนื่องจากความสัมพันธ์มีผลต่อความแม่นยำของแบบจำลองที่สามารถประมาณค่าสัมประสิทธิ์บุคคลสองค่าจากข้อมูล

สถิติอนุมานไม่ได้มีไว้เพื่อบอกเกี่ยวกับพลังการทำนายหรือความสำคัญของตัวแปร เป็นการใช้วิธีการวัดเหล่านี้ในทางที่ผิด glmnetมีตัวเลือกที่ดีมากพร้อมสำหรับการเลือกตัวแปรในรูปแบบเชิงเส้นทำนายพิจารณาใช้

(*) โปรดทราบว่าฉันกำลังตัดการสกัดกั้นที่นี่ดังนั้นการเปรียบเทียบทั้งหมดจึงมีค่าเท่ากับศูนย์ไม่ใช่กับค่าเฉลี่ยกลุ่มของคลาสที่หนึ่ง นี่คือข้อเสนอแนะของ @ whuber

เนื่องจากมันนำไปสู่การอภิปรายที่น่าสนใจในความคิดเห็นรหัสต้นฉบับคือ

rand.class <- factor(sample(1:N.classes, N, replace=TRUE))

และ

M <- lm(y ~ rand.class)

ซึ่งนำไปสู่ฮิสโตแกรมต่อไปนี้

ฮิสโตแกรมเอียงของค่า p


2
อืมทำไมการกระจาย p-value นี้ไม่เหมือนกัน?
อะมีบาพูดว่า Reinstate Monica

4
ว้าวคุณเลือกหมายเลขเมล็ดได้อย่างไร ผลการค้นหาอื่น ๆ ใน ps เกือบจะเหมือนกัน ...
PsychOle

3
ฉันพยายามใช้เมล็ดพันธุ์เดียวกันกับสิ่งเหล่านี้เสมอ: en.wikipedia.org/wiki/154_(album)
Matthew Drury

9
คุณกำลังทำการทดสอบผิด: คุณกำลังเปรียบเทียบกลุ่ม 499 กลุ่มกับกลุ่มแรก ด้วยเมล็ด 154 ค่าเฉลี่ยกลุ่มแรกที่ 1.18 ... สูงผิดปกติ (ซึ่งอาจเกิดขึ้นเนื่องจากขนาดกลุ่ม 5 มีขนาดเล็กมาก) ดังนั้นกลุ่มอื่น ๆ ส่วนใหญ่จึงมีผลกระทบเชิงลบอย่างมีนัยสำคัญ lm(y ~ rand.class - 1)แก้ไขได้ด้วยการทำงานแบบ สิ่งนี้ไม่เปลี่ยนความถูกต้องของคำพูดทั้งหมดของคุณ (+1) เพื่อเพิ่มความน่าเชื่อถือให้ปรับขนาดของกลุ่มให้สมดุล:rand.class <- cut(1:N, N.classes)
whuber

1
แน่นอน: / ฉันคาดหวัง 100% เมื่อ @Huber เข้าและพูดอะไรบางอย่างที่ชัดเจนและชัดเจนว่าฉันพลาดไป ฉันจะแก้ไขมันตอนนี้
Matthew Drury

2

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

ในการทดสอบค่า t เป็นศูนย์อย่างง่าย ๆ (ซึ่งคล้ายคลึงกับการทดสอบว่าอิทธิพลของฟีเจอร์เป็นศูนย์) สถิติ T คือt=(x¯s)n

x¯sคือการประมาณขนาดตัวอย่างของเอฟเฟกต์หากมีขนาดเล็ก p-value จะไม่แสดงผลที่มีนัยสำคัญจนกว่าคำว่าจะมีขนาดใหญ่n

ในกรณีของคุณคุณลักษณะใด ๆ ที่ไม่มีผลกระทบจะช่วยเพิ่มประสิทธิภาพ แต่คุณอาจมีข้อมูลไม่เพียงพอที่จะทำให้ค่า p ของคุณสมบัตินั้นสำคัญ


4
ฉันไม่คิดว่าเป็นความจริงที่ว่าคุณลักษณะใด ๆ ที่มีเอฟเฟกต์ที่ไม่ใช่ศูนย์จะช่วยปรับปรุงประสิทธิภาพได้ บางทีนี่อาจเป็นความจริงในข้อมูลการฝึกอบรม แต่มันไม่ได้อยู่ในข้อมูลการทดสอบอย่างแน่นอน
Matthew Drury

@MatthewDrury คุณกำลังบอกว่าเราขาดวิธีการอนุมานการวัดจำนวนประชากรจากกลุ่มตัวอย่าง?
ทอดด์ D

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