JMP 如何進行 BoxCox 轉換?我最近一直在使用 Python 程式碼選項將 JMP 公式轉換為 Excel 格式。但實際上,我無法傳送任何涉及 BoxCox 變換的公式 (MLR)。我手動按照公式進行了計算,結果卻得出了數百萬個數字,而不是十萬個數字(它應該是十萬個數字)。請問有人知道公式是否已經轉換回來,或者我是否需要轉換回來,以及我需要如何應用逆 BoxCox 函數才能將其恢復到正常值嗎?我不知道是我遺漏了什麼,還是透過發佈公式選項編寫的 Python 程式碼缺少了什麼。我希望有人能解釋一下 JMP 是如何執行 BoxCox 變換的,這樣我就能更好地理解它,並有可能修復它。我試圖附加公式代碼,但它不允許我發布。任何幫助都將不勝感激。
數據探索與視覺化預測模型和機器學習回覆:JMP 如何進行 BoxCox 轉換?Box-Cox 變換的文件和公式可在此處找到: https://www.jmp.com/support/help/en/18.2/index.shtml#page/jmp/boxcox-y-transformation.shtml
回覆:JMP 如何進行 BoxCox 轉換?你好@DWS :這可能也有幫助。
https://community.jmp.com/t5/Discussions/How-to-understand-Lambda1-and-Lambda2-for-Box-Cox-transformation/mp/614578#M81444
回覆:JMP 如何進行 BoxCox 轉換?謝謝,這確實幫助我更了解 BoxCox 變換的整體原理,但不一定能幫助我理解 JMP 是如何進行這些變換的。我相信下面的問題能幫助我理解。 JMP 在 BoxCox 公式的「參數估計」部分顯示的數字,是經過 BoxCox 轉換的,還是已經逆變換回了可理解的單位?
回覆:JMP 如何進行 BoxCox 轉換?@DWS如果您所做的只是在“因子分析”選單下選擇“Box Cox 變換”,則不會套用任何變換,參數估計是基於 Y。但如果您進一步使用 box-cox 變換(「Box Cox 變換」輸出中的紅色三角形)進行重新擬合,則參數估計是基於變換後的 Y。
回覆:JMP 如何進行 BoxCox 轉換?好的,需要澄清的是,在我點擊「使用變換重新擬合」後,在新選單中,公式和參數估計值並沒有被變換後再逆變換回真實單位,而是保留了變換後的單位。如果是這樣,那麼是否可以知道JMP用來逆變換它們的公式,因為它在保存列預測公式中給出了逆正態單位?還是我應該應用常態逆變換?另外,您是根據經驗知道的嗎?還是因為我找不到相關資料,所以我不知道在哪裡找到的。抱歉,問題太多了。
回覆:JMP 如何進行 BoxCox 轉換?@DWS :如您所見,當您重新擬合並保存預測公式時,它會被反向變換,因此預測結果仍處於 Y 的原始尺度。而新列中的公式就是您要找的反向變換公式。我不確定 JMP 幫助中是否有這個公式(但我可以在自己的工作中看到它的作用)。不過,我不確定您問的是參數估計值;它們沒有任何變換;只有 Y 會變換。
回覆:JMP 如何進行 BoxCox 轉換?好的,讓我舉一個只有一個X變數的例子,兩個公式之間有一個截距。非BoxCox轉換:截距:254,077 X1:-44,880。 BoxCox轉換後的相同公式與變數:截距:61,472,780 X1;-43,139。你明白我的問題了吧。這些數字取自參數估計值,並在公式編輯器中進行了驗證。所有x變數都相同,它們與未變換後的對應變數相差不大,但截距卻非常偏離。我不知道這是為什麼,也想不出怎麼可能。
回覆:JMP 如何進行 BoxCox 轉換?@DWS你的BC變換中的lambda是多少?你有幾個X?你能拍一張兩組參數估計的照片嗎?
回覆:JMP 如何進行 BoxCox 轉換?
回覆:JMP 如何進行 BoxCox 轉換?@DWS哦,天哪。我覺得反向變換是你最不用擔心的事。在考慮解釋係數(尤其是超過50個係數的係數)之前,你需要確保模型中的項可以用你現有的資料來估計。有些估計值有偏差,有些估計值被置零。這表示你正在嘗試估計一些與X高度相關的參數,和/或一些由於資料結構不支援估計你試圖估計的項而無法估計的參數。參數估計表中的變異係數(VIF)(如果看不到,請在參數估計表上右鍵單擊以選擇它們)將幫助您識別多重共線性(相關性)。例如,如果X1和X2同時變動,那麼將兩者都納入模型中會導致它們的係數在解釋方面都不可靠……因此,應該在模型中排除其中一個作為候選參數。
另外,如果 lambda = -0.002,則使用 LN 變換可能會更容易;它更容易解釋,並且 -0.002 非常接近 0(lambda=0 對應於 LN 變換)。
編輯:這裡有更多資訊。
https://community.jmp.com/t5/Discussions/Parameter-Estimates-being-zerod/mp/751701
回覆:JMP 如何進行 BoxCox 轉換?感謝您的幫助,我完全了解這些。這只是我創建的一個例子,旨在向您展示BC公式和非BC公式截距的顯著差異。您知道為什麼截距差異如此之大嗎?
回覆:JMP 如何進行 BoxCox 轉換?@DWS嗯……一個基於 BoxCox(Y),另一個基於 Y;那麼為什麼截距不會不同呢?我並不是故意裝糊塗。
我們先把有偏和零參數估計的問題放在一邊。這兩個模型都使用最小平方法來估計各自模型中的參數。並且每個模型基於最小平方法都會有一組不同的參數估計值。它們之所以不同,是因為反應不同(一個是 Y,另一個是 BoxCox[Y] )。
如果我們假設 LN 變換,BoxCox[Y] = LN[Y],當我們反向變換時,我們得到 Y = exp[int + X 的線性組合] = exp[int]*exp[X 的線性組合]。此模型是乘法的…因此,此模型中的截距對 Y 的影響與未變換的加法模型中的截距對 Y 的影響不同。
希望以上資訊對您有幫助。也許我沒理解您問題的本質;為什麼這個問題如此令人擔憂?
回覆:JMP 如何進行 BoxCox 轉換?我不知道您是否能讀懂這張圖片,但您可以在左側看到預測值的比較。彼此之間並不公平。然後在右側,您可以看到非公元前和公元前的頁面以及底部的參數估計值。我可以使用非公元前參數估計值中給出的截距 + 估計值 (X) 公式從工作表中獲取預測值,但無法獲得公元前的預測值,因為公元前的估計值是 3860 億。這與 Python 程式碼給出的數字相同,因此我無法在 Excel 中獲得左側顯示的準確數字。我想知道 JMP 用於計算左圖所示的 Box Cox 預測的實際公式。

回覆:JMP 如何進行 BoxCox 轉換?@DWS如果我理解正確的話,您不能只通過輸出頂部的紅色三角形選單來保存預測公式嗎?
回覆:JMP 如何進行 BoxCox 轉換?@DWS或一般來說,看圖(g 是 Y 的幾何平均值)。
回覆:JMP 如何進行 BoxCox 轉換?它仍然給出 3.868e+11
回覆:JMP 如何進行 BoxCox 轉換?@DWS你肯定做錯了什麼,或是誤解了什麼。你在Excel裡用什麼公式來預測Y值?
回覆:JMP 如何進行 BoxCox 轉換?直接從 JMP 使用 Python
取得模型元資料():
回傳 {“creator”:u“擬合最小二乘法”,“modelName”:u“”,“predicted”:u“BoxCox(調整後的售價,-1.088)”,“table”:u“國家出口”,“version”:u“18.0.2”,“timestamp”:u“國家出口”,“version”:u“18.0.2”,“timestamp”:u“2025-07474:3474:3474:3474:3474:3474:347:274:34:347:34:34:34:34:34:34:34:34:34:34:34:474
def getInputMetadata():
返回 {
u"大約居住面積": "浮動",
u"YSB": "浮動"
}
def getOutputMetadata():
返回 {
u“預測公式BoxCox(調整後的售價,-1.088)”:“浮動”
}
def 分數(輸入數據,輸出數據):
outdata[u"預測公式 BoxCox(調整後的價格,-1.088)"] = 386761700160.329 + 153.473460505384 * indata[u"大致居住面積"] + -1519.63590642121 indata"
傳回輸出資料[u"預測公式BoxCox(調整後的售價,-1.088)"]
回覆:JMP 如何進行 BoxCox 轉換?@DWS在我看來,您正在返回轉換後的 Y。如果您想要 Y,則需要按照此圖所示進行反向轉換(其中 g 是 Y 的幾何平均值)。
回覆:JMP 如何進行 BoxCox 轉換?@DWS我會嘗試進一步解釋。你的 outdata 函數中的公式不正確。如果你將該函數設為附圖中的 f(x),並讓 g=Y 的幾何平均值,你就能得到你想要的結果。
即,令 f(x) = 386761700160.329 + 153.473460505384 * indata[u"Approx Living Area"] + -1519.63590642121 * indata[u"YSB"] 在附圖中。
回覆:JMP 如何進行 BoxCox 轉換?也許我數學不太好,但我一直沒能做到。我還需要能把它輸入到Excel和函數裡。不是那個完全相同的公式,但非常相似。這是它的公式編輯器。這個能用嗎?科學計數法對嗎?

回覆:JMP 如何進行 BoxCox 轉換?@DWS看起來還不錯,但我不知道幾何平均值是多少,所以我無法完全驗證它。
不過你可以檢查一下。正如我多次提到的,在 JMP 中進行 Box-Cox 轉換分析時,請儲存預測公式(輸出頂部的紅色三角形)。它會根據該反向變換建立一個新的預測列。儲存到該列的公式應該與上面的公式一致。
回覆:JMP 如何進行 BoxCox 轉換?@DWS順便說一句,我們經常將 lambda 四捨五入到最接近的 0.5。這樣比較容易解釋,而且你常在 Box Cox 圖中看到差異可以忽略不計。對於你的情況,你可能應該選擇 lambda = -1。