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