PLS 플랫폼이 검증 없이 재설치되고 있습니다. + 부트스트랩을 어떻게 사용하나요?안녕,
1) 저는 PLS를 하고 있는데 42개의 관측치가 있습니다. 가능한 예측 변수의 수는 변수를 얼마나 미리 선택했는지에 따라 24~79~240개입니다. 내 Y는 범주형(2 또는 3)입니다. 플랫폼 출시를 실행한 후 NIPALS/SIMPLS 부분에 도달합니다. 사용하는 검증 유형(Kfold, 그대로 유지, 홀드아웃) 또는 선택한 요소 수에 관계없이 항상 오류가 발생합니다. "최고의 모델에는 요소 0개, 검증 없이 재적합".이 문제를 해결하기 위해 내가 할 수 있는 제안이 있나요? PLS를 꼭 써보고 싶은데 아무런 검증도 없이 모델링하는 것은 과적합일 뿐입니다...
2) 결과가 나오면 예측 공식을 갖게 됩니다. 부트스트랩하는 절차는 무엇입니까? 결과를 부트스트랩하는 절차에 관해 많은 불확실성이 있습니다. JMP가 검증 프로세스에 부트스트래핑을 도입했으면 좋겠습니다. 부트스트랩된 계수의 평균을 구해야 한다고 가정하지만, 전체 모델을 포함하여 해당 테이블을 다시 실행하는 부트스트래핑을 수행합니다. k-겹 검증(작동한 경우)? 그렇다면 중심화 및 스케일링된 데이터를 사용해야 합니까, 아니면 원래 계수를 사용해야 합니까? 결과를 수식으로 수동으로 입력해야 하므로 원래 계수를 부트스트랩해야 한다고 가정합니다. 그러나 중앙에 조정된 데이터를 사용하여 모델을 실행하고 원래 계수를 제공하거나 원래 계수를 사용하여 모델을 실행합니다. ? 프로세스 관점에서 보면 전체 절차가 매우 불분명합니다. 즉, 원하는 결과에 도달하기 위해 단계별로 어떤 일이 일어나는지 알 수 없습니다. 어떤 도움이나 통찰력이라도 감사하겠습니다!
감사해요,
우리엘.
예측 모델링 및 기계 학습Re: PLS 플랫폼이 검증 없이 재설치되고 있습니다. + 부트스트랩을 사용하는 방법은 무엇입니까?안녕 @utkcito ,
이제 "부트스트랩"이 원래 의미했던 바를 이해합니다. 부트스트랩 플랫폼을 실행하는 것이 좋은 접근 방식이지만 신경망, GenReg, 부스트 트리를 사용하여 예측 모델을 실행하고 XGBoost 추가 기능도 얻고 싶을 것입니다. 검증 테스트 세트의 다양한 예측 공식을 비교합니다. 그렇게 할 때 가장 잘 맞도록 설정을 확인하고 조정해야 합니다. 기본 맞춤이 항상 그렇게 좋은 것은 아닙니다.
그러나 트리 접근 방식의 한 가지 좋은 점은 모델을 만들기 위해 다양한 의사결정 트리를 사용하는 집계된 접근 방식이라는 것입니다. 요인이 기여도에 있어 그다지 중요하지 않은 경우 해당 요인은 자동으로 아래로 밀려나 전체 모델에 대한 기여도가 높은 것으로 표시되지 않습니다. 그러나 무작위 시작 및 결정 프로세스로 인해 부트스트랩 포리스트 및 부스트 트리 접근 방식은 특별히 안정적이지 않습니다. 동일한 설정을 수백 번 실행하면 실제로 약간 다른 답변과 공식을 얻는다는 것을 알 수 있습니다. 그렇기 때문에 출력 보고서(예: 부트스트랩 포리스트)에서 "SS" 또는 "부분"을 부트스트랩하여 모델에서 해당 요소가 실제로 얼마나 강력한지 더 잘 추정하는 것이 좋습니다.
즉, 교차 검증 방법을 사용하여 과적합을 방지하는 것이 좋습니다. 그리고 상대적으로 짧은 데이터 테이블(측정값이 많지 않음)을 사용하면 이전 답변에서 언급한 자동 유효성 검사 방법을 사용하지 않는 한 Leave-One-Out 접근 방식을 사용하지 않고는 이를 수행하기 어려울 것입니다. K-겹 교차 검증도 좋은 접근 방식일 수 있습니다.
입력 데이터가 어떤 모양인지는 잘 모르겠지만, JMP가 "기능 데이터"라고 부르는 스펙트럼이나 각 파장(또는 x 값)이 이웃 데이터와 상관 관계가 있는 기타 규칙적인 간격의 데이터처럼 들리는 것 같습니다. 더 나은 예측 변수 하위 집합을 생성하기 위해 기능적 데이터 탐색기를 사용하는 방법을 살펴볼 수도 있습니다. 또는 PCA는 예측 변수의 차원을 줄이고 더 작은 직교 벡터 세트를 사용하여 데이터를 모델링하는 좋은 접근 방식이기도 합니다.
귀하의 요점은 다음과 같습니다.
1) *2 요인 접근 방식과 매우 다양한 교차 용어를 포함하는 이론적(생물학적, 화학적, 물리적) 이유가 있습니까? 이를 포함시킬 이론적 이유가 없다면 그다지 의미가 없으며 잘못된 예측 변수를 도입할 수 있습니다.
2) PLS 플랫폼에서는 보고서의 "설명된 백분율 변동"에서 누적 Y 응답을 살펴보는 것도 중요합니다. 예측 변수의 선형 조합이 Y의 반응을 많이 설명하지 못하는 경우 설명된 변동(%)은 매우 낮을 것입니다. 이는 예측 변수가 Y의 변동을 설명하는 선형 조합으로서 특별히 훌륭한 역할을 수행하지 않음을 나타냅니다. 플랫폼은 아마도 더 잘 작동할 것입니다. 응답 측정값이 너무 적기 때문에 이렇게 많은 수의 예측변수를 맞추려고 하면 자유도가 충분하지 않기 때문에 과적합으로 이어질 가능성이 높습니다. PLS와 함께 다변량 분석에서 요인 분석 플랫폼을 검토하는 것을 고려할 수 있습니다. 나는 당신의 사이토카인 변수가 너무 많아 자유도를 잃을 수도 있다고 생각합니다. 두 개의 점이 있고 선을 맞추거나 세 개를 맞추고 포물선을 맞추는 것을 상상해 보십시오. 이는 다항식을 맞추는 데 필요한 최소 점 수이기 때문에 완벽하게 맞지만 자유도를 잃고 더 이상 오류를 추정할 수 없습니다. 또는 품질에 적합합니다. PLS 플랫폼에서는 이런 일이 벌어지고 있는 것 같아요.
3) 커뮤니티 페이지가 최고입니다. 특히 JMP에서 코딩할 때 JSL 스크립트의 경우 항상 확인합니다. 거의 항상 다른 사람이 해결한 코드 조각이 있는데, 이것이 바로 내 작업에 꼭 필요한 코드입니다. 나는 또한 질문을 검토하고 무엇을 도울 수 있는지 확인하는 것을 좋아합니다. 특히 새로운 것을 배울 때 더욱 그렇습니다.
행운을 빌어 요!,
DS
Re: PLS 플랫폼이 검증 없이 재설치되고 있습니다. + 부트스트랩을 사용하는 방법은 무엇입니까?안녕하세요 DS님,
1) 변수가 24~237개인 이유는 바로 변수 선택을 얼마나 하느냐에 따라 달라지기 때문입니다. 24는 부트스트랩 포레스트 이후이므로 *2 계승을 수행할 수 있습니다. 237은 전체 사이토카인 세트입니다.
2) " 예측자는 또한 반응과 공변해야 합니다. 그렇지 않으면 오류가 발생합니다. 즉, 반응의 변화를 설명하는 예측자의 선형 조합이 없다는 의미입니다." 이에 대해 좀 더 설명할 수 있습니까? 나는 공분산이 그들 사이에 있다고 생각했습니다. 즉, 다중 공선형이며 PLS는 공분산의 기초가 되는 요인을 생성하여 변수 간의 공분산을 사용한다고 생각했습니다. 나는 당신이 그들이 다른 사람들과 공변해야 한다고 말할 때 당신이 말하는 것이 무엇을 의미하는지 잘 모르겠습니다. 응답 . 나는 24, 79 또는 237개의 사이토카인 변수(실제로 종단 측정의 평균, 중앙값 및 IQR임) 중 어떤 선형 조합도 반응의 변화(중환자실의 심각한 질병)를 설명할 수 없다고 생각하기가 어렵습니다. 실제로 다른 환경에서도 그렇게 한다는 것이 이미 확립되어 있으므로 JMP가 왜 그렇게 하는지 모르겠습니다.
3) 부트스트래핑을 운용하는 방법에 대한 설명을 주셔서 감사합니다. 훨씬 더 이해가 되고 시도해 보았는데 작동합니다. 저는 JMP의 공식 문서가 얼마나 도움이 되지 않는지, JMP의 작동 방식과 작동 방법에 대한 세부 정보가 얼마나 부족한지, 포럼, 튜토리얼 등이 실제로 얼마나 많은 도움을 주는지에 대해 항상 놀랐습니다.
정말 감사합니다!
우리엘.
Re: PLS 플랫폼이 검증 없이 재설치되고 있습니다. + 부트스트랩을 사용하는 방법은 무엇입니까?안녕 @utkcito ,
우선, PLS는 데이터에 사용하기에 가장 적합한 플랫폼이 아닐 수도 있습니다. 모델에서 실제로 어떤 예측 변수가 중요한지 확인하려면 이를 GenReg 또는 Stepwise로 실행하는 것이 더 나을 수 있습니다. 예측 변수의 수가 24개에서 최대 240개까지인 것이 매우 이상하다고 생각합니다. 가능한 예측 변수 수에 비해 관측값이 너무 적기 때문에 모델에 불필요한 요소를 너무 많이 추가하지 않도록 예측 변수 선별을 실제로 수행해야 합니다. PLS는 이를 처리할 수 있지만 예측 변수는 응답과 공변해야 합니다. 그렇지 않으면 해당 오류가 발생합니다. 즉, 응답의 변동을 설명하는 예측 변수의 선형 조합이 없음을 의미합니다. 그러나 PLS를 사용해야 하고 다른 옵션이 없는 경우에는 범주형(2 또는 3)에서 순서형(2 또는 3)으로 응답을 변경하는 것이 좋습니다. 더 나은 수치해법을 찾을 수도 있습니다. 또한, 다음을 살펴보고 사용하는 것이 좋습니다. 자동 검증 대규모 예측 변수 목록을 확인하는 접근 방식입니다.
둘째, JMP는 피팅을 수행할 때 항상 중심화 및 척도화된 데이터를 사용하여 더 나은 추정값을 얻은 다음 실제 추정치를 다시 계산한다고 믿습니다. 따라서 부트스트래핑 결과는 실제로 중요하지 않습니다. 그러나 중심화되고 확장된 데이터보다는 실제 추정 부트스트랩을 해석하는 것이 더 합리적이거나 더 쉬울 수 있습니다. 그리고 그렇습니다. 추정치를 부트스트래핑하면 수행 중인 검증에 따라 피팅이 다시 실행됩니다.
마지막으로 추정치를 부트스트랩하려면 JMP 보고서에서 열 추정치를 마우스 오른쪽 버튼으로 클릭한 다음 부트스트랩을 선택합니다. 빠르면 5000 정도 넣고, 느리면 2500 정도 놔두세요. "부분 가중치" 상자를 확인하세요. 피팅을 여러 번 다시 실행한 다음 예측 변수의 각 계수에 대한 값 분포를 제공합니다(출력 데이터 테이블에서 "분포" 스크립트를 실행하기만 하면 됩니다). 그런 다음 표시되는 분포 및 통계를 사용하여 요약 통계를 마우스 오른쪽 버튼으로 클릭하고 "결합된 데이터 테이블로 만들기"를 선택할 수 있습니다. 또한 0이 아닌 비율을 표시하려면 요약 통계를 사용자 정의해야 합니다.
결합된 데이터 테이블에는 추정치에 대한 평균과 0이 아닌 비율이 포함됩니다. 여기에서 평균(일반적인 값)이 무엇인지와 해당 추정치가 0이 아닌 빈도(퍼센트 기준)를 확인할 수 있습니다. 해당 숫자가 작으면 추정치는 종종 0이 됩니다. 그것이 크면 대부분의 경우 0이 아닙니다. 이는 모형에 어떤 항과 혼합 항이 필요하거나 필요하지 않은지 결정하는 좋은 방법입니다.
도움이 되었기를 바랍니다,
DS