JMP into R!이번 주에는 SAS 사용자 그룹 회의 35 주년을 기념합니다. SGF 2010 (이전 SUGI로 알려짐). SAS는 1975 년 5 명의 사용자가 처음 만난 이래로 놀라운 성장과 성공을 거두었습니다. 이 기간 동안, 우리는 또한 현대 통계 분야에서 특히 컴퓨터 집약적 인 방법의 사용에서 주요 발전을 보았습니다. 동시 적으로 SAS와 같은시기에 시작된 선도적 인 방법 중 하나가 부트 스트랩입니다 (Efron, 1979). 기본 부트 스트랩 방법. Wikipedia의 부트 스트랩 페이지 설명에 따르면, 데이터를 대체하여 재 샘플링하여 관심있는 통계의 경험적 샘플링 분포를 형성합니다. SAS와 마찬가지로 부트 스트랩은 통계적 추측을위한 주목할만한 도구가되었습니다. 이 방법에 대한 Efron의 연구 만이 3 만 번 이상 인용되었습니다.
10 년 고속 전진, 존 살 (SAS의 공동 설립자 중 한 명)와 소수의 개발자 그룹이 1989 년 JMP에서 작업하기 시작했습니다. 많은 SAS 제품과 마찬가지로, JMP 전세계에서 계속해서 발전하고 성장하고 있습니다. 불과 몇 년 후 Ross Ihaka & Robert Gentleman은 이전의 S 및 S + 언어를 기반으로 한 구문을 사용하여 널리 사용되는 오픈 소스 통계 언어 R을 시작했습니다.
SAS Global Forum은 사용자가 SAS 제품을 사용하는 방법을 배우고 사용자가 다가올 SAS 소프트웨어의 최신 및 가장 큰 발전에 대해 알 수있는 기회입니다. JMP 9 (2010 년 가을에 출시)에 대한 한 가지 발표는 내가 자랑스럽게 생각하는 부분입니다. JMP와 R의 새로운 통합 기능 . 부트 스트랩 신뢰 구간 시뮬레이션 예제의 맥락에서 통합의 기본 요소를 보여 드리고자합니다.
JMP는 R에 대한 훌륭한 보완책입니다. R과의 통합은 데스크탑에서 R 설치에 연결하고 R에서 데이터를 보내고 R 패키지를 통해 사용할 수있는 R 루틴을 제출할 수있는 몇 가지 새로운 JSL 명령으로 나타납니다. JMP 대화 상자는 프런트 엔드로 R에 대한 매개 변수 입력을 위해 쉽게 빌드 될 수 있으며, 더 중요한 것은 JMP의 대화 형 및 동적 통계 플랫폼과 그래픽이 완벽한 백엔드 대 R 기능을 제공한다는 것입니다. 아래의 대화 상자는 R에 연결하여 주어진 배포에 대한 데이터를 생성하고 시뮬레이션을 수행하여 몇 가지 공통 통계에 대한 부트 스트랩 신뢰 구간의 범위를 테스트하는 애플리케이션입니다.
그러한 시뮬레이션이 왜 흥미롭고 관련이 있는지를 스스로에게 묻습니다. 부트 스트랩 방법 (및 부트 스트랩 신뢰 구간)은 오늘날 통계의 특성을 추정하는 데 특히 널리 사용됩니다. 특히 통계 분포가 잘 알려지지 않은 경우입니다. 그러나 분산이 분산되거나 편향된 경우 (분산 분포와 같이) 통계에 대한 부트 스트랩 신뢰 구간은 부정확 할 수 있습니다. 이 응용 프로그램을 사용하면 가장 일반적인 배포 및 통계에 대한 부트 스트랩 신뢰 구간의 범위를 쉽고 빠르게 평가할 수 있습니다.
아래 출력은 표준 정규 분포 (평균 1의 분산이 0 인 평균)의 부트 스트랩 평균 (1000 복제)의 95 % 신뢰 구간에 대한 시뮬레이션 (1000 회 실행)의 결과를 보여줍니다. R 패키지 "boot"가로드되고 boot.ci () 함수 몇 가지 다른 방법으로 부트 스트랩 간격을 계산합니다. JMP에서 Distribution and Graph Builder 플랫폼을 사용하면 Basic, Normal, Percentile 및 BCa 방법을 사용하는 95 % 부트 스트랩 신뢰 구간이 실제 평균을 정확하게 포함한다는 것을 알 수 있습니다 (신뢰 구간에 0이 포함 된 경우 Coverage 열 값은 1이므로 수준 1에 대한 Prob 항목은 경험적 범위에 해당합니다). 그래프 빌더 출력은 신뢰 구간 폭이 메소드 내부와 메소드간에 대략 동일하다는 것을 보여줍니다.

위 시나리오에서 부트 스트랩을 실행하는 데 사용되는 R 통합 JSL 코드는 다음과 같습니다.
rconn = R Connect();
rconn << Submit("\[
library(boot)
# Load Boot package
library(boot)
RStatFctn <- function(x,d) {return(mean(x))}
b.basic = matrix(data=NA, nrow=1000, ncol=2)
b.normal = matrix(data=NA, nrow=1000, ncol=2)
b.percent =matrix(data=NA, nrow=1000, ncol=2)
b.bca =matrix(data=NA, nrow=1000, ncol=2)
for(i in 1:1000){
rnormdat = rnorm(30,0,1)
b <- boot(rnormdat, RStatFctn, R = 1000)
b.ci=boot.ci(b, conf =095,type=c("basic","norm","perc","bca")) b.basic[i,] = b.ci$basic[,4:5]
b.normal[i,] = b.ci$normal[,2:3]
b.percent[i,] = b.ci$percent[,4:5]
b.bca[i,] = b.ci$bca[,4:5]
}
]\"));
b_basic= rconn << Get(b.basic);
b_normal = rconn << Get(b.normal);
b_percent= rconn << Get(b.percent);
b_bca = rconn << Get(b.bca);
rconn << Disconnect();
R Connect () JSL 명령을 사용하여 객체 "rconn"에 할당하면 코드는 JSL 스크립팅 가능 객체 "rconn"에 메시지를 전송하여 Submit () 명령을 통해 R 코드를 제출하고 부트 스트랩 신뢰 구간을 포함하는 R 행렬을 검색합니다 다시 Get () 명령을 통해.
이제 표준 정규 분포의 분산에 대한 부트 스트랩 신뢰 구간의 범위를 테스트 할 때 어떤 일이 발생하는지 봅시다. 대화 상자에서 Target Value를 1로 변경하고 Variance를 계산할 부트 스트랩 통계로 선택하고 Run Simulation을 클릭하면 아래 결과가 나타납니다. 이 경우 네 가지 방법 모두 부트 스트랩 통계 분포 (Efron 1987)에서 편향 및 비뚤어 짐을 방지하기 위해 특별히 제안 된 바이어스 보정 및 가속화 (BCa) 방법을 포함하여 분산의 실제 값보다 낮습니다.
Basic Bootstrap 신뢰 구간 (Basic Coverage 분포에서 "0"히스토그램 막대 선택)에서 대상 값을 커버하지 못하는 신뢰 구간을 JMP 9의 새로운 기능으로 볼 수 있다는 점에 유의하십시오. 선택되지 않은. 또한 Basic 메서드에서 실패한 간격이 다른 메서드에서 어떻게 수행되는지 확인할 수 있습니다. 데이터 필터와 같은 다른 표준 JMP 도구는 R에서 쉽고 빠르게 수행 할 수없는 방식으로 이러한 결과를 탐색하는 데 도움이 될 수 있습니다. 마찬가지로, 메소드 간의 적용 범위 비교는 사용자 정의 JSL 그래픽 스크립트를 사용하여 Venn 다이어그램은 간격에 참 매개 변수가 포함 된 횟수를 보여줍니다 ( JMP 파일 교환 ~에서 JMP Genomics ).
이 애플리케이션은 JMP와 R을 함께 사용하여 수행 할 수있는 작업을 보여줍니다. JSL의 작은 JSL과 통계 및 그래픽 플랫폼과 R의 다양하고 다양한 패키지 및 기능이 결합되어 통계 분석을위한 사용하기 쉬운 완벽한 애플리케이션을 구축 할 수 있습니다.
JMP는 또한 SAS와 통합 될 수 있으며, 파일 기반 시스템뿐만 아니라 SAS 절차의 깊이와 고급 기능을 통해 대용량 데이터를 처리 할 수 있습니다. 이러한 원활한 통합을 통해 JMP는 SAS 및 R과 연결하고 JMP 프로파일 러 및 그래픽 빌더와 같은 대화 형 그래픽 기능과 같은 고유 한 통계 기능을 제공 할 수있는 허브가 될 수 있습니다. 당신이 이것으로 할 수있는 것의 가능성은 끝이 없습니다!
SAS, JMP, R 및 통계 컴퓨팅 분야는 지난 35 년 동안 먼 길을왔다. 우리는 유연성, 스타일 및 편의성으로 분석을 수행 할 수있는 소프트웨어 도구를 계속 제공하면서이 회사 및이 업계의 일원이되어 매우 기쁩니다!
JMP 9가 공식적으로 출시되면 부트 스트랩 시뮬레이션 용 스크립트와 다른 것들을 JMP File Exchange에 넣을 것입니다.
표준 정규 분포의 분산에 대한 부트 스트랩 신뢰 구간이 충분하지 않다면, 카이 제곱 분포의 평균의 부트 스트랩 신뢰 구간이 어떻게 동작 할 것이라고 생각합니까?
재 : JMP로 R!제프,
답장을 보내 주셔서 감사합니다.
아래 로그 덤프
* :
대화 형 HTML : 지원되지 않는 표시 유형 : LayoutAtomBox
대화 형 HTML : 컨트롤은 대화식이 아닙니다.
대화 형 HTML : 지원되지 않는 표시 유형 : LayoutAtomBox
대화식 HTML : 내부 작업은 대화 형 그래프를 지원하지 않습니다.
대화식 HTML :이 플랫폼의 임베디드 프로파일 러는 대화식이 아닙니다.
대화 형 HTML : 지원되지 않는 표시 유형 : LayoutAtomBox
대화식 HTML :이 플랫폼의 임베디드 프로파일 러는 대화식이 아닙니다.
대화 형 HTML : 지원되지 않는 표시 유형 : ScrollBox
대화 형 HTML : 지원되지 않는 표시 유형 : ScriptBox
대화 형 HTML : 컨트롤은 대화식이 아닙니다.
예상치 못한 ")". 아마도 누락 된 ";" 또는 ",".
Line 19 Column 5 :] \ ") ►);
무시 된 나머지 텍스트는
); b_basic = rconn << Get (b.basic); b_normal = rconn << Get (b.normal); b_percent = rconn << Get (b.normal);
(b.percent); b_bca = rconn << Get (b.bca); rconn << Disconnect ();
입력 된 스크립트 :
rconn = R 연결 ();
rconn << 제출 ( "\ [
라이브러리 (부팅)
# 부트 패키지로드
라이브러리 (부팅)
RStatFctn <- function (x, d) {return (mean (x))}
b.basic = 행렬 (데이터 = NA, nrow = 1000, ncol = 2)
b.normal = 매트릭스 (데이터 = NA, nrow = 1000, ncol = 2)
b.percent = 매트릭스 (데이터 = NA, nrow = 1000, ncol = 2)
b.bca = 매트릭스 (데이터 = NA, nrow = 1000, ncol = 2)
for (i in 1 : 1000) {
rnormdat = rnorm (30,0,1)
b <- boot (rnormdat, RStatFctn, R = 1000)
b.ci = boot.ci (b, conf = 095, type = c ( "basic", "norm", "perc", "bca")) b.basic [i,] = b.ci $ basic [, 4 : 5]
b.normal [i,] = b.ci $ normal [, 2 : 3]
b.percent [i,] = b.ci $ percent [, 4 : 5]
b.bca [i,] = b.ci $ bca [, 4 : 5]
}
] \ "));
b_basic = rconn << Get (b.basic);
b_normal = rconn << Get (b.normal);
b_percent = rconn << Get (b.percent);
b_bca = rconn << Get (b.bca);
rconn << Disconnect ();
파싱 된 스크립트 :
rconn = R 연결 ();
rconn << 제출 (
"
라이브러리 (부팅)
# 부트 패키지로드
라이브러리 (부팅)
RStatFctn <- function (x, d) {return (mean (x))}
b.basic = 행렬 (데이터 = NA, nrow = 1000, ncol = 2)
b.normal = 매트릭스 (데이터 = NA, nrow = 1000, ncol = 2)
b.percent = 매트릭스 (데이터 = NA, nrow = 1000, ncol = 2)
b.bca = 매트릭스 (데이터 = NA, nrow = 1000, ncol = 2)
for (i in 1 : 1000) {
rnormdat = rnorm (30,0,1)
b <- boot (rnormdat, RStatFctn, R = 1000)
b.ci = boot.ci (b, conf = 095, type = c (\ "기본 \!", \! "규범 \!", \! "perc \!", \! "bca \!") ) b.basic [i,] = b.ci $ basic [, 4 : 5]
b.normal [i,] = b.ci $ normal [, 2 : 3]
b.percent [i,] = b.ci $ percent [, 4 : 5]
b.bca [i,] = b.ci $ bca [, 4 : 5]
}
"
);
// : * /
rconn = R 연결 ();
rconn << 제출 ( "\ [
라이브러리 (부팅)
# 부트 패키지로드
라이브러리 (부팅)
RStatFctn <- function (x, d) {return (mean (x))}
b.basic = 행렬 (데이터 = NA, nrow = 1000, ncol = 2)
b.normal = 매트릭스 (데이터 = NA, nrow = 1000, ncol = 2)
b.percent = 매트릭스 (데이터 = NA, nrow = 1000, ncol = 2)
b.bca = 매트릭스 (데이터 = NA, nrow = 1000, ncol = 2)
for (i in 1 : 1000) {
rnormdat = rnorm (30,0,1)
b <- boot (rnormdat, RStatFctn, R = 1000)
b.ci = boot.ci (b, conf = 095, type = c ( "basic", "norm", "perc", "bca")) b.basic [i,] = b.ci $ basic [, 4 : 5]
b.normal [i,] = b.ci $ normal [, 2 : 3]
b.percent [i,] = b.ci $ percent [, 4 : 5]
b.bca [i,] = b.ci $ bca [, 4 : 5]
}
] \ "));
b_basic = rconn << Get (b.basic);
b_normal = rconn << Get (b.normal);
b_percent = rconn << Get (b.percent);
b_bca = rconn << Get (b.bca);
rconn << Disconnect ();
/ * :
예상치 못한 ")". 아마도 누락 된 ";" 또는 ",".
Line 19 Column 5 :] \ ") ►);
무시 된 나머지 텍스트는
); b_basic = rconn << Get (b.basic); b_normal = rconn << Get (b.normal); b_percent = rconn << Get (b.normal);
(b.percent); b_bca = rconn << Get (b.bca); rconn << Disconnect ();
TKIntRJMP.R 버전 5.05
오류 : 예기치 않은 기호 :
오류 : "b <- boot (rnormdat, RStatFctn, R = 1000)
오류 : b.ci = boot.ci (b, conf = 095, type = c ( "basic", "norm", "perc", "bca")) b.basic "
TKIntRJMP.R 버전 5.05
오류 : 예기치 않은 기호 :
오류 : "b <- boot (rnormdat, RStatFctn, R = 1000)
오류 : b.ci = boot.ci (b, conf = 095, type = c ( "basic", "norm", "perc", "bca")) b.basic "
재 : JMP로 R!해당 사이트에 오류가 있습니까? JMP 로그 창 ?


재 : JMP로 R!방금 위의 스크립트를 실행했고 JSL 편집기가 19 번 줄에 여분의 괄호를 표시했습니다.
나중에 스크립트를 저장하고 실행할 수 있었지만 출력은 0이었습니다.
차트도, 그래프도, 아무것도. 그리고 데이터 테이블은 여전히 비어 있습니다.
내가 뭘 잘못하고 있죠? 내가 뭘 놓치고 있니?
rconn = R Connect();
rconn << Submit("\[
library(boot)
# Load Boot package
library(boot)
RStatFctn <- function(x,d) {return(mean(x))}
b.basic = matrix(data=NA, nrow=1000, ncol=2)
b.normal = matrix(data=NA, nrow=1000, ncol=2)
b.percent =matrix(data=NA, nrow=1000, ncol=2)
b.bca =matrix(data=NA, nrow=1000, ncol=2)
for(i in 1:1000){
rnormdat = rnorm(30,0,1)
b <- boot(rnormdat, RStatFctn, R = 1000)
b.ci=boot.ci(b, conf =095,type=c("basic","norm","perc","bca")) b.basic[i,] = b.ci$basic[,4:5]
b.normal[i,] = b.ci$normal[,2:3]
b.percent[i,] = b.ci$percent[,4:5]
b.bca[i,] = b.ci$bca[,4:5]
}
]\");
b_basic= rconn << Get(b.basic);
b_normal = rconn << Get(b.normal);
b_percent= rconn << Get(b.percent);
b_bca = rconn << Get(b.bca);
rconn << Disconnect();Giovanni는 다음과 같이 썼습니다. JMP에서 R을 사용하여 시도했는데 작동 중입니다 ... 조반니 쓴 :
JMP에서 R을 사용해 보았는데 훌륭하게 작동합니다. 나는 한가지 문제가있다. R에서 JMP로 반환 된 그래픽의 크기를 변경하려고 시도했으나 수행 할 수 없었습니다. 가져온 그래프의 크기를 변경하는 데 사용할 수있는 매개 변수 나 옵션이 있습니까? R에서 변경할 수는 있지만 항상 JMP에서 같은 크기로 가져옵니다. 어떤 도움을 주셔서 감사합니다!
MS는 썼다 : 흥미 진진한 뉴스! 나는 f로 JMP (맥 OS X)를 사용 ... MS 쓴 :
정말로 흥미 진진한 뉴스! 나는 JMP (Mac OS X)를 데이터 관리 및 분석 요구의 대부분을위한 허브로 사용하고 R 통합은 그 점유율을 더욱 높일 것입니다. 제발,이 Windows 버전에서만 찾을 수 없습니다 말해.
Kelci Miclaus는 다음과 같이 썼습니다 : Yes! 이것은 M에서 사용할 수 있습니다 ... 켈시 미 클라우스 쓴 :
예! JMP 9가 출시 될 때도 Mac에서이 기능을 사용할 수 있습니다.
이브라힘은 다음과 같이 적었습니다. 나는 그것을 시도했지만 훌륭했지만 제한적이었습니다 ... 이브라힘 쓴 :
나는 그것을 시도했지만 위대했지만 단 변수 분석으로 제한되었습니다! 이변 량 및 다 변수 플랫폼으로 확장하거나 개발할 수 있습니까? 이를 통해 다양한 테스트 / 분석에 적용 할 수 있습니다. 또한 세금 표시 줄 및 도움말 버튼은 상자에서 사용할 수 없습니다. JMP9를 사용하고 있습니다. 감사