이것은 조각별 연속 함수를 데이터 세트에 맞추는 방법에 대한 일련의 게시물 중 세 번째입니다. 시리즈의 다른 모든 게시물에 대한 링크로 각 게시물을 시작하겠습니다. 그들은:
3부로...
소개
이 시리즈의 이전 게시물을 따라왔다면 이제 예제 문제의 조각에 가장 잘 맞기 위해 결정해야 하는 10개의 알려지지 않은 매개변수를 포함하는 방정식을 개발했다는 것을 알 수 있습니다. 이 작업을 수행하는 방법 JMP ?
먼저 JMP의 Formula Editor를 사용하여 방정식과 알 수 없는 매개변수를 입력해야 합니다. 독자가 일반적으로 수식 편집기에 익숙하다고 가정하겠습니다. (그렇지 않다면 여기 수식 만들기에 대한 짧은 비디오 그리고 수식 편집기에 대한 자세한 내용이 포함된 긴 비디오 .)
JMP 공식 편집기에서 매개변수 설정
매개변수를 설정하는 수식 편집기의 기능을 알지 못할 수도 있습니다. 매개변수는 작성 중인 공식에 대해 로컬인 변수입니다. 드롭다운 메뉴를 통해 액세스할 수 있습니다(기본값은 테이블 변수, 그림 1과 같이 매개변수로 전환).
그림 1: 수식 편집기에서 매개변수 액세스
그러면 수식에 "새 매개변수"를 추가하는 옵션이 나타납니다. 간단한 예를 들어 매개변수 목록에 "a0"이라는 매개변수를 추가해 보겠습니다. 새 매개변수를 클릭한 다음 매개변수 이름을 "a0"으로 변경하고 값을 1로 지정합니다.
그림 2: 새 매개변수 생성 및 초기값 제공
- "이름"은 임의적입니다. 유효한 JSL 변수 이름을 선택할 수 있습니다.
- "값"은 이 매개변수의 시작 값입니다. 시작 값을 지정해야 합니다. 때로는(선택한 공식에 따라) 시작 값이 중요할 수 있으며 추측할 수 있는 실제 값에 가깝게 선택해야 합니다. (나중에 수렴 문제를 방지하는 데 도움이 됩니다.) 이 경우 값이 어떻게 되어야 하는지 모르겠으므로 시작 값 1을 임의로 선택합니다.
이제 열 변수인 것처럼 수식에서 이 새로운 "a0" 매개변수를 사용할 수 있습니다. "y"로 표시된 열의 값에 간단히 추가해 보겠습니다. 매개변수 목록에서 a0을 두 번 클릭하고(공식 패널에 나타나야 함) "+"를 입력한 다음 열 목록에서 "y"를 두 번 클릭합니다. 이것은 다음 공식을 제공해야 합니다.
그림 3: 수식에서 매개변수 사용
이제 확인을 클릭하고 데이터 테이블의 결과를 보면
그림 4: 수식에서 매개변수를 사용한 결과
따라서 공식은 이제 a0 매개변수의 현재 값을 인식하고 그에 따라 적용합니다. 이 중요한 개념은 다음 블로그 게시물에서 JMP Nonlinear Platform을 사용하여 알 수 없는 매개변수를 해결할 때 사용됩니다.
조각별 함수에 대한 매개변수 입력
이 블로그 시리즈의 2부에서는 예제 데이터 시리즈의 중단점 사이에 적용할 5가지 간단한 다항식을 개발했습니다. 이 다항식에는 6개의 알 수 없는 매개변수가 있습니다. a0, b1, b2, c1, d1 및 d2. 또한 다항식이 활성화된 영역을 정의하는 4개의 컷포인트(X1, X2, X3 및 X4)가 있습니다. 합리적인 시작 값과 함께 이러한 각 매개변수를 Formula 매개변수 목록에 추가해야 합니다. 완료되면 매개변수 목록은 다음과 같습니다.
그림 5: 조각별 예제에 대해 입력 및 초기화된 모든 10개 매개변수
다항식의 각 계수에 대해 시작 값을 "1"로 가정했습니다. 중단점 X1 ~ X4의 경우 발생할 수 있다고 생각되는 "눈알"을 기준으로 값을 추정하기로 결정했습니다. 이것은 단순히 JMP가 중단점 찾기를 시작하기에 더 나은 위치를 제공합니다.
부울 트릭을 포함하여 조각별 공식 입력하기!
이제 수식 편집기에서 매개변수를 설정하는 방법을 알게 되었으며 2부에서 설명한 5개의 조각별 방정식 중 하나를 수식 편집기에 입력하는 방법도 알게 되었습니다. 그러나 5개의 조각별 방정식 모두를 동일한 공식에 어떻게 입력합니까?
한 가지 방법은 큰 IF 문을 사용하는 것입니다. 예를 들어 "If x @PatrickGiuliano , 이전 JMP 커뮤니티 토론 스레드에서 유용한 트릭을 게시했습니다.
JMP는 부울 연산자(And, Or, Nor 등)를 인식합니다. 부울 연산자가 수식에 사용되는 경우 부울 논리는 참이면 1을 반환하고 거짓이면 0을 반환합니다. 따라서 (X1<:x & :x<=X2)와 같은 연산자를 설정할 수 있습니다. 이 연산자는 "x" 열의 값(표현식에서 ":x"라고 함)이 매개변수 X1과 X2 사이에 있으면 1을 반환하고 그렇지 않으면 0을 반환합니다. 따라서 X1-X2 세그먼트에 대한 조각별 방정식을 위의 부울 식으로 간단히 곱할 수 있습니다. x 값이 적절한 범위에 있으면 세그먼트 방정식이 활성화됩니다. 그렇지 않으면 0을 반환합니다. 그런 다음 다른 모든 범위에 대해 동일한 작업을 수행하고 모든 방정식을 합산합니다.
이 모든 작업을 수행하면 다음과 같은 공식이 생성됩니다.
그림 6: 완전한 조각별 공식(공식 편집기 모드에 표시됨)
다음은 JSL 입력 형식의 동일한 정보입니다.
그림 7: 완전한 조각별 공식(JSL 모드에서 표시됨)
요약하자면, 그림 6과 7에서 우리는 본질적으로 다음과 같은 새 열(ypred라고 함)에 공식을 작성했습니다.
- 공식에 사용될 10개의 알려지지 않은 매개변수를 정의하고 각 매개변수에 적절한 시작 값을 지정합니다.
- 각각 적절한 매개변수를 사용하는 4개의 조각별 방정식을 설명합니다.
- 각 방정식의 범위를 설명하는 적절한 부울 부등식을 곱하여 각 조각별 방정식을 활성화합니다.
- 4개의 방정식을 더하여 최종 공식을 제공합니다.
정말 멋진...
다음 시리즈
다음 시간에는 마침내 비선형 플랫폼의 방정식을 사용하여 최적의 매개변수를 풉니다. 우리는 또한 수렴 기준과 알고리즘에 대한 선택에 대해서도 논의할 것입니다.
안녕하세요 @제리피쉬 , 지금까지 이 블로그 게시물을 정말 즐겼습니다!매개변수 최적화를 매일 하지 않는 사람의 경우, 수행 방법과 여기에서 다루는 부분별 비선형 피팅과 같은 고급 사례를 처리하는 방법에 대한 복습을 위해 이 리소스를 다시 참조하는 것이 좋습니다.
이 게시물과 관련된 빠른 질문: "시간"에 따라 점진적으로 증가(또는 감소)하는 추세를 생성하는 시뮬레이션된 데이터를 생성하려면(단순성을 위해 행 순서를 사용할 수 있음) JMP에서 이것을 매개변수화하려면 어떻게 해야 합니까? (또는 인스턴트 열 공식의 조합과 같이 모델 매개변수화를 사용하지 않고 더 쉬운 방법이 있습니까?).
감사 해요!@PatrickGiuliano