JMP에서 제한된 응답(출력 합계 = 1)을 사용하여 선형 또는 비선형 모델을 구축하는 방법은 무엇입니까?나는 종종 범주 간 비율을 나타내는 연속형 반응 변수를 모델링해야 하는데, 이때 각 샘플에 대한 반응의 합은 1이어야 합니다(예: P1=10%, P2=25%, P3=35%, P4=30%).
Python에서는 합계 1 제약 조건을 적용하기 위해 소프트맥스 출력 계층을 사용합니다.
- JMP에서 예측된 응답의 합이 1이 되도록 하면서 선형 또는 신경망 모델을 어떻게 구축할 수 있습니까?
- 권장하는 워크플로(예: 다항 로지스틱 회귀, 적절한 연결 함수가 있는 신경망)가 있나요?
- 마지막으로, 각 범주에 대한 예측 비율을 표시하는 프로파일러를 얻을 수 있나요(클래스 확률을 보여주는 범주형 프로파일러와 유사)?
어떤 지침이나 예시라도 알려주시면 감사하겠습니다!
고급 통계 모델링Re: JMP에서 제한된 응답(출력 합계 = 1)을 사용하여 선형 또는 비선형 모델을 구축하는 방법은 무엇입니까?안녕,
아마도 여러분이 찾고 있는 것을 달성하는 매우 간단한 방법은 가장 높은 y 값에 해당하는 명목 반응 열을 만들고 명목 로지스틱 회귀를 사용하여 그것을 x에 맞추는 것입니다(첨부된 표 참조).
이 데이터가 원하는 기능을 제공하나요? 그리고 사용 사례가 정확히 무엇인지 알려주시겠어요? 이 데이터는 무엇을 나타내며, 이를 통해 무엇을 배우고 싶으신가요?
Re: JMP에서 제한된 응답(출력 합계 = 1)을 사용하여 선형 또는 비선형 모델을 구축하는 방법은 무엇입니까?안녕하세요, 해들리님.
도와주셔서 감사합니다. 하지만 안타깝게도 제안하신 내용은 제 구체적인 필요 사항을 충족하지 못하는 것 같습니다.
목표: 합계가 1이 되는 제약 조건을 적용하여 출력을 예측해야 합니다. 이는 개체군 비율이나 혼합물 공식을 특성에 따라 모델링할 때 흔히 사용되는 조건입니다.
제 해결책: 중앙화된 로그 비율(CLR) 변환을 수동으로 구현했습니다. 작업 흐름은 다음과 같습니다.
- 출력을 중앙 로그 공간으로 변환
- 변환된 변수에 모델을 맞추세요
- 제약 조건이 준수되도록 역변환을 적용합니다.
변환에 대한 코드는 다음과 같습니다.
<SPAN>// Adjust zeros </SPAN><SPAN>epsilon = 0.0000001; </SPAN><SPAN>p1_adj = If(:p1 == 0, epsilon, :p1); </SPAN><SPAN>p2_adj = If(:p2 == 0, epsilon, :p2); </SPAN><SPAN>pk_adj = If(:pk == 0, epsilon, :pk); </SPAN>
<SPAN>// Scaling </SPAN><SPAN>sum_adj = p1_adj + p2_adj + ... + pk_adj; </SPAN><SPAN>p1_norm = p1_adj / sum_adj; </SPAN><SPAN>p2_norm = p2_adj / sum_adj; </SPAN><SPAN>pk_norm = pk_adj / sum_adj; </SPAN>
<SPAN>// Geometric mean </SPAN><SPAN>geom_mean = (p1_norm * p2_norm * ... * pk_norm)^(1/k); </SPAN>
<SPAN>// CLR transformation </SPAN><SPAN>y1_clr = Log(p1_norm / geom_mean); </SPAN><SPAN>y2_clr = Log(p2_norm / geom_mean); </SPAN><SPAN>yk_clr = Log(pk_norm / geom_mean); </SPAN>
<SPAN>// Inverse transformation (after prediction) </SPAN><SPAN>sum_exp = Exp(:y1_clr_pred) + Exp(:y2_clr_pred) + ... + Exp(:yk_clr_pred); </SPAN><SPAN>p1_pred = Exp(:y1_clr_pred) / sum_exp; </SPAN><SPAN>p2_pred = Exp(:y2_clr_pred) / sum_exp; </SPAN><SPAN>pk_pred = Exp(:yk_clr_pred) / sum_exp;</SPAN>
추가 요청: 명목 로지스틱이 각 레이블에 대한 누적 확률을 표시하는 방식과 유사하게, 프로파일러를 사용하여 각 출력에 대한 누적 비율을 표시하고 싶습니다. 귀하의 솔루션은 누적 시각화를 다루지만, 각 출력의 정확한 비율이 아닌 가장 높은 범주의 확률만 예측합니다.
참고를 위해 수동 변환의 예를 첨부했습니다.
안녕하세요,