Чи неправильно вибирати функції на основі p-значення?


12

Існує кілька публікацій про те, як вибрати функції. Один із методів описує важливість функції на основі t-статистики. У R, varImp(model)застосованому на лінійній моделі зі стандартизованими ознаками, використовується абсолютне значення t-статистики для кожного параметра моделі. Таким чином, ми в основному вибираємо особливість на основі її t-статистики, тобто наскільки точним є коефіцієнт. Але чи говорить точність мого коефіцієнта щось про передбачувальні здібності функції?

Чи може статися так, що моя особливість має низьку t-статистику, але все-таки покращить (скажімо) точність моделі? Якщо так, то коли б потрібно виключити змінні на основі t-статистики? Або це дає лише вихідну точку для перевірки прогнозних здібностей неважливих змінних?


3
Для однопробного випробування середньої величини t статистика - це просто середнє значення вибірки, поділене на оціночну стандартну помилку (стандартне відхилення вибірки, поділене на квадратний корінь розміру вибірки). Ця статистика сама по собі не залежить від якоїсь конкретної гіпотези. Виведення значення ара з цієї статистики дійсно залежить від гіпотези.
Ден Хікс

@DanHicks Я відредагував своє запитання.
Аліна

Я не дуже знайомий з каретою, але, здається, varImp()він призначений для інформативної або діагностичної функції, а не безпосередньо використовується для вибору або усунення ознак.
david25272

Відповіді:


11

T-статистика може нічого не говорити про передбачувальну здатність ознаки, і їх не слід використовувати для екранізації прогноктора з або передбачення прогнозів в прогностичну модель.

Р-значення кажуть, що помилкові функції важливі

Розглянемо наступне налаштування сценарію в Р. Створимо два вектори, перший - просто випадкових монет: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)

Гістограма 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

Значення р не вдається виявити прогнозовану силу обох змінних, оскільки кореляція впливає на те, наскільки точно модель може оцінити два окремих коефіцієнта з даних.

Конференційна статистика не існує, щоб розповісти про прогнозовану силу чи важливість змінної. Це зловживання цими вимірами, щоб використовувати їх таким чином. Існує набагато кращих варіантів для варіабельного вибору в лінійних прогнозних моделях glmnet.

(*) Зауважте, що я залишаю тут перехоплення, тому всі порівняння - це базове значення нуля, а не середнє значення групи першого класу. Це було пропозицією @ whuber.

Оскільки це призвело до дуже цікавого обговорення в коментарях, оригінальний код був

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

і

M <- lm(y ~ rand.class)

що призвело до наступної гістограми

Нахилена гістограма p-значень


2
Хм, чому це розподіл p-величин не є рівномірним?
Амеба каже: Відновити Моніку

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% очікував, що @whuber приїде, і скаже щось абсолютно зрозуміле і очевидне, що я пропустив. Я зараз це виправлю.
Метью Друрі

2

На t-статистику впливають розмір ефекту та розмір вибірки. Можливо, розмір ефекту не дорівнює нулю, але розмір вибірки недостатньо великий, щоб зробити його значущим.

У простому T-тесті на нульове значення (що є аналогічним тестуванню, якщо вплив функції дорівнює нулю) T-статистика -t=(x¯s)n

x¯s - вибіркова оцінка розміру ефекту, якщо вона мала, то значення p не покаже своє значення, поки термін стане великим.n

У вашому випадку будь-яка функція з ненульовим ефектом підвищить продуктивність, але у вас може бути недостатньо даних, щоб зробити значення цієї функції значущим.


4
Я не думаю, що це правда, що будь-яка функція з ненульовим ефектом покращить продуктивність. Можливо, це правда щодо даних про навчання, але це точно не є на даних тестів .
Меттью Друрі

@MatthewDrury Ви хочете сказати, що нам не вистачає методів для виведення вимірювань чисельності населення з зразків?
Todd D

Ні, але це правда, що помилкові функції можуть заважати вашим можливостям зробити це добре.
Меттью Друрі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.