透過強大的技術和JMP 18的強大組合來增強您的回歸分析,JMP 18 現在具有與 Python 無縫整合的功能。
簡單案例研究
這是一個範例資料表。

- 數據表包含99行模擬數據
- 數據旨在說明某些難以檢測的異常值類型
您能偵測到此範例資料表中的異常值嗎?
最初,我們可以透過單變量方法檢查資料。


我們無法使用單變量方法來識別異常值。
然而,如果我們將範圍擴大到二維,我們可能會遇到異常值。


前面的場景並不算太可怕,因為我們可以透過圖形分析來辨識異常值。
但是,如果我們要處理過多的變數(例如超過 10 個)怎麼辦?
使用 Anscombe 資料表的穩健中位數迴歸
為了減輕異常值的影響,我們可以採用穩健的迴歸技術,例如中位數迴歸。
穩健中位數迴歸是一種統計方法,它使用中位數迴歸來最小化絕對偏差,並且能夠防止違反同方差和常態假設。
在 JMP Pro 中,透過選擇「廣義迴歸」個性並選擇「分位數迴歸」分佈,透過擬合模型平台將分位數指定為0.5 ,輕鬆套用中位數迴歸。
以下介紹了應用於 JMP 中樣本資料集「Anscombe」的中位數迴歸的結果。



如果您使用的是 JMP 18,而不是 JMP Pro 18,則可以透過 JMP 18 的新功能(Python 整合)套用中位數迴歸。
import jmp
import jmputils
# Checking installed packages
# jmputils.jpip('list')
dt = jmp.open(jmp.SAMPLE_DATA + "anscombe.jmp")
""""
print(dt.name)
print(f'Number of columns: {dt.ncols}')
dt['y3']
"""
# Install Packages
""""
jmp.run_jsl('''
Python Install Packages("statsmodels")
''')
jmp.run_jsl('''
Python Install Packages("matplotlib")
''')
"""
# Import Modules
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
# Reshape Data
x = np.reshape(dt['x3'],(-1,1))
y = np.reshape(dt['y3'],(-1,1))
print(x)
print(y)
# Mean Regression vs Median Regression
lr = LinearRegression()
lr.fit(x, y)
beta_ls = lr.intercept_, lr.coef_[0]
q = 0.5
rm = sm.QuantReg(y, sm.add_constant(x)).fit(q, prepend=True)
beta_md = rm.params[0], rm.params[1]
# Print Mean & Median Regression Coefficient
print(beta_ls)
print(beta_md)
beta 係數的輸出列在 LOG 視窗中,如下所示。
(array([<FONT color="#0000FF"><STRONG>3.00245455</STRONG></FONT>]), array([<FONT color="#0000FF"><STRONG>0.49972727</STRONG></FONT>]))
(<FONT color="#FF0000"><STRONG>4.009997266957748</STRONG></FONT>, <FONT color="#FF0000"><STRONG>0.34500026527269356</STRONG></FONT>)
只是為了讓您知道,以下結果表示使用 JMP 計算的平均迴歸係數。
您可以比較上面的平均值和中位數迴歸的 beta 係數。

結論性想法;
提供的示範讓您對JMP 18 中的 JMP 和 Python 互動有基本的了解。
利用 JMP 中 Python 整合的強大功能為您提供了一個令人興奮的機會來提升您的分析能力,使您能夠拓寬您的專業知識並獲得更可靠的見解。
此處重新格式化,以便於閱讀、複製和貼上。
import jmp
# from jmputils import jpip
# jpip('install', 'statsmodels scikit-learn matplotlib numpy pandas')
dt = jmp.open(jmp.SAMPLE_DATA + "anscombe.jmp")
# Import Modules
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
# Reshape Data
x = np.reshape(dt['x3'],(-1,1))
y = np.reshape(dt['y3'],(-1,1))
print(x)
print(y)
# Mean Regression vs Median Regression
lr = LinearRegression()
lr.fit(x, y)
beta_ls = lr.intercept_, lr.coef_[0]
q = 0.5
rm = sm.QuantReg(y, sm.add_constant(x)).fit(q, prepend=True)
beta_md = rm.params[0], rm.params[1]
# Print Mean & Median Regression Coefficient
print(beta_ls)
print(beta_md)
@拉拉 對於由此造成的任何不便,我們深表歉意。目前,JMP 18 試用版無法存取。不過,請放心,我們正在努力工作,很快就會推出新的 JMP 試用版。感謝您的耐心與體諒。