로지스틱 회귀 분석의 상한을 5-7 개의 데이터 포인트로 추정하는 방법은 무엇입니까?


11

y = β 1 형식의 데이터가 있습니다.y=β11+exp(β2+β3x) . β1~의 추정을β3위해이 논문의 공식을 사용합니다 :John Fox-비선형 회귀 및 비선형 최소 제곱 이 논문에서,β1은 데이터를보고 추정됩니다. 내가 그렇게하면 3 점 만 있어도 잘 작동합니다. 그로부터 나는 다른 두 사람을 계산할 수 있습니다. R의 nls ()와 C #의 LevenbergMarquardt를 사용하여 매개 변수를 테스트했습니다. 그들에 의해 반환 된 모델은 만족합니다.

β1max1.1max1.5

측정은 다음과 같습니다.

x = (40, 50, 60, 70), y = (1000, 950, 400, 200)-> 추정하기 쉬움

x = (40, 50, 60, 70), y = (1000, 950, 800, 100)-> 추정하기 쉬움

x = (40, 50, 60, 70), y = (500, 200, 100, 50)-> 추정하기 쉽지 않음

주어진 지점의 델타를 계산하여 함수의 위치 ( "아래쪽", "위쪽", 경사면)를 찾을 수 있고 그에 따라 상한을 계산할 수 있습니다. 더 나은 솔루션에 대한 힌트가 있습니까? 추가 정보 : 수행 할 수없는 경우 적합 할 수있는 측정이 가능한 한 좋으며 일부 측정을 전혀 맞지 않을 수 있음을 인정합니다.

(C #에서 구현을 원하지만 여기에 게시했지만 문제가 언어에 따라 다르다고 생각하지 않습니다)

업데이트 (이 응용 프로그램) :

x는 온도 값이고 y는 해당 측정 값입니다. 본질적으로 그것은 더 낮은 온도에서 더 높은 y 값을 갖는 로지스틱 곡선처럼 보이게되며 그 반대도 마찬가지입니다. 녹는 점은 곡선의 변곡점과 같으며, 이는 모델 매개 변수의 작은 변화로 많이 변합니다.

업데이트 (일부는 7 개의 데이터 포인트와 60의 알려진 변곡점이있는 데이터로 구성) :

//first I made up some data without any noise and enough (13) points
double[] x17 = { 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90 };
double[] y17 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 59.642....

//Then I took three different parts of that data 
(to simulate how much data I will have in the real world)
double[] x18 = { 30, 35, 40, 45, 50, 55, 60 };
double[] y18 = { 2000, 1920, 1820, 1700, 1500, 1280, 1000 };
//calculated inflection point: 59.263.... is ok!

double[] x19 = { 60, 65, 70, 75, 80, 85, 90 };
double[] y19 = { 1000, 720, 500, 300, 180, 80, 0 };
//calculated inflection point: 53.447.... to small!

double[] x20 = { 45, 50, 55, 60, 65, 70, 75 };
double[] y20 = { 1700, 1500, 1280, 1000, 720, 500, 300 };
//calculated inflection point: 59.868... almost perfect!

상한 추정에 대한 현재 접근 방식은 y0 * y0 / y1입니다. 이 방법으로 항상 최대 값에 가까운 값을 가질 수는 없습니다.

업데이트 : x 및 y 값은 음수가 아닙니다. 데이터 포인트가 손실되지 않는 한 x는 항상 {40, 45, 50, 55, 60, 65, 70}입니다.

업데이트 : 시뮬레이션하기 쉬운 데이터로 여러 번 많은 테스트를 수행했습니다 (노이즈없이 곡선에 정확하게있는 데이터 포인트를 선택합니다 = 노이즈가 없음). 첫 번째 또는 두 번째 데이터 포인트가 아닌 한 제대로 작동한다는 것을 알았습니다 x = 40 또는 x = 45)가 없습니다. 나는 그러한 측정을 버려야하며 사용자는 그와 함께 살아야한다고 생각합니다.


이렇게 적은 수의 포인트를 사용하면 실제 문제가 추정치의 부정확성이며 계산 방법이 아니라고 생각합니다.
Michael R. Chernick

1
마지막 예의 문제점은 음수 부호) 로 훨씬 더 적합하다는 것입니다 . 수용 가능한 솔루션입니까? 그렇지 않으면 두 모델 사이의 경계에 대한 솔루션을 수용해야하므로 문제가 계속 발생합니다. y=β11exp(β2+β3x))
whuber

@MichaelChernick 당신이 옳은 것 같아요, 문제는 결코 7 개 이상의 데이터 포인트를 얻지 못할 것입니다. 나는 그보다 적은 결과를 내야한다고 생각합니다. 동일한 결과를 가진 테스트 사례를 추가했습니다. 개선의 여지가 있습니까? 아니면 이것이 가장 근접합니까?
Verena Haunschmid

@ whuber 나는 음수 부호로 데이터를 맞추려고했지만 각 매개 변수 세트에 대해 단일 기울기 행렬 오류 (R)가 발생했습니다. 어떤 견적을 받았습니까? 커브가 그렇게 보이는 이유를 강조하기 위해 내가 사용하는 영역에 대한 정보를 추가했습니다. (나는 확실히 아직 아니에요 수식을 만족하는 경우 이러한 요구 사항)
베레 Haunschmid

(1) 값 은 어떤 단위입니까 ? 이것이 부정적 일 수 있다면 모델이 작동하지 않을 것입니다. (2) 값 의 "노이즈"특성 또는 오류에 대해 무엇을 알려줄 수 있습니까? 이것은 피팅에 중요 할 수 있습니다. yyy
whuber

답변:


1

올해 초 비슷한 문제를 해결했습니다. 내가 사용한 솔루션 은 선형 대수학을 사용 하여 최대 을 제거하는 이 백서를 기반으로했습니다 . 이런 식으로, 일단 일부 절차를 통해 결정된 나머지 매개 변수에 대한 결과 (종이에서와 같이 단순히 오류 표면을 최소화 함)를 사용하여 을 ( 를) 유추하는 데 사용할 수 있습니다 .β 1β1β1

직관적으로,이 솔루션은 동일한 속도 및 위치 매개 변수를 가진 모든 로지스틱 곡선이 자체 유사하다는 전제에 기초합니다. 따라서 상한을 설정하면 시그 모이 드 곡선을 적절한 최대 값으로 "스트레칭"할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.