태그 보관물: gam

gam

이전의 모든 노력을 무시한이 비선형 다중 회귀 분석에 적합하도록 도와주세요 A, 하이 A, 로우 A, 루키 및

편집 :이 게시물을 만든 이후로 여기에 추가 게시물이 있습니다 .

아래 텍스트 요약 : 모델 작업 중이며 선형 회귀, Box Cox 변환 및 GAM을 시도했지만 많은 진전이 없었습니다.

을 사용하여 R현재 메이저 리그 (MLB) 수준에서 마이너 리그 야구 선수의 성공을 예측하는 모델을 연구하고 있습니다. 종속적 변수, 공격적 경력이 대체보다 높음 (oWAR)은 MLB 수준에서의 성공을위한 대리자이며 선수가 자신의 경력 과정에서 참여하는 모든 경기에 대한 공격적 기여의 합으로 측정됩니다 (자세한 내용은 여기 -http : //www.fangraphs.com/library/misc/war/). 독립 변수는 나이를 포함하여 메이저 리그 레벨에서 성공을 예측하는 중요한 예측 변수로 간주되는 통계에 대한 z 점수 마이너 리그 공격 변수입니다 (어릴 때 더 많은 성공을 거둔 플레이어는 더 나은 전망이됩니다). ], 보행 속도 [BBrate] 및 조정 된 생산 (전 세계적으로 공격적인 생산 측정). 또한, 마이너 리그에는 여러 레벨이 있으므로, 마이너 리그 플레이 레벨 (더블 A, 하이 A, 로우 A, 루키 및 단기 시즌 트리플 A를 포함한 더미 변수 포함) (메이저 리그보다 높은 레벨) 참조 변수로]). 참고 : WAR의 크기를 0에서 1까지의 변수로 조정했습니다.

변수 산점도는 다음과 같습니다.

산포도

참고로 종속 변수 oWAR에는 다음 플롯이 있습니다.

종속 변수 도표

선형 회귀로 시작 oWAR = B1zAge + B2zSOPct + B3zBBPct + B4zAdjProd + B5DoubleA + B6HighA + B7LowA + B8Rookie + B9ShortSeason하여 다음 진단 플롯을 얻었습니다.

linearRegressionDiagnostics

잔차의 편견이없고 랜덤 변이가 없다는 명확한 문제가 있습니다. 또한 잔차가 정상이 아닙니다. 회귀 결과는 다음과 같습니다.

linearRegressionResults

이전 스레드 의 조언에 따라 Box-Cox 변환을 성공하지 못했습니다. 다음으로 로그 링크로 GAM을 시도하고 다음 플롯을 받았습니다.

스플라인

기발한
diagnosticChecksGAM

새로운 진단 플롯
GAMDiag

스플라인이 데이터에 적합하는 것처럼 보이지만 진단 그림에는 여전히 적합하지 않습니다. 편집 : 원래 잔차 대 적합 값을보고 있다고 생각했지만 잘못되었습니다. 원래 표시된 플롯은 원본 (위)으로 표시되고 나중에 업로드 한 플롯은 새 진단 플롯 (위의)으로 표시됩니다.

GAM 결과

모형 의 가 증가했습니다

R2

그러나 명령 gam.check(myregression, k.rep = 1000)에 의해 생성 된 결과 는 그렇게 유망하지 않습니다.

GAMResults2

누구든지이 모델의 다음 단계를 제안 할 수 있습니까? 지금까지 진행 한 과정을 이해하는 데 도움이 될만한 다른 정보를 제공해 드리겠습니다. 도움을 주셔서 감사합니다.



답변

아주 좋은 일입니다. 이 상황은 비례 배당률 반모 수 순서 형 로지스틱 모형의 후보라고 생각합니다. lrmR rms패키지 의 기능 은 모델에 적합합니다. 지금은 를 반올림 하여 100-200 레벨 만 가질 수 있습니다. 곧 새로운 버전의 새로운 기능 발표 될 예정이다 즉 효율적으로 모델에 차단 수천 수, 수 완전히 연속으로 [갱신이 2014 년에 등장]. 비례 승산 모델 는 변환 방식에 영향을받지 않습니다 . 그것은 Quantile도 변하지 않음을 의미합니다. 예측 평균을 원할 때 는 적절한 구간 척도로 가정합니다.

Y

rmsorm

Y

β

Y

Y


답변

종속 변수와 모델을 다시 작업하는 것이 유익 할 수 있다고 생각합니다. 에서 남은 잔상을 살펴보면 lm(), 주요 문제는 커리어 WAR이 높은 플레이어 (모든 WAR의 합으로 정의)에있는 것 같습니다. 가장 많이 예측 된 (확장 된) WAR은 최대 1에서 0.15입니다! 이 종속 변수에는이 문제를 악화시키는 두 가지가 있다고 생각합니다.

  • 단순히 더 오래 플레이하는 플레이어는 WAR을 수집 할 시간이 더 많습니다
  • 좋은 플레이어는 더 오래 유지되는 경향이 있으므로 WAR을 수집하는 데 더 오랜 시간이 걸릴 기회가 있습니다

그러나 예측의 맥락에서 명시 적으로 컨트롤 (무게 또는 평균 경력 WAR 계산에서 분모로 어떤 식 으로든)으로 재생 된 시간은 비생산적입니다 (또한 효과가 비선형 적이라고 생각합니다). 따라서 나는 사용하여 혼합 모델에서 다소 적은 명시 적으로 시간을 모델링 제안 lme4하거나 nlme.

종속 변수는 계절별 WAR이며 플레이어 마다 계절 수가 다른 입니다 . 이 모델은 플레이어를 랜덤 효과로 사용하며 다음과 같은 라인을 따릅니다.

j=mi

i

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

를 사용하면 lme4다음과 같이 보일 것입니다.
lmer(sWAR ~ <other stuff> + (1|Player), data=mydata)

여전히 에서 변환해야 할 수도 있지만 이것이 피드백 루프에 도움이 될 것이라고 생각합니다.

sWAR


답변