JMP는 BoxCox 변환을 어떻게 수행하나요?영어: 최근에 Python 코드 옵션을 사용하여 JMP 수식을 Excel로 변환하고 있습니다. BoxCox 변환과 관련된 수식(MLR)을 실제로 전송할 수 없었습니다. 수식에 따라 수동으로 계산을 수행했고 10만 개가 있어야 할 곳이 아닌 수백만 개가 되었습니다. 수식이 이미 다시 변환되었는지 아는 사람이 있는지 또는 정상적인 용어로 다시 변환하기 위해 역 BoxCox를 적용하려면 어떻게 해야 하는지 알고 싶습니다. 뭔가를 놓쳤는지 또는 수식 게시 옵션을 통한 Python 코드에 뭔가가 누락되었는지 모르겠습니다. 누군가 JMP가 Box Cox 변환을 수행하는 방식을 설명하여 더 잘 이해하고 잠재적으로 수정할 수 있기를 바랐습니다. 수식 코드를 첨부하려고 했지만 게시할 수 없었습니다. 도움을 주시면 감사하겠습니다.
데이터 탐색 및 시각화예측 모델링 및 머신 러닝Re: JMP는 BoxCox 변환을 어떻게 수행하나요?Box-Cox 변환에 대한 문서와 공식은 여기에서 확인할 수 있습니다: https://www.jmp.com/support/help/ko/18.2/index.shtml#page/jmp/boxcox-y-transformation.shtml
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?안녕하세요 @DWS : 이것도 도움이 될 것 같아요.
https://community.jmp.com/t5/Discussions/How-to-understand-Lambda1-and-Lambda2-for-Box-Cox-transformation/mp/614578#M81444
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?감사합니다. 덕분에 BoxCox 변환에 대한 전반적인 이해는 되었지만, JMP에서 어떻게 변환하는지 정확히 이해할 수는 없었습니다. 다음 질문을 통해 이해하시는 데 도움이 될 것 같습니다. BoxCox 수식에 대해 JMP의 매개변수 추정 섹션에 표시되는 숫자는 BoxCox 변환된 값인가요, 아니면 이미 이해하기 쉬운 단위로 역변환된 값인가요?
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS "인자 프로파일링" 메뉴에서 "박스 콕스 변환"만 선택하면 변환이 적용되지 않고 매개변수 추정치는 Y를 기반으로 합니다. 하지만 박스 콕스 변환("박스 콕스 변환" 출력의 빨간색 삼각형)을 추가로 적용하면 매개변수 추정치는 변환된 Y를 기반으로 합니다.
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?알겠습니다. 명확히 하자면, 새 메뉴에서 "변환으로 재적합"을 클릭하면 나오는 공식은, 해당 공식과 매개변수 추정값이 변환된 후 역변환되어 실수 단위로 돌아오지 않고 변환된 단위로 남아 있다는 것입니다. 만약 그렇다면, JMP가 역변환에 사용하는 공식을 알 수 있을까요? 저장된 열 예측 공식에서 정규 역변환을 적용해야 할까요? 아니면 정규 역변환을 적용해야 할까요? 그리고, 이 공식을 경험적으로 알고 계신 건가요? 아니면 제가 어디에서도 찾을 수 없어서 어딘가에 작성되어 있는 건가요? 질문이 많아 죄송합니다.
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS : 보시다시피, 예측 공식을 다시 맞추고 저장하면 역변환되어 예측값이 원래 Y 축척으로 유지됩니다. 그리고 새 열의 공식이 바로 당신이 찾는 역변환 공식입니다. 이 공식이 JMP 도움말에 있는지는 잘 모르겠지만 (제 작업에서는 어떻게 되는지 확인할 수 있었습니다) 매개변수 추정값에 대해 질문하시는 게 무엇인지 잘 모르겠습니다. 매개변수 추정값은 어떤 식으로도 변환되지 않고, Y만 변환됩니다.
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?좋아요, 두 수식 사이의 X 변수 하나와 절편만 있는 예를 들어 보겠습니다. BoxCox가 아닌 경우: 절편: 254,077 X1: -44,880. BoxCox 이후 동일한 수식과 변수: 절편: 61,472,780 X1; -43,139. 제 문제가 뭔지 아시겠죠? 이 숫자들은 모수 추정값에서 가져와 수식 편집기에서 검증한 것입니다. 모든 x 변수는 동일하고 변환되지 않은 변수와 크게 다르지 않지만 절편은 매우 어긋납니다. 왜 그런지 모르겠고, 어떻게 이런 일이 가능한지조차 모르겠습니다.
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS BC 변환에서 람다는 몇 개인가요? 그리고 X는 몇 개인가요? 두 세트의 매개변수 추정값을 사진으로 찍어주시겠어요?
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS 아, 이런. 역변환은 걱정할 것 중 가장 작은 부분인 것 같습니다. 계수(특히 50개가 넘는 계수 중 하나) 해석을 고려하기 전에, 모델에 있는 항들을 가지고 있는 데이터로 추정할 수 있는지 확인해야 합니다. 어떤 추정값은 편향되어 있고, 어떤 추정값은 0으로 설정되어 있습니다. 이는 상관관계가 높은 X에 대한 일부 모수를 추정하려 하고 있거나, 데이터 구조상 추정하려는 항을 추정할 수 없어서 추정할 수 없는 일부 모수를 추정하려 한다는 것을 의미합니다. 모수 추정표의 VIF(표시되지 않으면 모수 추정표에서 마우스 오른쪽 버튼을 클릭하여 선택하세요)는 다중공선성(상관관계)을 파악하는 데 도움이 됩니다. 예를 들어, X1과 X2가 함께 움직이는 경우, 두 모수를 모델에 모두 포함하면 두 모수의 해석에 대한 신뢰도가 떨어지므로 둘 중 하나를 모델에서 후보로 제외해야 합니다.
또한, 람다 = -0.002인 경우 LN 변환을 사용하는 것이 더 쉽습니다. 해석하기가 더 쉽고, -0.002는 0에 매우 가깝습니다(람다=0은 LN 변환에 해당).
편집: 자세한 내용은 여기를 참조하세요.
https://community.jmp.com/t5/Discussions/Parameter-Estimates-being-zerod/mp/751701
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?도움 주셔서 감사합니다. 저도 그 내용을 잘 알고 있습니다. 이 예시는 BC 공식과 비BC 공식의 절편의 유의미한 차이를 보여드리기 위해 만든 것입니다. 절편이 왜 그렇게 다른지 아시나요?
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS 음... 하나는 BoxCox(Y)를 기반으로 하고 다른 하나는 Y를 기반으로 합니다. 그런데 왜 절편이 다르지 않을까요 ? 그리고 제가 둔감하게 굴려는 건 아닙니다.
편향된 매개변수 추정값과 0으로 설정된 매개변수 추정값 문제는 일단 제쳐두겠습니다. 두 모델 모두 최소제곱법을 사용하여 각 모델의 매개변수를 추정합니다. 그리고 각 모델은 최소제곱법에 따라 서로 다른 매개변수 추정값을 갖습니다. 두 추정값이 다른 이유는 응답 변수(하나는 Y, 다른 하나는 BoxCox[Y])가 다르기 때문입니다.
그리고 LN 변환을 가정하면, BoxCox[Y] = LN[Y]이고, 역변환하면 Y = exp[정수 + X의 선형 결합] = exp[정수]*exp[X의 선형 결합]이 됩니다. 이 모델은 곱셈적이므로, 이 모델의 절편은 변환되지 않은 덧셈 모델의 절편과 Y에 미치는 영향이 다릅니다.
도움이 되셨으면 좋겠습니다. 혹시 제가 질문의 내용을 제대로 이해하지 못했을 수도 있는데, 왜 이렇게 걱정하시는 건가요?
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?이 이미지를 읽을 수 있는지 모르겠지만 왼쪽에서 예측값을 비교한 것을 볼 수 있습니다. 서로 공평하지 않습니다. 오른쪽에서 비 BC 및 BC 페이지와 하단에 있는 매개변수 추정값을 볼 수 있습니다. 비 BC의 매개변수 추정값에 제공된 절편 + 추정값(X) 공식을 사용하여 시트에서 예측값을 얻을 수 있지만 BC의 경우 BC 추정값이 3,860억이므로 예측값을 얻을 수 없습니다. 파이썬 코드에서 제공된 숫자와 동일하므로 Excel에서 왼쪽에 표시된 정확한 숫자를 얻을 수 없습니다. 왼쪽 이미지에 표시된 Box Cox 예측을 계산하는 데 JMP가 사용하는 실제 공식을 알고 싶습니다.

Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS 제가 이해한 바로는, 출력 화면 상단의 빨간색 삼각형 메뉴를 통해 예측 공식을 저장할 수 없나요?
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS 또는 일반적으로 그림을 참조하세요(그리고 g는 Y의 기하 평균입니다).
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?여전히 3.868e+11이 나옵니다.
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS 뭔가 잘못하고 있거나 잘못 해석하고 계신 것 같습니다. Excel에서 Y 값을 예측하는 데 어떤 방정식을 사용하시나요?
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?JMP에서 바로 Python 실행
def getModelMetadata():
{"creator": u"적합 최소제곱법", "modelName": u"", "predicted": u"BoxCox(판매가 조정됨, -1.088)", "table": u"국가 수출", "version": u"18.0.2", "timestamp": u"2025-07-02T17:34:44Z"}를 반환합니다.
def getInputMetadata():
반품 {
u"대략적인 거주 공간": "float",
u"YSB": "float"
}
def getOutputMetadata():
반품 {
u"Pred Formula BoxCox(판매가 조정,-1.088)": "float"
}
def score(입력 데이터, 출력 데이터):
outdata[u"예측 공식 BoxCox(조정된 판매 가격,-1.088)"] = 386761700160.329 + 153.473460505384 * indata[u"대략적인 거주 면적"] + -1519.63590642121 * indata[u"YSB"]
[u"Pred Formula BoxCox(판매 가격 조정됨,-1.088)"]를 반환합니다.
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS 변환된 Y를 반환하는 것 같습니다. Y가 필요하다면 이 그림에서처럼 역변환을 해야 합니다(여기서 g는 Y의 기하 평균입니다).
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS 더 자세히 설명해 보겠습니다. outdata 함수의 방정식이 정확하지 않습니다. 첨부된 그림에서 해당 함수를 f(x)로 두고, g를 Y의 기하 평균으로 두면 원하는 결과를 얻을 수 있습니다.
즉, 첨부된 그림에서 f(x) = 386761700160.329 + 153.473460505384 * indata[u"대략적인 거주 면적"] + -1519.63590642121 * indata[u"YSB"]라고 합시다.
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?제가 수학을 잘 못해서 그런지 모르겠지만, 아직 못 해봤어요. 그리고 엑셀이랑 함수에 입력할 수 있어야 하는데, 똑같은 수식은 아니지만 아주 비슷한 수식이 필요해요. 여기 수식 편집기가 있는데, 이 방법이 괜찮을까요? 과학적 표기법 맞는 건가요?

Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@DWS 괜찮아 보이긴 하는데, 기하 평균이 뭔지 몰라서 완벽하게 검증할 수는 없네요.
확인해 볼 수 있습니다. 몇 번 말씀드렸듯이 JMP의 박스-콕스 변환 분석에서 예측 공식(출력 화면 상단의 빨간색 삼각형)을 저장하세요. 그러면 해당 역변환을 기반으로 새로운 예측 열이 생성됩니다. 해당 열에 저장된 공식은 위에 있는 것과 일치해야 합니다.
Re: JMP는 BoxCox 변환을 어떻게 수행하나요?@디에스 참고로, 람다를 가장 가까운 0.5로 반올림하는 경우가 많습니다. 해석하기도 더 쉽고, Box Cox 플롯에서 차이가 무시할 수 있는 수준인 것을 자주 볼 수 있습니다. 람다를 -1로 설정하는 것이 좋습니다.