X축의 특정 값에서 표준 최소 제곱 회귀를 어떻게 수행할 수 있습니까?
더 자세한 내용을 보려면 전류에 대한 전압을 -10A -5A 5A 10A 값으로 플롯합니다. 이 값 주위에 너무 많은 지점에 대한 표준 최소 회귀 모델이 필요합니다. 이것을 표현하기 위해 데이터에 4개의 점이나 4개의 작은 선이 있는 것을 상상해 보세요.
나는 JMP 17 pro를 가지고 있고 현재 모든 데이터 세트에 대해 이 작업을 수행하고 있지만 이것이 나에게 필요한 것은 아닙니다.
JMP 분석을 통해 이를 수행하는 방법이 스크립트보다 선호되지만 무엇이든 좋습니다. 
안녕 @MedianRooster10 ,
데이터가 어떻게 구성되어 있는지 확인할 수 있도록 샘플 데이터 테이블을 공유할 수 있습니까? 이렇게 하면 더 빨리 해결책을 찾는 데 도움이 될 수 있습니다.
마음에 떠오른 한 가지 아이디어는 다양한 현재 그룹을 명목 데이터 유형으로 분류하는 열이 있다는 것입니다. :Current 열에는 -10, -5, 5, 10과 같은 숫자 값이 있을 수 있지만 다음과 같은 텍스트가 포함된 열도 있을 수 있습니다. -10A -5A 5A 10A, 전류의 각 그룹화에 대해 표준 LS 회귀 분석을 수행할 때 이 열을 "BY" 변수로 사용합니다.
이는 Big Class.jmp 파일을 사용하고 :height를 Y로, :weight를 X로, 그리고 :sex를 "BY" 변수로 모델링하는 것과 같습니다. 이는 서로 다른 전압 범위로 그룹화된 모든 Y에 대한 모델을 제공합니다. 이것이 당신이 추구하는 것이 아닐 수도 있지만, 데이터가 어떻게 구성되어 있는지 확인하고 보다 구체적인 솔루션을 제공하기 위해 예제 데이터 테이블을 얻는 것이 도움이 될 것입니다.
도움이 되었기를 바랍니다!,
DS
안녕 @SDF1
나는 그것이 내가 추구하는 것이라고 생각하지 않습니다.
1개의 온도에 대한 데이터의 하위 집합과 내가 생성한 그래프를 첨부했습니다.
선형 그래프는 아니지만 부분 선형 회귀를 원합니다. 예를 들어 5A에 가장 가까운 10개의 데이터 포인트를 가져와서 최소 제곱을 계산하고 싶습니다(이를 그래프의 데이터 포인트로 플롯).
도와주셔서 감사합니다!
안녕 @MedianRooster10 ,
나는 당신이 조각 회귀를 시도하고 있다고 생각합니다. Functional Data Explorer 또는 비선형 플랫폼을 사용하여 이를 수행할 수 있습니다.
이 JMP 블로그는 매우 유사한 사용 사례에서 이러한 회귀 유형을 실현하는 데 도움이 될 수 있습니다. JMP의 비선형 플랫폼으로 조각별 함수 피팅
이것이 당신에게 도움이 되기를 바랍니다.
안녕 @MedianRooster10 ,
좀 더 잘 이해하는 데 도움이 되는 데이터 테이블을 제공해 주셔서 감사합니다.
모든 데이터에 대해 최소 제곱법을 수행할 필요가 없고 특정 세그먼트 또는 여러 세그먼트에만 적합할 경우에도 일종의 식별 열을 사용하는 것이 모델에서 이를 다음 중 하나로 사용하는 방법이라고 생각합니다. BY 변수 또는 로컬 데이터 필터로 사용됩니다. 또한 많은 데이터 테이블이나 열에 대해 이 작업을 수행해야 할 수도 있다고 생각합니다. 이는 스크립팅이 실제로 이를 수행하는 데 매우 좋은 방법이 될 것임을 의미합니다.
약간의 스크립팅과 JMP와의 인터페이스만으로 이 작업을 수행하려면 아래에 데이터 테이블을 정렬하고 새 데이터 테이블을 만들고 :Segment라는 열을 생성한 다음 세그먼트에 값을 할당하는 작은 코드가 있습니다. 선택. 코드에서 대상은 대상 현재 값입니다. 저는 10을 선택했고 범위는 양쪽에 있는 데이터 포인트의 수입니다. 그런 다음 일반적인 표준 최소 제곱을 수행하고 :Segment 열을 로컬 데이터 필터로 사용하면 세그먼트 2를 선택하고 데이터에 맞는 최소 제곱을 얻을 수 있습니다.
Names Default To Here( 1 );
Current Data Table() << Sort( By( :"Current(A)"n ), Order( Ascending ), Output Table( "Sorted.jmp" ) );
dt = Data Table("Sorted");
dt << New Column( "Segment", "Continuous", "Ordinal" );
range = 5; //rows to group on either side of target
target = 10; //5A
rows = Current Data Table() << Get Rows Where( (:"Current(A)"n >= target - 0.3 & :"Current(A)"n <= target + 0.3) );
For( i = 1, i <= N Rows(dt), i++,
If(
i < rows - range, :Segment[i] = 1,
(i >= rows - range & i <= rows + range), :Segment[i] = 2,
i > rows + range, :Segment[i] = 3
)
);다음과 같은 출력을 얻게 됩니다.

SLS 모델 피팅에서 세그먼트 열을 BY 변수로 사용하는 경우 데이터 모델을 얻을 때 CTRL 키를 누른 채 "응답 전압" 이름 중 하나 근처에 있는 빨간색 핫 버튼을 마우스 왼쪽 버튼으로 클릭하면 됩니다. 열 저장 > 예측 수식을 선택하면 세그먼트 번호에 따라 다른 방정식이 사용되는 데이터 테이블에 예측 수식 열이 저장됩니다.



자, 그것은 확실히 그것을 할 수 있는 한 가지 방법입니다.
또 다른 방법은 그래프 빌더에서 전압 대 전류 그래프를 만든 다음 올가미 도구(메뉴 아래 돋보기 옆)를 사용하여 맞추려는 데이터를 선택하는 것입니다.

그런 다음 행 > 행 선택 > 행 선택 반전으로 이동합니다.

그런 다음 행 번호 중 하나를 마우스 오른쪽 버튼으로 클릭하고 숨기기 및 제외를 선택합니다. 그런 다음 표준 최소 제곱에 대한 모델 플랫폼으로 이동하면 숨겨지거나 제외되지 않은 데이터 요소만 모델링할 수 있습니다.
아래 예에서는 모델과 SLS가 데이터에 맞는 것을 볼 수 있습니다. 예측별 잔차 도표에서 약간의 곡률을 볼 수 있으므로 현재*현재 항을 추가했으며 약간 더 임의적인 잔차를 사용하여 훨씬 더 잘 맞는 결과를 얻었습니다.


데이터의 다양한 조각별 섹션에 대한 공식의 기능적 형식을 알고 있다면 Victor가 비선형 플랫폼을 사용하여 언급한 방식으로 진행하겠습니다. 그러나 각 조각의 기능적 형태를 알아야 하고 데이터를 "분할"할 위치를 알아야 합니다.
이 내용과 Victor가 게시한 내용 사이에는 시작하기에 충분할 것입니다.
도움이 되었기를 바랍니다!,
DS