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


9

EDIT: З моменту створення цієї публікації я перейшов до додаткової публікації тут .

Короткий зміст тексту нижче: Я працюю над моделлю і спробував лінійну регресію, трансформації Box Cox та GAM, але не досягнув особливого прогресу

Використовуючи R, я в даний час працюю над моделлю , щоб передбачити успіх Малих бейсбольної ліги гравців на рівні вищої ліги (MLB). Залежна змінна, наступальна кар'єра перемагає вище заміни (oWAR), є проксі для успіху на рівні MLB і оцінюється як сума образливих внесків за кожну гру, в яку гравець бере участь протягом своєї кар'єри (детальніше тут - http : //www.fangraphs.com/library/misc/war/). Незалежні змінні - це z-набрані мінорні наступальні змінні ліги для статистики, які вважаються важливими прогнозами успіху на рівні вищої ліги, включаючи вік (гравці з більшим успіхом у молодшому віці, як правило, кращі перспективи), викреслюють показник [SOPct ], коефіцієнт вигулу [BBrate] та скориговане виробництво (глобальний показник наступального виробництва). Крім того, оскільки є кілька рівнів другорядних ліг, я включив фіктивні змінні для другорядного рівня гри (подвійний А, Високий А, Низький А, Новичок та Короткий сезон з Потрійним А [найвищий рівень до основних ліг] як еталонну змінну]). Примітка: Я змінив масштаб WAR, щоб бути змінною, яка переходить від 0 до 1.

Змінна розсіювач така:

Діаграма розкиду

Для довідки залежна змінна oWAR має такий графік:

залежний варіабельнийплот

Я почав з лінійної регресії oWAR = B1zAge + B2zSOPct + B3zBBPct + B4zAdjProd + B5DoubleA + B6HighA + B7LowA + B8Rookie + B9ShortSeasonі отримав наступні діагностичні діаграми:

лінійна регресіяДіагностика

Існують чіткі проблеми з відсутністю неупередженості залишків і відсутністю випадкових варіацій. Крім того, залишки не є нормальними. Результати регресії наведені нижче:

linearRegressionResults

Дотримуючись порад у попередній темі , я спробував перетворення Box-Cox без успіху. Далі я спробував GAM з посиланням на журнал і отримав такі сюжети:

сплайни

Оригінал діагностична перевіркаГАМ

Новий діагностичний сюжет GAMDiag

Схоже, сплайни допомогли підігнати дані, але діагностичні діаграми все ще показують погану форму. EDIT: Я думав, що спочатку дивився на залишки та встановлені значення, але я був невірним. Діаграма, яку було показано спочатку, позначена як Оригінал (вище), а сюжет, який я завантажив після цього, позначений як Новий діагностичний сюжет (також вище)

Результати гри

моделі збільшиласяR2

але результати, отримані командою gam.check(myregression, k.rep = 1000), не такі перспективні.

GAMResults2

Хтось може запропонувати наступний крок для цієї моделі? Я радий надати будь-яку іншу інформацію, яку, на вашу думку, може бути корисною для розуміння прогресу, який я досяг до цього часу. Дякуємо за будь-яку допомогу, яку ви можете надати.


2
Я знайшов код у цій чудовій букварі на GAM в R - www3.nd.edu/~mclark19/learn/GAMS.pdf Код: бібліотека (машина) scatterplotMatrix (mydata [, c (1,1: 8)]], pch = 19, cex = .5, reg.line = F, lwd.smooth = 1,25, спред = F, еліпс = T, col = c ('grey60', '# 2957FF', '# FF8000'), col.axis = 'grey50')
zgall1

1
Чи можете ви поділитися своїм набором даних? Також +1 для цієї матриці розсіювання. Це чудово.
Зак

1
Це дуже погано, схоже на цікавий набір даних. Моя пропозиція - спробувати деякі інші алгоритми машинного навчання, наприклад, випадковий ліс.
Зак

2
Випадкові ліси ґрунтуються на деревах рішень. Ознайомтеся з пакетом randomForest у R та на сторінці випадкової лісової вікіпедії: en.wikipedia.org/wiki/Random_forest
Зак

2
"Залежна змінна величина ... вимірюється як сума образливих внесків за кожну гру, в яку гравець бере участь протягом своєї кар'єри". Це вискакує до мене. Серйозним прихильником тут є те, як довго грає гравець, і те, що [a] триваліший час гри означає більше часу для "збору" oWAR [b] кращі гравці, ймовірно, гратимуть довші періоди часу.
Affine

Відповіді:


6

Дуже приємна робота. Я думаю, що ця ситуація є кандидатом на пропорційну півпараметричну порядкову логістичну модель. lrmФункція в R rmsпакет буде відповідати моделі. Наразі ви можете закруглювати щоб мати лише 100-200 рівнів. Незабаром буде випущена нова версія програми з новою функцією, яка ефективно дозволяє отримати тисячі перехоплень у моделі, тобто дозволяє бути повністю безперервним [оновлення: це з'явилося в 2014 році]. Модель пропорційних коефіцієнтів s інваріантна тому, як перетворюється. Це означає, що квантили також є інваріантними. Коли потрібно прогнозувати середнє значення, вважається , що знаходиться на правильній інтервальній шкалі.YrmsormYβYY


1
Під рівнями, ви маєте на увазі порядок змінної Y на 100-200 відра? Якщо так, чи є якийсь кращий метод вибору розміру контейнера? Чи повинні вони бути однакового розміру?
zgall1

1
Просто виконайте бінінг тимчасово, якщо у нас немає постійного рішення. Ви можете поповнити 100 відсотків, наприкладrequire(Hmisc); cut2(y, g=100, levels.mean=TRUE)
Френк Харрелл

Коли ви скажете, що rmsскоро буде випущена нова версія програми , чи маєте ви уявлення, коли це може бути?
zgall1

Якщо ви використовуєте linux, я можу дати вам це зараз, інакше очікуйте 2 тижні.
Френк Харрелл

Я не використовую Linux, тому, мабуть, доведеться почекати. Будь ласка, дайте мені знати, коли вона буде доступна.
zgall1

1

Я думаю, що перероблення залежної змінної та моделі може бути плідним тут. Дивлячись на ваших залишків з lm(), здається, головна проблема - з гравцями з високою ВІЙНОМ у кар'єрі (яку ви визначили як суму всієї ВІЙНИ). Зауважте, що ваша найвища прогнозована (масштабована) ВІЙНА - 0,15 з максимум 1! Я думаю, що з цією залежною змінною є дві речі, які загострюють цю проблему:

  • Гравці, які просто грають довше, мають більше часу на збір війни
  • Хороших гравців, як правило, тримають довше, і, таким чином, вони матимуть можливість довше збирати війну

Однак у контексті прогнозування, включаючи час, який явно відіграється як контроль (будь-яким чином, чи то як вага, чи як знаменник для обчислення середньої військової кар'єри), є контрпродуктивним (також, я підозрюю, що його ефект також був би нелінійним). Тому я пропоную час моделювання дещо менш явно в змішаній моделі з використанням lme4або nlme.

Вашою залежною змінною була б сезонна ВІЙНА, і ви мали б різну кількість сезонів на гравця . Модель матиме плеєр як випадковий ефект, і буде відповідати наступним чином:j=mii

sWARij=α+σi2+<other stuff>+εij

З lme4, це виглядатиме приблизно так
lmer(sWAR ~ <other stuff> + (1|Player), data=mydata)

Вам все ще може знадобитися перетворення на , але я думаю, що це допоможе вирішити цю петлю зворотного зв’язку.sWAR


Я не впевнений, що повністю розумію. Якщо залежна змінна - сезонна WAR, то які незалежні змінні? Ідентична статистика другорядних ліг для кожного гравця? По суті, ми говоримо, що статистика другорядних ліг А може призвести до вищої ліги ВІЙНИ B, C, D і E?
zgall1

Крім того, після публікації цієї моделі я переглянув додатковий пост, який ви можете переглянути тут: stats.stackexchange.com/questions/61711/…
zgall1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.