스피커
|
성적 증명서
|
| 조슈아 W. 램버트 |
안녕하세요. |
| 로빈 고드프리 |
안녕하세요 저는 로빈, 조쉬입니다. |
| |
예. |
| 로빈 고드프리 |
네오. |
| 조슈아 W. 램버트 |
네, 저도 만나서 반가워요. 죄송합니다. 방금 파워포인트를 열었습니다. |
| 로빈 고드프리 |
좋아요. |
| |
공동 발표자가 있나요? |
| 조슈아 W. 램버트 |
아니요. |
| 로빈 고드프리 |
좋아요, 여기 목록을 내려가겠습니다. 우리는 이것을 녹음하고 있으므로 녹음되고 있다는 것을 구두로 확언해 주시기 바랍니다. |
| |
예. |
| 로빈 고드프리 |
휴대폰 인터넷 알림이 무음으로 설정되어 있습니다. |
| 조슈아 W. 램버트 |
예. |
| 로빈 고드프리 |
네, 저는 Windows 작업 표시줄 같은 것 같고 이메일이 중간에 나가는 것과 비슷하다고 생각합니다. |
| 조슈아 W. 램버트 |
그리고 내 생각엔 내가 모든 것을 꺼놨다고 생각하지 않나? 그들은 그렇게 하기 전에는 그렇게 할 필요가 없었습니다. |
| 로빈 고드프리 |
작업 표시줄에 있는 것 같아요. |
| |
여기서 보자. |
| |
이메일을 닫고 내용을 입력하면 괜찮을 것입니다. |
| |
좋아요. |
| 조슈아 W. 램버트 |
타코를 얻었습니다. |
| 로빈 고드프리 |
알았어, 좋아 여기 숨겠다. |
| |
그러려면 이 일을 할 때마다 해야 하고, 좋아해야 하고, 좋아, 내가 뭘 한 거지? |
| 조슈아 W. 램버트 |
그럼. |
| |
프레젠테이션이 진행되는 한 여러분은 제가 시작할 때부터 끊을 것 같습니다. |
| |
네, 그리고 질문하실 게 있으신가요? |
| 로빈 고드프리 |
아뇨, 아뇨. 그러니 평소대로 프레젠테이션을 하시면 됩니다. |
| |
맞습니다. 당신은 슬라이드와 모든 것을 가져오는 것을 알고 있습니다. |
| |
먼저 이야기를 나눈 다음 슬라이드를 불러오고 싶으시다면 다시 시작해야 하거나 그와 비슷한 일이 있을 때 저에게 알려주시면 별 문제 없이 그렇게 할 수 있습니다. |
| |
좋아, 당신은 카메라처럼 작은 클립입니다. 당신이 정말 가깝기 때문에 조금만 백업할 수 있는 방법이 있습니까? |
| |
난 당신의 얼굴 전체를 보고 싶지도 않아요. |
| 조슈아 W. 램버트 |
내가 잊어버렸다는 걸 알기 위해서. |
| 로빈 고드프리 |
응 그냥 조금. |
| |
아니면 카메라를 조금 낮출 수도 있습니다. |
| |
좋아요. |
| |
좋아요 네, 어깨랑 그런 부분이 더 많이 보이거든요. |
| |
그럼 저는 음소거 상태로 전환할 테니 몇 초만 기다려 주세요. 그러면 그렇게 하실 수 있습니다. |
| |
준비가 되면 시작해 보세요. |
| |
엄청난. |
| 조슈아 W. 램버트 |
여러분, 안녕하세요. 제 이름은 조쉬 램버트입니다. 저는 신시내티 대학교의 조교수이고 약 10년 동안 JMP를 사용해 왔습니다. |
| |
그리고 제가 개발한 실현 가능한 솔루션 알고리즘이라는 알고리즘을 사용하는 추가 기능을 사용하여 회귀 모델의 상호 작용을 탐색하는 것과 관련하여 제가 수행한 몇 가지 작업을 여러분과 공유하게 되어 기쁩니다. |
| |
그래서 |
| |
오늘 우리가 이야기할 내용 중 일부입니다. 그래서 저는 우리의 논의에 동기를 부여할 뿐만 아니라 제가 작업해 온 문제의 개요를 설명하는 작은 예부터 시작하겠습니다. |
| |
잠재적인 해결책. |
| |
그런 다음 솔루션을 R 패키지로 구현한 다음 이를 JMP 추가 기능으로 이동한 방법과 이를 수행하는 프로세스에 대해 논의합니다. 그리고 앞으로의 노력과 그 과정에서 배운 몇 가지에 대해 이야기하겠습니다. |
| |
그럼 작은 예를 들어 오늘 우리의 토론에 동기를 부여해 보겠습니다. 저는 이 사람을 데이터 과학자 톰이라고 부르겠습니다. 그럼 톰을 만나보세요. 그는 데이터 과학자이고 Tom은 일반적인 데이터 과학 활동을 많이 수행합니다. 특히 Tom은 JMP에서 다변수 회귀 모델을 구축합니다. |
| |
그는 주로 변수가 많은 표 형식 데이터를 다루고 있으며 Tom은 이러한 다변수 회귀 모델에 복잡성이 부족하고 특히 상호 작용 항과 2차 항이 부족하다는 것을 깨달았습니다. |
| |
그리고 Tom은...그것이 Tom을 좌절시켰고 Tom은 기계 학습을 바로 시작하고 싶어하지 않았습니다. |
| |
그래서 그는 회귀 모델에서 상호 작용 효과를 탐색할 수 있는 방법이 있기를 바랐습니다. |
| |
테스트하고 싶은 상호 작용이 있지만 이를 JMP의 적합 모형 플랫폼에 직접 작성해야 합니다. |
| |
그리고 이 모든 것을 실행하려면 시간이 많이 걸릴 것입니다. 예를 들어 Tom의 데이터 세트에 200개의 변수가 있고 모든 양방향 상호 작용을 찾아야 하는 경우 확인해야 할 양방향 상호 작용은 19,900개입니다. 그것은 너무 많은 것입니다. |
| |
그래서 Tom은 모든 가능한 조합을 일일이 확인할 필요 없이 회귀 모델의 상호 작용 효과를 탐색할 수 있는 알고리즘 및 데이터 기반 방법이 있는지 궁금합니다. |
| |
그럼 좀 더 수학적이고 통계적으로 엄격한 방식으로 이 문제를 살펴보겠습니다. 그래서 우리가 가지고 있는 문제는 양과 복잡성의 문제가 있다는 것입니다. |
| |
따라서 볼륨과 복잡성 |
| |
정말 빠른 속도로 계속해서 성장할 거예요. 우리는 항상 더 많은 데이터를 사용할 수 있으며 이러한 데이터의 복잡성도 증가하고 있습니다. |
| |
상호 작용의 문제는 확인해야 할 상호 작용이 너무 많다는 것입니다. |
| |
일반적으로 데이터 과학자, 통계학자, 과학자는 확인하기 위해 알려진 일련의 상호 작용을 사용하여 분석에 들어가야 합니다. |
| |
그런 다음 계속해서 확인하세요. 이것은 여러 가지 이유 때문에 문제가 됩니다. |
| |
즉, 어떤 상호 작용이 존재하거나 존재하지 않을 수 있는지에 대해 좋은 생각이 없을 수 있으며 데이터에서 해당 상호 작용을 탐색할 수 있기를 원합니다. |
| |
일종의 데이터 축소를 수행하기 위해 랜덤 포레스트나 주성분 분석과 같은 모델로 이동할 필요 없이 더 복잡한 작업을 수행할 수 있습니다. 회귀 모델을 구축하면서 여러 가지 작업을 수행할 수 있기를 정말로 원할 것입니다. |
| |
따라서 랜덤 포레스트와 주요 구성 요소 및 기타 기계 학습 유형의 작업에 대한 또 다른 문제는 이러한 것들이 종종 해석하기 어렵다는 것입니다. 그리고 우리는 회귀 모델의 해석 가능성을 유지하는 동안... 상호작용을 탐구합니다. |
| |
따라서 일반적으로 회귀 작업 흐름은 |
| |
그래서 통계학자는 상호작용 효과가 추가되지 않고 필요한 변수를 갖춘 간결한 기본 모델(제가 부르겠습니다)을 구축하는 데 많은 시간을 소비합니다. |
| |
이 기본 모델인 통계학자는 이 기본 모델, 많은 리소스, 관리에 많은 시간을 할애하고 해석 가능한지 여부와 상황에 맞는 이해가 가능한지 생각하는 데 시간을 보냅니다. |
| |
복잡성을 포함하지 않는 이러한 기본 모델의 문제점은 효과가...추정하는 효과가 성별, 인종, 연령과 같은 가능한 모든 하위 그룹에서 일관적이라고 가정한다는 것입니다. 진실. |
| |
이 복잡성 부족 |
| |
이러한 복잡성을 모델링하는 데 매우 효과적인 기계 학습 모델과 비교할 때 사람들이 이를 사용하는 것을 실제로 방해합니다. 따라서 문제는 실제로 다음과 같이 요약될 수 있습니다. |
| |
전통적인 다변수 회귀 모델에는 미치지 못하고 머신러닝 모델에는 미치지 못하는 방법이 있을까요? |
| |
하지만 중간에서 한두 가지 상호 작용을 추가하는 회귀 모델의 좋은 해석성을 얻을 수 있는 좋은 지점을 찾으세요. |
| |
우리는 이 빅데이터에서 발견한 것을 모델과 복잡성에 흥미로운 뉘앙스를 추가할 수 있었고, 이는 다시 좋은 맥락적 감각뿐만 아니라 예측 성능도 추가했습니다. |
| |
따라서 그렇게 할 수 있는 방법이 있다면 통계학자, 데이터 과학자, 조사자가 기본 모델을 구축한 후 상호 작용을 탐색할 수 있는 도구를 개발하고 싶습니다. |
| |
기본 모델이 먼저 발생하고 일반적으로 복잡성 탐색이 두 번째로 발생합니다. |
| |
따라서 이와 같은 도구를 개발하려면 몇 가지 제약과 선호 사항이 있습니다. 우리는 전통적인 통계 모델인 선형 로지스틱 회귀를 기반으로 다음과 같은 기능을 원합니다. |
| |
우리는 그것들이 해석 가능한 상태로 남아 있기를 바랍니다. 가능하다면 더 적은 수의 모델을 확인하고 싶고 최적보다는 실행 가능한 모델을 선호합니다. 나중에 이것이 무엇을 의미하는지 좀 더 자세히 설명하겠지만, 본질적으로 이것이 의미하는 바는 다음과 같습니다. |
| |
우리는 훌륭하고 실현 가능하다고 부르는 단 하나의 솔루션이 아닌 수많은 솔루션이 있기를 바랍니다. |
| |
그리고 우리는 그것이 유연하기를 바랍니다. 선형 회귀, 로지스틱 회귀, Cox 비례 회귀를 사용할 수 있도록 조정할 수 있습니다. 우리는 이를 포아송 회귀, 모든 유형의 회귀에 사용할 수 있으며 이 프레임워크 또는 도구를 사용할 수 있습니다. |
| |
그리고 다시 전통적인 통계 방법과 기계 학습 간의 하이브리드가 될 것입니다. 앞으로 나올 결과는 반드시 추론적일 필요는 없지만 탐색적일 것이며 우리가 미래에 시간을 할애할 일에 동기를 부여하고 영향을 미칠 것입니다. |
| |
이제 이 잠재적인 솔루션인 실현 가능한 솔루션 알고리즘에 대해 이야기해 보겠습니다. |
| |
알고리즘...때때로 FSA라고 불리는 실현 가능한 솔루션 알고리즘, 또는 제가 부르고 싶은 것입니다. |
| |
이 문서에서 처음 논의되었습니다. 실제로 제가 2018년에 쓴 이 문서에서 자세히 처음 논의했습니다. |
| |
그리고 |
| |
여기서는 알고리즘이 수행하는 작업을 요약하겠습니다. |
| |
따라서 알고리즘의 목표는 m차 상호작용을 식별하는 것입니다(m이 2이면 양방향 상호작용이 되고, m이 3이면 3방향 상호작용이 됩니다). |
| |
실행 가능한 기준이 있으므로 이것이 반드시 최선의 기준은 아니지만 |
| |
그 기준은 |
| |
어쩌면 어떤 면에서는 반최적이라고 여겨질 수도 있습니다. |
| |
이를 위해 우리는 다음 단계를 따릅니다. 따라서 우리가 할 첫 번째 일은 m차의 무작위 상호작용으로 시작하는 것입니다. 따라서 우리의 경우 양방향 상호작용이라고 가정해 보겠습니다. 따라서 m은 2입니다. |
| |
우리는 변수 중 하나의 모든 교환과 다른 모든 변수의 상호 작용을 고려할 것입니다. 예를 들어 무작위로 시작한다고 가정해 보겠습니다. |
| |
5개의 변수가 있으므로 이것은 여기 단계에 동기를 부여하기 위한 작은 예일 뿐입니다. 그러나 5개의 변수가 있고 X3, X5에서 무작위로 시작하고 기준은 무작위 시작 위치에 대한 R 제곱입니다. , 는 .5입니다. |
| |
그리고 알고리즘이 작동하는 방식은 변수 X3 또는 X5 중 하나를 다른 변수와 교환하는 것을 고려한다고 가정해 보겠습니다. 그렇다면 우리의 선택은 다음과 같습니다. |
| |
X3 X1, X3 X2, X3 X4, X5 X1, X5 X2 및 X5 X4. 그래서 가능한 모든 것 중에서 스왑에는 적어도 하나의 시작 위치 변수가 있다는 점에 주목하세요. |
| |
그런 다음 우리가 할 일은 이 모든 것 중에서 해당 모델을 적합시키고 해당 모델의 기준이 무엇인지 알아내는 것입니다. 그래서 우리가 여기서 볼 수 있는 것은 |
| |
X3 X5 모델의 경우 .5가 있습니다. X3 X1, 기준은 .4입니다. |
| |
그리고 R 제곱을 사용하면 우리는 분명히 더 나쁜 곳으로 가고 싶지 않고 더 나은 곳으로 가고 싶습니다. 더 높은 R 제곱을 사용하면 가능한 모든 선택 중에서 가장 좋은 곳이 무엇인지 알아낼 수 있습니다. . |
| |
이 예에서 가장 좋은 곳은 스왑 번호 3인 X3 X4입니다. 그래서 우리가 할 일은 3단계로 넘어가서 2단계에서 가장 좋은 교환을 하는 것입니다. |
| |
이 경우 X3, X4 위치로 이동한 다음 두 번째 위치로 돌아가서 개선이 이루어지지 않을 때까지 반복합니다. |
| |
그래서 우리는 장소로 이동하고 거기에서 시작하여 모든 교체를 고려하면서 결국 개선할 수 없을 때까지 이 프로세스를 반복했습니다. |
| |
그리고 우리는 그것을 실현 가능한 해결책이라고 부를 것입니다. |
| |
그리고 다른 가능한 솔루션을 찾기 위해 1단계부터 4단계까지 반복할 것입니다. 우리는 이 작업을 반복해서 수행할 수 있으며, 이 실행 가능한 솔루션 알고리즘이 최적의 솔루션을 제공한다고 보장하지는 않습니다. 하지만 때로는 최적의 솔루션을 제공할 수도 있습니다. |
| |
이제 이 알고리즘을 사용함으로써 얻을 수 있는 몇 가지 부산물, 즉 실현 가능한 솔루션 알고리즘에 대해 이야기해 보겠습니다. 그리고 이러한 내용은 다음과 같은 논문에 요약되어 있습니다. |
| |
내 동료인 Elliott는 2021년에 쓴 글에서 앞서 말했듯이 실행 가능한 솔루션이 선택한 기준에 최적이라고 보장되지는 않는다고 설명했습니다. |
| |
즉, 모든 최적의 솔루션이 가능하지만 모든 가능한 솔루션이 최적인 것은 아닙니다. 따라서 실행 가능한 솔루션은 일종의 준최적 솔루션입니다. 이는 좋은 기준, 실행 가능한 기준을 제공하지만 반드시 최적의 기준은 아닙니다. |
| |
그러나 이러한 실현 가능한 솔루션 기준은 일반적으로 최적의 솔루션 기준에 매우 가깝기 때문에 꽤 좋은 경향이 있습니다. 그들은 단지 최고의 것만큼 좋지 않을 수도 있습니다. |
| |
많은... 프로세스를 반복하면 이...이 네 단계를 통해 잠재적으로 많은 실현 가능한 솔루션을 얻을 수 있으므로 이 알고리즘을 10번 수행하면 실현 가능한 솔루션 4개를 얻을 수 있습니다. |
| |
10개의 가능한 솔루션을 얻을 수 있습니다. 이는 사용 중인 데이터와 해당 데이터 세트의 공분산의 분산에 따라 달라지므로 약간의 차이가 있습니다. |
| |
얼마나 많은 솔루션을 얻게 될지 결정되지 않은 상태입니다. |
| |
이것이 바로 우리가 일반적으로 사용자에게 실행 가능한 솔루션 알고리즘을 여러 번 반복하도록 권장하는 이유입니다. 그렇게 하면 실행 가능한 솔루션뿐만 아니라 최적의 솔루션을 얻을 확률도 높아질 것이기 때문입니다. |
| |
공간을 적절하게 검색했습니다. 그리고 우리는 최적의 정렬을 얻을 수 있는 합리적인 확률을 갖기 위해 얼마나 많은 무작위 정렬을 수행해야 하는지에 대해 설명하는 또 다른 논문을 가지고 있습니다. 우리는 |
| |
그것에 관한 이론적인 논문도 마찬가지입니다. |
| |
그러나 본질적으로 이것이 작동하는 방식은 이러한 상호 작용 중 일부가 더 매력적이라는 것입니다. 그들은...베타 공간은 다른 공간보다 그들을 더 많이 끌어당깁니다. |
| |
상호작용은 최적이 아니며, 때로는 이를 이끌 수도 있습니다. 데이터가 종종 이를 이끌 수도 있습니다. |
| |
실행 가능한...실행 가능한 솔루션 알고리즘을 통해 최적의 위치보다 더 자주 해당 위치로 이동할 수 있으며 이는 데이터의 상관 관계 등과 관련이 있습니다. |
| |
이제 R 패키지에 대해 이야기하고 이를 JMP 추가 기능으로 어떻게 옮겼는지 살펴보겠습니다. |
| |
그래서 |
| |
R 패키지는 rFSA라고 하며, R을 상당히 광범위하게 사용해 본 사람도 있고 그렇지 않은 사람도 있을 수 있다는 것을 알고 있습니다. 그리고 |
| |
그래서 R은 정말 좋은 프로그래밍 언어이고 통계 프로그램에서 자주 가르치기 때문에 제가 논문을 작성할 때 즉시 가장 먼저 갔던 곳이었습니다. |
| |
아시다시피 이 알고리즘을 작성하고 커뮤니티에 자체 데이터 세트에서 상호 작용을 식별하고 탐색할 수 있는 도구를 실제로 제공하는 것입니다. |
| |
따라서 rFSA 패키지는 제가 방금 이야기한 실현 가능한 솔루션 알고리즘을 구현합니다. |
| |
대규모 데이터 세트의 상호 작용을 위해 이 패키지는 R 제곱, 조정된 R 제곱, AIC와 같은 다양한 기준의 최적화를 지원합니다. |
| |
상호 작용, P 값 등. 또한 선형 모델 및 일반화된 선형 모델과 같은 다양한 모델링 전략을 지원하며 Cox 비례 위험 모델과 같은 다른 유형의 모델링에 맞게 쉽게 조정할 수 있습니다. |
| |
또한 지정한 만큼 알고리즘을 반복하므로 여러 솔루션을 제공합니다. |
| |
그렇다면 왜...저는 이 패키지를 JMP로 옮기게 된 동기에 대해 조금 이야기하고 싶습니다. 그리고 이 작업을 수행하려는 이유, 시기, 방법에 대해서도 이야기하겠습니다. |
| |
첫 번째 질문은 '왜 이런 일을 하는가?'입니다. 첫 번째는 하는 일이 재미있다는 것입니다. 나는 다양한 프로그래밍 언어로 글을 쓰는 것을 좋아합니다. 저는 JMP 버전의 JMP 스크립트 언어로 글을 써본 경험이 많지 않았습니다. |
| |
그래서 저는 그것을 배우고 싶었고 제가 4년의 대부분을 투자한 이 R 패키지를 JMP로 옮기는 것이 재미있을 것이라고 생각했습니다. |
| |
저는 JMP를 정말 좋아합니다. 저는 JMP가 훌륭하다고 생각합니다. 나와 내 데이터를 위한 정말 훌륭한 도구입니다. |
| |
분석 파이프라인. 저는 보통 JMP에서 모든 프로젝트를 시작하고 데이터를 탐색하고, 데이터를 구성하고, 사물을 살펴보면서 해당 데이터에 대해 많은 좋은 직관을 얻을 수 있습니다. 그리고 나는 내 많은 것이 |
| |
동료, 특히 제 조언자 중 한 명인 그는 주로 JMP에서 일하며 항상 저에게 JMP의 FSA 패키지를 요청했습니다. |
| |
그래서 저는 '그에게 그것을 주면 어떨까?'라고 생각했습니다. 그는 확실히 그럴 자격이 있기 때문에 나는 그것이 좋은 도구가 될 것이라고 결정했고 바라건대 다른 사람들도 그렇게 하기를 바랍니다. |
| |
좀 활용해 보세요. 그리고 이것이 왜 이 일을 해야 하는지에 대한 또 다른 요점으로 이어지며 rFSA에 대해 많은 좋은 피드백을 받았습니다. |
| |
구체적으로, 나는 내 R 패키지를 다운로드한 사람이 몇 명인지 추적해 왔으며 2019년에 출시한 이후 다운로드한 사람이 16,000명이 넘었습니다. |
| |
저는 전 세계 사람들로부터 셀 수 없이 많은 이메일을 받았고 JMP를 사용하는 사람들도 같은 내용에 액세스할 수 있기를 바랍니다. 그리고 이 추가 기능을 통해 사람들이 해석 방식을 바꾸는 정말 멋진 상호 작용을 찾을 수 있기를 바랍니다. 데이터와 그들이 그것을 이해하는 방법. |
| |
그러면 내가 언제 이 일을 할 예정이었는지 물을 수도 있습니다. 이것은 누군가가 나에게 돈을 지불해서 하는 일이 아닙니다. 알다시피, JMP는 나에게 그 일을 하라고 돈을 주지 않습니다. |
| |
내 현재 입장은 그들이 흥미로울 것이라고 생각하지만, 내가 이 일을 하는 데 많은 추가 시간을 소비하는 것에 대해 정확히 열광하지는 않을 것입니다. |
| |
하지만 운 좋게도 제가 맡은 역할 중 하나는 금요일에 약간의 자유 시간을 갖는 것입니다. 나는 금요일 오후나 금요일 아침을 즐거운 시간에만 열어두려고 노력합니다. |
| |
내 일과 관련된 재미있는 일들. 저는 이것을 즐거운 금요일 자유 시간(Fun Friday Free Time)이라고 부릅니다. 저는 지난 몇 달 동안 즐거운 금요일 자유 시간을 활용하여 JMP 추가 기능을 만드는 데 사용하기로 결정했습니다. |
| |
당신은 이렇게 물을 수도 있습니다. 내가 이 일을 어떻게 할 것인가? 저는 JMP 스크립트 언어를 몰랐습니다. 나는 이 일을 어떻게 하려고 했는가? 그래서 |
| |
첫 번째는 내가 그것을 배우려고 했다는 것입니다. JSL을 배우는 방법에 관한 정말 훌륭한 리소스가 많이 있습니다. |
| |
따라서 실제 JMP 소프트웨어 자체 내에 JMP JSL 코드 지원이 있습니다. 그냥 가서 도와주세요. 바로... 바로 들어갈 수 있습니다. |
| |
거기에 있는 스크립팅 인덱스입니다. 온라인에는 수많은 것들이 있습니다 |
| |
JMP 스크립팅 언어를 이해하는 방법과 시작하는 방법에 대해 알아보세요. 그리고 Community.jmp.com이 있습니다. |
| |
이것은 시작하기에 정말 좋습니다. 질문을 하거나 사람들이 묻는 다른 질문을 볼 수 있고 사람들이 즐길 수 있도록 공개적으로 게시한 코드를 빌릴 수 있습니다. 저는 여기서 그런 일을 여러 번 했는데 정말 좋았어요. |
| |
따라서 저는 이들 각각을 좀 더 깊이 있게 살펴볼 것입니다. 따라서 R 패키지를 옮기거나 자신만의 알고리즘을 작성하거나 자신만의 JSL 코드를 작성하는 데 관심이 있다면, |
| |
어디서부터 시작해야 할지 알 수 있을 것입니다. 그런 다음 이 작업을 마치면 추가 기능으로 이동하여 구체적으로 어떤 기능과 사용 방법을 설명하겠습니다. |
| |
그렇다면 JSL을 어떻게 배우나요? 음, 다시 할 수 있어요... |
| |
JMP가 보유하고 있는 다양한 JSL 리소스를 통해 이를 배울 수 있습니다. 864페이지 분량의 스크립팅 가이드가 여기에 링크되어 있습니다. |
| |
Google을 사용하거나 이 슬라이드가 끝난 후 이 슬라이드를 얻을 수 있고 이러한 링크를 얻을 수 있을 것입니다. JMP에는 스크립팅 인덱스가 있는데, 도움말로 가서 인덱스를 스크립팅하면 됩니다. 나는 여러분을 위해 여기에 넣었습니다. 정말 사용하기 쉽고 시작하기 쉽습니다. |
| |
JMP에 문의하실 수 있습니다. 그래서 제가 가장 먼저 한 일은 JMP에 연락을 취하는 것이었습니다. 그녀의 이름은 Ruth Hummel이고 저는 '이 일을 하고 싶은데 어디서부터 시작해야 할까요?'라고 말했습니다. |
| |
그녀는 나에게 그 아이디어에 대해 지지와 격려를 주었다. 그녀는 그것이 훌륭하다고 생각했고 저를 JSL 코드 전문가와 연결해주었습니다. |
| |
그 사람 이름은 마크 베일리야. 그리고 마크는 이 모든 과정에서 정말 대단했습니다. Mark는 스크립팅 언어에 대한 일반적인 지원, 내 코드 검토, 코드 일부 작성을 도왔습니다. |
| |
그것의 일부를 시작하십시오. 그리고 우리는 지난 몇 달 동안 이메일을 통해 약 22번 정도 왔다 갔다 했습니다. 그리고 |
| |
내 프로젝트에 기꺼이 도움을 주려는 직속 직원까지 JMP에서 제공한 리소스 |
| |
엄청났어요. 내 말은, 더 나은 것을 요구할 수 없었다는 것입니다. 내 말은, 이전에 다른 플랫폼을 위한 무언가를 만들려고 할 때 이런 유형의 지원을 받은 적이 없다는 것입니다. JMP에 감사드립니다. |
| |
이것을 제공하는 것이 이것이 존재하는 주된 이유입니다. 훌륭한 자원을 제공했기 때문입니다. |
| |
즉, Community.jmp.com에서 질문하고, 답변을 얻고, 코드를 빌릴 수 있고, 인증을 받을 수 있습니다. |
| |
JMP 스크립팅 언어. 커뮤니티에서 원하는 것은 무엇이든 검색할 수 있습니다. Google과 같지만 JMP 전용입니다. |
| |
원하는 것은 무엇이든 검색할 수 있으므로 JSL과 JSL을 입력하여 원하는 작업을 수행할 수 있습니다. 아마 이미 이에 대해 게시한 사람이 있을 것입니다. 없는 경우 토론 게시판에 추가할 수 있습니다. |
| |
그리고 차용 코드가 있는데, 이것은 Mark가 나에게 전달한 것 중 하나인 차용 코드였습니다. 커뮤니티 웹사이트에는 많은 코드가 있습니다. |
| |
사람들이 그것을 공유한 데에는 이유가 있습니다. 그래서 여기 오른쪽에 있는 것은 실제로 제가 개발한 추가 기능을 위해 빌린 것입니다. 사용자가 자신이 어디에 있는지 알고 싶었습니다. |
| |
알고리즘을 실행하는 데 시간이 얼마나 걸릴지 또는 이미 진행된 정도가 얼마나 되는지에 관한 것입니다. |
| |
그래서 저는 JMP에 진행률 표시줄을 직접 작성하고 싶지 않았기 때문에 커뮤니티 보드에 있는 진행률 표시줄을 빌려서 추가 기능에 바로 추가했습니다. |
| |
JMP에서 퇴직한 직원인 Craige Hales라는 사람이 이 코드를 작성했고 제가 빌려왔습니다. 고마워요, 크레이지. 코드 대여를 추천해주신 Mark님, 감사합니다. 시간이 많이 절약되었기 때문에 정말 감사하고 추가 기능이 훨씬 더 좋아졌습니다. |
| |
이제 마지막으로 추가 기능에 대해 이야기해 보겠습니다. 그래서 저는 이 추가 기능이 왜 필요한지에 대해 이야기했습니다. 다른 사람들은 R 패키지를 활용했으며 JMP 사용자가 이 패키지를 통해 이점을 얻을 것이라고 생각하는 이유와 제가 어떻게 했는지에 대해 이야기했습니다. |
| |
이제 실제로 어떻게 작동하는지 보여드리고 싶습니다. 이 부분이 이 모든 것에서 가장 재미있는 부분이기를 바랍니다. 그래서 저는 몇 달 후 즐거운 금요일 자유 시간에 이 전체 패키지인 R 패키지를 JMP로 옮겼습니다. 금요일에는 단 몇 시간밖에 걸리지 않습니다. 그리고 JMP 추가 기능 |
| |
현재는 선형 및 로지스틱 회귀 모델에서만 작동합니다. 나중에 다른 모델로 확장할 수 있기를 바라지만 현재로서는 선형 및 로지스틱 회귀 모델에서 작동합니다. 또 다른 점은 추가 기능이 |
| |
아시다시피 내장된 다른 모든 JMP 모듈에는 화려한 추가 기능이 많지 않습니다. 예를 들어, 범주형 변수를 반응 변수에 넣으면 성격 유형이 자동으로 로지스틱 회귀 분석으로 전환되지 않습니다. |
| |
나는 그것에 대해 다루지 않았습니다. 제가 아직 해결하지 못한 다른 많은 것들이 있습니다. 사람들이 이 패키지를 사용하고 좋아하고 이에 대한 피드백을 제공할 때 이 패키지를 통해 개선하고 싶습니다. |
| |
그래서 일부 기능이 부족합니다. 추가 기능 관리자의 멋진 점은 JSL 코드만 가져오면 추가 기능이 있다는 것입니다. 추가 기능 관리자, JMP 추가 기능, |
| |
JSL 코드에서 자신만의 추가 기능을 만들 수 있으므로 버튼을 몇 번만 클릭하면 JSL 코드를 추가 기능으로 전환하여 JMP 커뮤니티 전체와 공유할 수 있습니다. |
| |
그리고 저는 이것을 Community.jmp.com 웹사이트에 게시했습니다. 모든 사람이 나가서 여러분에게 보여드릴 준비가 된 추가 기능에 액세스할 수 있도록 말이죠. |
| |
그리고 제가 사용할 데이터 세트에도 액세스할 수 있습니다. 하지만 이는 제 예뿐만 아니라 여러분이 가지고 있는 모든 데이터 세트에 적용됩니다. |
| |
그래서 저는 이 추가 기능에 대한 매우 빠른 라이브 튜토리얼을 제공할 것입니다. 추가 기능이라고 불리는데, 방금 상호 작용 탐색이라고 불렀습니다. |
| |
이 모든 작업은 제가 앞서 이야기한 실현 가능한 솔루션 알고리즘을 통해 수행될 것입니다. 예제는 선형 모델입니다. |
| |
여기서는 두 개의 변수를 수정하여 이것이 내 기본 모델이 될 것입니다. 내 기본 모델에는 연속형 반응 변수와 조정할 수 있는 두 개의 공변량이 있습니다. |
| |
그런 다음 제가 하고 싶은 것은 데이터 세트에 있는 10개 변수 사이의 해당 모델에 추가할 2차 상호작용을 고려하는 것입니다. |
| |
그리고 5번의 무작위 시작을 수행하고 기준을 확인하고 싶습니다. 현재 이 기준은 |
| |
JMP 추가 기능은 상호 작용의 P 값을 최소화하려는 것입니다. 그래서 우리가 확인하는 각 상호작용은 |
| |
P 값을 생성하고 싶은 것은 내 솔루션이 다음을 갖는 솔루션이기를 바라는 것입니다. |
| |
매우 작은 P 값. 따라서 상호 작용의 P 값을 기반으로 공간을 검색하고 가장 좋은 값을 가진 항목으로 이동합니다. 따라서 우리의 결과에는 작은 P 값을 갖는 많은 상호 작용이 있을 것입니다. 그리고 |
| |
일반적으로 이러한 유형의 절차를 수행한 후에 제가 권장하는 것은 실현 가능한 솔루션 알고리즘입니다. |
| |
데이터를 플로팅하고, 모델의 상호 작용을 살펴보고, 상황에 맞는 비판적으로 생각하는 작업을 수행하는 것입니다. 하루가 끝나면 여기에서 데이터를 탐색하게 되기 때문입니다. |
| |
이것은 어떤 식으로든 추론이 아닙니다. 우리는 데이터의 신호를 사용하여 이 데이터에 어떤 상호 작용이 존재할 수 있는지 지시하고 있습니다. |
| |
그리고 다시 데이터와 추가 기능이 커뮤니티 웹 사이트에 게시됩니다. |
| |
알았어, 이제 그만하고 빨리 이 상황에서 빠져나와서 차를 세울 거야 |
| |
내가 가지고 있는 JMP 데이터 세트입니다. 여러분이 이것을 볼 수 있기를 바랍니다. |
| |
보시다시피, 정말 간략한 개요입니다. 이것은 실제로 제가 생성한 임의의 데이터 묶음입니다. 여기에는 실제 구조가 전혀 없습니다. 그런데...이것은 실제 데이터가 아니고 JMP에서 무작위로 생성된 데이터입니다. |
| |
여기에는 20개의 관측치가 있습니다. 저는 10개의 연속 변수와 설명 변수를 가지고 있습니다. |
| |
연속형 응답 변수가 있고 응답 변수를 0보다 크거나 0보다 작은 것으로 분류했습니다. |
| |
따라서 로지스틱 회귀 결과를 보고 싶다면 데이터를 사용하여 로지스틱 회귀 예제를 수행할 수도 있습니다. |
| |
따라서 추가 기능을 받은 후 웹사이트로 이동하여 추가 기능을 다운로드하고 두 번 클릭하면 JMP에 직접 설치됩니다. 정말 쉽습니다. |
| |
그런 다음 여기로 이동하여 추가 기능으로 이동합니다. 데이터 세트가 열리면 추가 기능으로 이동하여 상호 작용을 탐색할 수 있습니다. |
| |
그러면 여기에 이런 내용이 뜹니다. 그래서 우리에게는 몇 가지가 있습니다. JMP의 다른 모듈에서와 마찬가지로 여기 왼쪽에 모든 변수가 표시됩니다. |
| |
그래서 저는 응답 변수인 Y를 선택하고 수정하겠습니다. 여기서 기본 모델을 구성합니다. 이것이 제가 모델에 추가하는 모든 선형 주효과입니다. 여기에는 두 개의 변수가 있습니다. |
| |
여기에 추가할 X1과 X2입니다. 이제 해야 할 일 중 하나는 모델링 유형을 지정하는 것입니다. 따라서 내 페이지에는 두 가지 유형이 있습니다. |
| |
추가 기능을 선택할 수 있습니다. 하나는 표준 최소 제곱 모델링 유형이고 다른 하나는 로지스틱 회귀 유형입니다. |
| |
그리고 이것은 앞서 말했듯이 여기에 입력한 내용을 기반으로 자동으로 선택되지 않으므로 범주형 응답 변수를 완전히 입력해도 전환되지 않습니다. 직접 전환해야합니다. 그것은 멋진 종소리 중 하나이고 바라건대 나중에 설명하겠습니다. |
| |
그것을 제거하십시오. 이것을 다시 여기에 넣으세요. |
| |
좋아요, 이것이 우리의 설정이고 이것이 모델 y가 베타 0 더하기 베타 1 X 1 더하기 베타 2 X 2와 같다는 피팅이 될 것입니다. 이제 아래에는 제가 원하는 변수를 입력할 곳이 있습니다. |
| |
...또는 사이의 상호 작용을 찾고 싶으므로 X1부터 X10까지 모두 선택하겠습니다. 나는 그것들을 위에 추가할 것입니다. |
| |
그런 다음 알고리즘을 실행하고 싶다고 몇 번이나 말합니까? 그래서 여기서는 시간 관계상 5번을 하겠습니다. |
| |
고려해야 할 상호 작용의 순서는 두 가지뿐입니다. |
| |
저는 3자 이하로 머무르는 것을 권장합니다. 일반적으로 4자 상호 작용, 5자 상호 작용인 상호 작용을 해석하기가 훨씬 더 어려워집니다. |
| |
알고리즘...또는 제가 설정한 방식은 원하면 그 높이까지 올라갈 수 있다는 것입니다. 실제로 제한을 두지는 않았지만 여기서 더 높이 올라갈수록 이것을 실행하는 데 더 많은 시간이 걸릴 것이라는 점만 알아두세요. |
| |
그래서 저는 OK를 누르겠습니다. 이 작업에는 몇 초 정도 걸립니다. |
| |
그러면 제가 빌린 코드를 보실 수 있습니다. |
| |
여기에 나온 것을 볼 수 있으며 작업이 20%, 40% 완료되었음을 알려줍니다. |
| |
이것이 해결책입니다. 따라서 검사가 진행될 때마다 실행 가능한 솔루션이 발견되고 마지막에 나타나는 것은 데이터 테이블입니다. |
| |
아시다시피, 이것은 그런 기능 중 하나가 아닙니다... 상호 작용을 선택한 다음 |
| |
모델을 생성하면 JMP가 이미 다양한 작업을 수행하는 것처럼 모든 작업을 수행할 수 있지만 아직까지는 도달하지 못했습니다. 이것은 해결책이 무엇인지 알려줍니다. |
| |
그래서 그것은 여러분에게 그것이 무엇을 했는지에 대한 요약을 제공합니다. 그래서 다섯 번 무작위로 시작했습니다. 이는 반응 변수, 고정 변수, |
| |
찾은 상호작용 변수, R 제곱, 해당 모델에 대해 조정된 R 제곱, 평균 제곱근 오차, 상호작용 P 값입니다. 좋아요, 여기서 우리가 볼 수 있는 것은 |
| |
(이것을 클릭하면 표시됩니다.) 해결 방법은 두 개뿐입니다. X2 X3은 하나의 상호 작용이고 X10 X7은 또 다른 상호 작용이었습니다. |
| |
이제 제가 할 수 있는 것은, 지금은 그렇게 하지 않을 것입니다. 가서 이 모델을 구축하고 이 결과를 재현하고 결과를 조사하여 확인하는 것입니다. 좋습니다. 이것이 좋은 통계 자료인가요? |
| |
알고리즘...또는 여기서 찾은 좋은 통계적 상호작용이 있나요? 내 레버리지 도표는 어떤 모습인가요? 나의 다른 기준은 모두 무엇입니까 |
| |
플롯은 어떻게 생겼나요? 진단 플롯은 어떤 모습인가요? 그런 종류의 것들. 그런 다음 질문을 시작할 수 있습니다. 이 상호 작용이 매개 변수 추정치 등의 측면에서 의미가 있습니까? |
| |
탐색적이므로 잠재적인 해결책을 제공할 수 있지만 실사를 통해 이를 추적하고 실제로 얻은 결과에 대해 생각해야 합니다. |
| |
그리고 이 분야의 맥락 전문가들에게 질문을 해보세요. 이것이 일반적으로 우리가 보건 과학에서 이것을 사용하는 방법입니다. 우리는 이것을 건강 데이터와 함께 사용하여 상호 작용을 생성한 다음 의사에게 가서 이것이 효과가 있는지, |
| |
알다시피, 연령이나 성별 등을 불문하고 일관성이 없을 것입니다. 그리고 그들은 보통 우리에게 그것에 대해 이야기할 것입니다. 생각해 보세요. 전체적인 아이디어는 이것이 향후 연구에 영향을 미칠 수 있기를 바라는 것입니다. |
| |
힘이 좋은 방법. |
| |
좋아요, 이제 PowerPoint로 돌아가겠습니다. 이상으로 이번 튜토리얼이었습니다. 사용하기가 매우 쉽다는 것을 알 수 있습니다. 그것은 정말 작은 예였습니다. 이것을 늘릴 수 있습니다. |
| |
아시다시피, 보유하고 있는 데이터 세트가 클수록 제가 방금 수행한 전체 프로세스가 더 오래 걸릴 것입니다. 10초 길이는 아닙니다. 곧 될거야, |
| |
데이터 세트의 크기에 따라 5~10분 정도 걸릴 수도 있습니다. 저는...알고리즘을 사용하고, 추가 기능을 사용하여 100개의 변수가 있는 데이터 세트를 수행했습니다. |
| |
설명 변수가 포함되어 있으며 약 5~10번의 무작위 시작을 실행하는 데 약 7분 정도의 시간이 걸렸습니다. |
| |
JMP 추가 기능보다 R 패키지의 속도가 더 빠르지만, 이는 다시 말씀드리지만 이것이 제가 처음 시도한 것이기 때문이며, 반복을 통해 훨씬 더 빠르고 더 좋아질 수 있기를 바랍니다. |
| |
그럼 앞으로의 개선에 대해 이야기해보겠습니다. 그래서 저는 사용자가 최적화하거나 |
| |
그들이 원하는 기준에 따라 실행 가능한 솔루션을 찾으세요. 따라서 R 제곱 최적화, AIC 최적화 또는 오분류율 최적화를 기반으로 실행 가능한 솔루션을 찾고 싶다면, |
| |
로지스틱 회귀 모델에서 저는 그들이 그렇게 할 수 있도록 하고 싶습니다. 그리고 그것은 실제로 그렇게 어려운 일이 아닙니다. 그냥 들어가서 해야만 합니다. |
| |
변수 선택에 따라 모델링 성격을 자동으로 저장하거나 선택합니다. 그것은 간단합니다. 당신은 |
| |
이진 로지스틱 변수는 자동으로 로지스틱 회귀를 선택합니다. 제 생각엔 그게 엄청나게 어려운 일은 아닌 것 같고 꽤 빨리 할 수 있을 것 같아요. R 패키지를 옮기는 과정을 거쳤기 때문에 자신감이 생겼습니다. |
| |
속도를 좀 향상시키고 싶습니다. 이 속도를 향상시키기 위해 제가 할 수 있는 일이 많이 있습니다. |
| |
그래서 저는 그렇게 할 수 있었으면 좋겠습니다. 리콜 버튼이 있으면 좋을 것 같습니다. 지금은 그런 게 없어요. 제가 JMP에서 가장 좋아하는 기능 중 하나는 호출 버튼을 클릭할 수 있다는 점입니다. |
| |
그런 다음 FSA에서 얻은 결과를 바탕으로 모델을 구축하는 과정을 간소화하고 싶습니다. 그래서 |
| |
JMP나 Lasso 등에서 전방 선택을 수행할 때와 같이 이미 그렇게 할 수 있습니다. 모델 만들기를 클릭하기만 하면 모든 변수를 매우 쉽게 가져올 수 있습니다. |
| |
저는 이 실현 가능한 솔루션 알고리즘을 사용하여 해당 작업을 수행하고 싶습니다. 해당 유형의 결과를 얻고 모델 만들기를 클릭하기만 하면 자동으로 모든 작업이 수행됩니다. |
| |
이를 통해 탐색할 수 있고, 다시 한 번 바라건대 여러분이 발견한 상호 작용을 잘 이해할 수 있을 것입니다. |
| |
그래서 제가 겪고 싶은 몇 가지 감사의 말을 전합니다. 첫 번째는 마크 베일리입니다. 당신이 없었다면 나는 그것을 할 수 없었을 것입니다. JSL 코드에 대한 지원에 진심으로 감사드립니다. 루스에게 감사드립니다 |
| |
제가 마크와 연락할 수 있게 해줬을 뿐 아니라 장군이 되어서요. |
| |
이 프로젝트를 지원하고 좋은 피드백을 제공하는 사람입니다. 앤과 래리, 정말 고마워요 |
| |
JMP와 과거 관계에 관련된 모든 일에 도움을 주시고 이번 Discovery Summit을 개최하도록 격려해 주셔서 감사합니다. 정말 즐거웠고 JMP 커뮤니티에서 더 많은 사람들을 만날 수 있어서 기쁩니다. |
| |
그것을 통해, 그래서 그것에 대해 감사합니다. 다양한 방법으로 저에게 연락하실 수 있습니다. 내 대학 이메일로 저에게 이메일을 보내실 수 있고, 그것이 당신이 원하는 방식이라면 트위터로 저에게 연락하실 수 있습니다. |
| |
또한 이 JMP 추가 기능을 github과 커뮤니티 웹사이트에 게시할 계획이므로 나중에 추가 기능 업데이트가 있는지 두 곳 중 한 곳을 자유롭게 확인하시기 바랍니다. |
| |
네, 저를 초대해 주셔서 감사합니다. 할당된 시간 동안 귀하의 질문에 답변하게 되어 기쁩니다. 감사합니다. |