สถิติแบบทีมีอยู่ถัดจากสิ่งใดที่จะพูดเกี่ยวกับความสามารถในการทำนายของคุณลักษณะและไม่ควรใช้เพื่อคัดกรองตัวพยากรณ์ออกจากหรืออนุญาตให้ตัวทำนายเป็นแบบจำลองการทำนาย
ค่า P บอกว่าคุณลักษณะปลอมแปลงมีความสำคัญ
พิจารณาการตั้งค่าสถานการณ์จำลองต่อไปนี้ในอาร์ลองสร้างเวกเตอร์สองอันอันแรกคือการโยนเหรียญแบบสุ่มครั้ง:5000
set.seed(154)
N <- 5000
y <- rnorm(N)
เวกเตอร์ที่สองคือการสังเกตโดยแต่ละค่าจะถูกสุ่มให้กับหนึ่งในคลาสที่มีขนาดเท่ากัน:5005000500
N.classes <- 500
rand.class <- factor(cut(1:N, N.classes))
ตอนนี้เราพอดีกับรูปแบบเชิงเส้นที่จะคาดการณ์ได้รับy
rand.classes
M <- lm(y ~ rand.class - 1) #(*)
ที่ถูกต้องคุ้มค่าสำหรับทุกค่าสัมประสิทธิ์เป็นศูนย์ไม่มีของพวกเขามีใดอำนาจการพยากรณ์ ไม่น้อยเลยส่วนใหญ่มีความสำคัญในระดับ 5%
ps <- coef(summary(M))[, "Pr(>|t|)"]
hist(ps, breaks=30)
ในความเป็นจริงเราควรคาดหวังว่าประมาณ 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)
ซึ่งนำไปสู่ฮิสโตแกรมต่อไปนี้