中部大西洋JMP®ユーザーグループ(MAJUG)秋の会議場所:SASオフィス、1530 Wilson Blvd. スイート800、バージニア州アーリントンロスリン 2017年9月28日(木)8時30分〜12時30分議題*:
8:30 登録/サインイン 8:45〜9:00 ようこそと紹介 9:00〜10:00 データ変換 ( Tom Donnelly、JMPシステムエンジニア ) 10:00〜10:15 ブレーク 10:15-10:3 0 MAJUGフィードバック–調査、今後の会議、トピック、ユーザーの関与、JMPコミュニティ、会議の場所
10:30〜11:15 消費者支出調査インタビューデータのモデル化(Josh Klick、米国労働統計局、MAJUG共同議長)
11:15-11:30 ブレーク
11:30-12: 00 JMP® Alaskan PipelineデータとRコードを使用したR統合アプリケーション http://www.itl.nist.gov/div898/handbook/pmd/section6/pmd621.htm (Mel Alexander、社会保障局およびMAJUG共同議長)
12:00〜12:25 Q&A、ディスカッション、フィードバック 12:30 休会*このスケジュールは予告なく変更される場合があります
MAJUGミーティングは、SASオフィス、1530 Wilson Blvdで開催されます。(Suite 800)、バージニア州アーリントン-ロズリン
ミーティングを最大限に活用し、他のJMPユーザーから学ぶために、直接参加することをお勧めします。出席できない場合は、登録 WebExを使用して出席する。
でJoshua Klickに返信してください klick.joshua@bls.gov
9月25日月曜日の午後12時までに、直接出席するか、WebExを使用するかを示します。 。 WebExセッションへのアクセス手順は、WebEx登録者に送信されます。
ビオス
トム・ドネリー SAS®のJMP®部門でシステムエンジニアとして働いています。物理学者をトレーニングすることにより、過去25年間、実験計画法(DOE)の手法を積極的に使用および指導し、製品、プロセス、およびテクノロジーの開発と最適化を行ってきました。
ドネリーは、メリーランド州アバディーン試験場にある米陸軍のエッジウッド化学生物学センターのモデリング、シミュレーション、分析部門のアナリストとして働いた後、JMPに加わりました。そこで、彼はDOEを使用して、化学的および生物学的因子の検出、保護、汚染除去のための技術を開発、テスト、および評価しました。
ジョシュ・クリック消費者物価と物価指数の部門で労働統計局の上級エコノミストです。彼の仕事は、消費者物価指数(CPI)の構築をサポートする方法論とシステム開発に焦点を当てています。彼はまた、Mid-AtlanticJMP®Users Group(MAJUG)の共同議長も務めています。彼はミネソタ大学ツインシティーで公共政策経済開発の修士号を取得しています。彼はSASベーシックおよびアドバンストプログラマーとしての資格を持っています。
メルアレクサンダーメリーランド大学医療センター(UMMC)の社会保障局(SSA)と分析担当のオペレーションリサーチアナリストです。SSAで彼はSAS®ソフトウェアを使用して、適格な受益者に適切な支払いが行われるようにします。UMMCでは、JMP®統計分析を使用して、放射線科医や脳神経外科医が患者の外傷性頭部、脊髄、腹部の負傷の可能性を高める主な要因を特定できるようにしています。彼はMAJUGの共同議長を務め、South East SAS Users Group(SESUG)2017会議のセクション共同議長です。ノースカロライナ大学で生物統計学の修士号を取得しています。彼はアメリカ統計協会のメンバーであり、アメリカ品質学会(ASQ)フェローであり、認定品質エンジニアです。
MAJUG – 2017年秋の会議 |
2017年9月28日木曜日 |
午前8時30分|東部標準時(ニューヨーク、GMT-04:30)| 4.0時間 |
JMP®モデリングの探索消費者支出データを使用した機能スクリプトを使用したプレゼンテーションとサンプルデータテーブル。CE Public-Use Microdataは以下からアクセスできます。 https://www.bls.gov/cex/pumd_data.htm
R BASパッケージを処理するJSLの例:
dt = Open(“ C:\ Desktop \ Temp \ JMP SESUG Materials \ intrvw15 \ intrvw15 \ fmly2.jmp”);
R Init();
R送信(dt);
R送信(“ \ [
ライブラリ(BAS)
ライブラリ(統計)
ライブラリ(dplyr)
#BASモデルに適合
CUEXP_bma = bas.lm(log(TOTEXPCQ)〜CUTENURE + VEHQ + log(HOUSCQ)+ INCLASS + VEHQL + log(SHELTCQ)+ TOTBATHQ + CHILDAGE + HIGH_EDU + CPIWX_FLAG_REF + CPIWX_FLAG_SPO + FAM_TYPE + FAM_SIZE + REF_RACE、
データ= dt、
以前= "BIC"、
modelprior = uniform()
)
CUEXP_bma
オプション(幅= 100)
要約(CUEXP_bma)
#二乗平均平方根エラー
pred.HPM = predict(CUEXP_bma、newdata = dt、estimator = 'HPM'、se.fit = TRUE)
#pred.HPM.rmse = sqrt(mean((exp(pred.HPM $ fit)-dt $ TOTEXPCQ)^ 2))
#cat( 'HPM_RMSE_TOTEXPCQ \ n')
#pred.HPM.rmse
pred.HPM.rmse2 = sqrt(mean((pred.HPM $ fit-log(dt $ TOTEXPCQ))^ 2))
cat( 'HPM_RMSE_logTOTEXPCQ \ n')
pred.HPM.rmse2
#信頼区間に基づくカバレッジ確率
out = as.data.frame(cbind(exp(confint(pred.HPM))、TOTEXPCQ = dt $ TOTEXPCQ))
colnames(out)[1:2] = c( 'lwr'、'upr')
out%>%summary(COVERAGE_CI = sum(TOTEXPCQ> = lwr&TOTEXPCQ <= upr)/ n())
] \”);
clear log();
/ ************************************************* ****************
このJMPとRの統合スクリプトと例では、
フィールド内超音波で構成されるアラスカパイプラインデータ
アラスカのパイプラインの欠陥の深さの測定。
次に、欠陥の深さを実験室で再測定しました。
これらの測定は、6つの異なるバッチで実行されました。
フィールドのバイアスを調整するためにデータが分析されました
実験室での測定値と比較した測定値。
この分析では、フィールド測定は応答変数です
実験室での測定は予測変数です。
これらのデータは、当時研究所長の科学者であったハリーバーガーによって提供されました。
材料研究(現在の材料科学と工学)
NISTの研究室)。
これらのデータは、材料について実施された研究に使用されました
米国運輸省運輸局。
データのソースは次のリンクからのものです
http://www.itl.nist.gov/div898/handbook/pmd/section6/pmd621.htm
************************************************** ************* /
R Init(); / * Rへの接続を開始します* /
R Submit( "\ [
#パッケージを読み込む
ライブラリ(格子)
##アラスカパイプラインの超音波キャリブレーションのケーススタディ
##従属変数、フィールド欠陥サイズでベクトルを作成
fdef = c(18,38,15,20,18,36,20,43,45,65,43,38,33,10,50,10,50,15,53,60,18、38,15、
20,18,36,20,43,45,65,43,38,33,10,50,10,50,15,53,15,37,15、18,11,35,20,40,50、36、
50、38、10、75、10、85、13、50、58、58、48、12、63、10、63、13、28、35、63、13、45、9、20、18、35、20、
38、50、70、40、21、19、10、33、16、5、32、23、30、45、33、25、12、53、36、5、63、43、25、73、45、52、
9、30、22、56、15、45)
##独立変数、ラボ欠陥サイズでベクトルを作成
ldef = c(20.2,56.0,12.5,21.2,15.5,39.0,21.0,38.2,55.6,81.9,39.5,56.4,40.5、
14.3、81.5、13.7、81.5、20.5、56.0、80.7、20.0、56.5、12.1、19.6、15.5、38.8、19.5、38.0、
55.0、80.0、38.5、55.8、38.8、12.5、80.4、12.7、80.9、20.5、55.0、19.0、55.5、12.3、18.4、
11.5、38.0、18.5、38.0、55.3、38.7、54.5、38.0、12.0、81.7、11.5、80.0、18.3、55.3、80.2、
80.7、55.8、15.0、81.0、12.0、81.4、12.5、38.2、54.2、79.3、18.2、55.5、11.4、19.5、15.5、
37.5、19.5、37.5、55.5、80.0、37.5、15.5、23.7、9.8、40.8、17.5、4.3、36.5、26.3、30.4、50.2、
30.1、25.5、13.8、58.9、40.0、6.0、72.5、38.8、19.4、81.5、77.4、54.6、6.8、32.6、19.8、
58.8、12.9、49.0)
##バッチインジケーターでベクトルを作成する
bat = c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2、2、2、2、2、2、2、2、2、2、2、
2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3、3,4,4,4,4,4,4,4、
4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5、5,5,5,5,5,5,5,5、
5,6,6,6,6,6,6,6)
##データをデータフレームに保存し、観測数を決定する
バッチ<-as.factor(bat)
df <-data.frame(fdef、ldef、Batch)
len <-length(Batch)
xax = "Lab Defect Size"
yax = "Field Defect Size"
タイトル= "Alaska Pipeline Ultrasonic Calibration Data"
plot(ldef、fdef、xlab = xax、ylab = yax、main = title、col = "blue")
##条件付きプロットを生成する
trellis.device(new = TRUE、col = FALSE)
FIG = xyplot(fdef〜ldef |バッチ、
data = df、
メイン=タイトル、
layout = c(3,2)、col = 4、
xlab = list(xax、cex = 1.1)、ylab = list(yax、cex = 1.1)、
strip = function(...)strip.default(...、strip.names = c(T、T)))
図
##バッチ分析
x = ldef
y = fdef
xydf = data.frame(x、y、Batch)
out = by(xydf、xydf $ Batch、function(x)lm(y〜x、data = x))
lapply(out、summary)
#>残差標準誤差:5自由度で1.35
#>複数のR二乗:0.9956、調整済みR二乗:0.9947
#> F統計:1および5 DFで1128、p値:4.401e-07
##バッチ回帰結果を保存する
outs = sapply(out、summary)
outc = sapply(out、coef)
フィット= t(outs [6、])
fitse = c(fitse [[1]]、fitse [[2]]、fitse [[3]]、fitse [[4]]、fitse [[5]]、fitse [[6]])
r2 = t(outs [8、])
r2 = c(r2 [[1]]、r2 [[2]]、r2 [[3]]、r2 [[4]]、r2 [[5]]、r2 [[6]])
b0 = t(outc [1、])
b1 = t(outc [2、])
##バッチプロット
par(mfrow = c(2,2))
id = c(1:length(b0))
xax2 = "バッチ番号"
plot(id、r2、xlab = xax2、ylab = "Correlation"、ylim = c(.8,1)、col = "blue"、pch = 16、cex = 1.25)
abline(h = mean(r2))
plot(id、b0 [1、]、xlab = xax2、ylab = "Intercept"、ylim = c(0,8)、col = "blue"、pch = 16、cex = 1.25)
abline(h = mean(b0))
plot(id、b1 [1、]、xlab = xax2、ylab = "Slope"、ylim = c(.5、.9)、col = "blue"、pch = 16、cex = 1.25)
abline(h = mean(b1))
plot(id、fitse、xlab = xax2、ylab = "RESSD"、ylim = c(0,7)、col = "blue"、pch = 16、cex = 1.25)
abline(h = mean(fitse))
par(mfrow = c(1,1))
##直線回帰分析
出力= lm(fdef〜ldef)
要約(アウト)
##残差6プロット
par(mfrow = c(3,2))
plot(ldef、fdef、xlab = "Lab Defect Size"、
ylab = "Field Defect Size"、main = "Field Defect Size vs Lab Defect Size")
abline(reg = out)
plot(ldef、out $ residuals、ylab = "Residuals"、xlab = "Lab Defect Size"、
main = "Residuals vs Lab Defect Size")
plot(out $ fitted.values、out $ residuals、ylab = "Residuals"、xlab = "Predicted"、
main = "残差vs予測")
plot(out $ residuals [2:len]、out $ residuals [1:len-1]、ylab = "Residuals"、
xlab = "ラグ1残差"、main = "ラグプロット")
hist(out $ residuals、ylab = "Frequency"、xlab = "Residuals"、main = "Histogram")
qqnorm(out $ residuals、main = "通常の確率プロット")
##オーバーレイされた回帰関数で生データのプロットを生成する
par(mfrow = c(1,1)、cex = 1.25)
plot(ldef、fdef、ylab = "Field Defect Size"、xlab = "Lab Defect Size"、col = "blue")
abline(reg = out)
title( "Alaska Pipeline Ultrasonic Calibration Data"、line = 2)
title( "With Unweighted Line"、line = 1)
##残差とラボ欠陥サイズのプロット
par(mfrow = c(1,1)、cex = 1.25)
plot(ldef、out $ residuals、xlab = "Lab Defect Size"、ylab = "Residuals"、
main = "Alaska Pipeline Data Residuals-Unweighted Fit"、cex = 1.25、col = "blue")
abline(h = 0)
##応答変数の変換
lnfdef = log(fdef)
sqrtfdef = sqrt(fdef)
invfdef = 1 / fdef
##変換された応答変数をプロットする
par(mfrow = c(2,2))
xax = "Lab Defect Size"
plot(ldef、fdef、xlab = xax、ylab = "Field Defect Size"、col = "blue")
plot(ldef、sqrtfdef、xlab = xax、ylab = "Sqrt(Field Defect Size)"、col = "blue")
plot(ldef、lnfdef、xlab = xax、ylab = "ln(Field Defect Size)"、col = "blue")
plot(ldef、invfdef、xlab = xax、ylab = "1 / Field Defect Size"、col = "blue")
title(main = "応答変数の変換"、outer = TRUE、line = -2)
##予測変数の変換
lnldef = log(ldef)
sqrtldef = sqrt(ldef)
invldef = 1 / ldef
##変換された予測変数をプロットする
par(mfrow = c(2,2))
yax = "ln(フィールド欠陥サイズ)"
plot(ldef、lnfdef、xlab = "Lab Defect Size"、ylab = yax、col = "blue")
plot(sqrtldef、lnfdef、xlab = "Sqrt(Lab Defect Size)"、ylab = yax、col = "blue")
plot(lnldef、lnfdef、xlab = "ln(Lab Defect Size)"、ylab = yax、col = "blue")
plot(invldef、lnfdef、xlab = "1 / Lab Defect Size"、ylab = yax、col = "blue")
title(main = "予測変数の変換"、outer = TRUE、line = -2)
] \ ");
/ * RデータフレームからJMPデータテーブルを作成* /
Rdf = R Get(df);
Rdf << NewDataView << Set Name( "R Data frame Table");
/ ** dtrdfでグラフビルダーを使用して散布図を作成** /
/ *バッチ列の値の順序付けプロパティを設定して、
Rでトレリスプロットを表示して一致
* /
Rdf:Batch << Set Property( "Value Ordering"、Eval({4、5、6、1、2、3}))<<
値ラベル(
{1 = "バッチ:1"、2 = "バッチ:2"、3 = "バッチ:3"、4 = "バッチ:4"、5 =
"バッチ:5"、6 = "バッチ:6"}
)<<
値ラベルを使用する(1)
;
/ **行の状態を使用して、Rプロットに一致するようにプロットマーカーを実線から空白に変更します*** /
Rdf <<行の状態を設定(
[128、128、128、128、128、128、128、128、128、128、128、128、128、128、128、
128、128、128、128、128、128、128、128、128、128、128、128、128、128、128、
128、128、128、128、128、128、128、128、128、128、128、128、128、128、128、
128、128、128、128、128、128、128、128、128、128、128、128、128、128、128、
128、128、128、128、128、128、128、128、128、128、128、128、128、128、128、
128、128、128、128、128、128、128、128、128、128、128、128、128、128、128、
128、128、128、128、128、128、128、128、128、128、128、128、128、128、128、
128、128]
)
;
Rdf <<グラフビルダー(
サイズ(457、408)、
コントロールパネルを表示(0)、
変数(X(:ldef)、Y(:fdef)、Wrap(:Batch、Levels per Row(3)))、
Elements(Points(X、Y、Legend(3)))、
SendToReport(
ディスパッチ(
{}、
"グラフのタイトル"、
TextEditBox、
{Set Text( "Alsaka Pipeline Ultrasonic Calibration Data-JMP")}
)、
Dispatch({}、"X title"、TextEditBox、{Set Text( "Lab Defect Size")})、
ディスパッチ(
{}、
"Yタイトル"、
TextEditBox、
{Set Text( "ln(Field Defect Size)")}
)、
Dispatch({}、"Graph Builder"、FrameBox(1)、{Marker Size(1)})、
Dispatch({}、"Graph Builder"、FrameBox(2)、{Marker Size(1)})、
Dispatch({}、"Graph Builder"、FrameBox(3)、{Marker Size(1)})、
Dispatch({}、"Graph Builder"、FrameBox(4)、{Marker Size(1)})、
Dispatch({}、"Graph Builder"、FrameBox(5)、{Marker Size(1)})、
Dispatch({}、"Graph Builder"、FrameBox(6)、{Marker Size(1)})
)
);
/ * JMP分析プラットフォームでプロットと回帰フィットを生成* /
/ * RからFIGグラフを取得し、JMPで表示
* /
R Submit( "\ [
##条件付きプロットを生成する
trellis.device(new = TRUE、col = FALSE)
FIG = xyplot(fdef〜ldef |バッチ、
data = df、
メイン=タイトル、
layout = c(3,2)、col = 4、
xlab = list(xax、cex = 1.1)、ylab = list(yax、cex = 1.1)、
strip = function(...)strip.default(...、strip.names = c(T、T)))
図
] \ ");
picture = R Get Graphics( "png");
新しいウィンドウ( "RからJMPへのアラスカパイプライン超音波校正データ"、画像);
Wait(10);
/ *ボックスコックス線形プロット* /
R Submit( "\ [
##予測変数の変換
lnldef = log(ldef)
sqrtldef = sqrt(ldef)
invldef = 1 / ldef
##ボックスコックス線形プロット
(i in(0:100)){
アルファ= -2 + 4 * i / 100
if(alpha!= 0){
tx =((ldef ** alpha)-1)/ alpha
温度= lm(lnfdef〜tx)
temps = summary(temp)
if(i == 0){rsq = temps $ r.squared
alp = alpha}
それ以外の場合{rsq = rbind(rsq、temps $ r.squared)
alp = rbind(alp、alpha)}
}}
rcor = sqrt(rsq)
par(mfrow = c(1,1)、cex = 1.25)
plot(alp、rcor、type = "l"、xlab = "Alpha"、ylab = "Correlation"、
main = "Box-Cox Linearity Plot ln(Field)Lab"、
ylim = c(.6,1)、col = "blue")
#creaate相関およびアルファベクトルをBCPデータフレームに
Corr <-as.vector(rcor)
アルファ<-as.vector(alp)
BCP <-data.frame(Corr、Alpha)
] \ ");
RBCP = R Get(BCP);
RBCP << NewDataView << Set Name( "アルファ相関テーブルのRデータフレーム");
/ *グラフビルダーからのグラフボックスコックス線形性プロット* /
RBCP <<グラフビルダー(
サイズ(421、362)、
コントロールパネルを表示(0)、
変数(X(:Alpha)、Y(:Corr))、
Elements(Smoother(X、Y、Legend(4)))、
SendToReport(
ディスパッチ(
{}、
"グラフのタイトル"、
TextEditBox、
{Set Text( "Box-Cox Linearity Plot ln(Field)-JMP")}
)、
Dispatch({}、"Y title"、TextEditBox、{Set Text( "Correlation")})
)
);
BoxCox = R Get Graphics( "png");
New Window( "Box-Cox Linearity Plot ln(Field)Lab-From R"、BoxCox);
Wait(10);
/ *****
Rxydf <<
グラフビルダー(
サイズ(533、454)、
コントロールパネルを表示(0)、
変数(X(:x)、Y(:y))、
Elements(Points(X、Y、Legend(3)))、
SendToReport(
ディスパッチ(
{}、
「y」、
ScaleBox、
{Label Row(Label Orientation( "Horizontal"))}
)、
ディスパッチ(
{}、
"グラフのタイトル"、
TextEditBox、
{Set Text( "Alaskan Pipeline Ultrasonic Calibration Data-JMP")}
)、
Dispatch({}、"X title"、TextEditBox、{Set Text( "Lab Defect Size")})、
ディスパッチ(
{}、
"Yタイトル"、
TextEditBox、
{テキストの回転(「左」)、テキストの設定(「フィールド欠陥サイズ」)}
)
)
);
*** /
/ **最初の初期回帰直線モデルをデータに適合させます
Rxydf << Bivariate(
Y(:y)、
X(:x)、
線に合わせる({Line Color({57、177、67})})、
SendToReport(
Dispatch({"Linear Fit"}、"Lack Of Fit"、OutlineBox、{Close(0)})
)
);
** /
R用語(); / * Rへの接続を終了します* /