두 곡선의 특징을 비교하는 방법?


11

두 개의 곡선 f (x)와 g (x)를 비교해야합니다. 그것들은 같은 x 범위에 있습니다 (예 : -30에서 30까지). f (x)는 날카로운 피크 또는 부드러운 피크와 밸리를 가질 수 있습니다. g (x)는 동일한 피크 및 밸리를 가질 수있다. 그렇다면 이러한 기능이 육안 검사없이 얼마나 잘 일치하는지 측정하고 싶습니다. 다음과 같은 방법으로이 문제를 해결하려고했습니다.

  1. 각 데이터 포인트를 함수의 총 면적으로 나누어 두 함수를 정규화하십시오. 이제 정규화 된 함수의 면적은 1.0입니다
  2. 각 x에서 f (x) 및 g (x)에서 최소값을 얻습니다. 이것은 기본적으로 f (x)와 g (x) 사이의 겹치는 영역 인 새로운 기능을 제공합니다.
  3. 단계 2의 결과 기능을 통합하면 1.0에서 총 겹치는 영역이 나타납니다.

그러나 이것은 봉우리와 계곡이 일치하는지 여부를 알려주지 않습니다. 이 작업을 수행 할 수 있는지 확실하지 않지만 누군가 방법을 알고 있다면 도움을 주셔서 감사합니다.

== EDIT == 설명을 위해 이미지를 포함 시켰습니다.

샘플 커브

두 커브 (검정과 파랑)의 차이는 같지 않지만 보완적인 모양을 갖습니다.

배경 : 함수는 화합물의 원자 궤도의 투영 상태 밀도 (PDOS)입니다. s, p, d 궤도에 대한 상태가 있습니다. 재료에 sp, pd 또는 dd 하이브리드 화가 있는지 확인하고 싶습니다 (궤도 혼합). 내가 가진 유일한 데이터는 PDOS입니다. s 궤도의 PDOS (함수 f (x))가 p 궤도의 PDOS (함수 g (x))의 동일한 에너지 (x 값)에서와 같이 피크와 계곡을 가졌다면, 그 물질에 sp가 섞여있는 것입니다.


1
아마 그것을 mathoverflow.net로 가져 가십 니까?
행복감

1
디지털 오디오 사람들이 비슷한 문제를 겪고 있는지 궁금합니다.
Dan Pichelman

Euphoric에게 감사드립니다. mathoverflow.net에서도 질문 할 것입니다
laalee

@laalee Stack Exchange 네트워크의 둘 이상의 사이트에서 질문하지 마십시오. 또한 수학 오버플로는 연구 수준의 수학입니다. 수학 스택 교환은 비 연구 수준입니다. 원하는 경우 이것을 Math 또는 다른 곳으로 마이그레이션 할 수 있습니다.
세계 엔지니어

죄송합니다. mathoverflow에서 삭제하려고 시도했지만 방법을 찾을 수 없습니다. 삭제할 수 있으면 고맙겠습니다. 감사합니다
laalee

답변:


4

이것은 분석 화학, 물리학, 분광법 등에서 일반적이고 어려운 문제입니다. 사용되는 접근 방식은 간단한 RMSD 비교에서 매우 복잡한 방법에 이르기까지 다양합니다. 육안 검사로 작업을 수행하기가 쉽지 않은 경우 (인간이 기능 인식을 위해 정교하게 개발 된 경우) 계산이 어려울 수 있습니다.

한 가지 방법은 피크 또는 밸리 피쳐가있는 경우를 제외하고 함수의 값이 0이되도록 "기준선"을 제거하는 것입니다. 이 방법은 저차 다항식을 사용하거나 기준선의 모양과 모양에 대한보다 적절한 원칙 모델을 사용하여 곡선 맞춤을 사용하는 것이 가장 좋습니다. 피크가 매우 예리한 경우 단순히 기능을 부드럽게하고 원래 기능에서 부드럽게 된 기능을 뺄 수 있습니다.

기준선을 제거한 후에는 잔차를 정규화 및 생성하거나 RMSD (간단한 접근 방식)를 수행하거나 원하는 각 기능에 가우시안 (또는 적절한 모델)을 적용하여 피크 / 밸리 피처를 탐지 할 수 있습니다. 피크를 맞출 수 있으면 피크 위치와 반폭을 비교할 수 있습니다.

Python을 알고 있다면 SciPy를 살펴보십시오. 행운을 빕니다.


답변 주셔서 감사합니다. 그러나 기준을 찾는 방법에 대해서는 명확하지 않습니다. 각각의 경우에는 미리 예측할 수없는 다른 기능이 있습니다.
laalee

3

이것은 단지 "제 머리 위로 떨어져"있기 때문에 문제를 완전히 이해하지 못할 수도 있지만 함수에 RMSD ( root-mean-square distance )를 적용 할 수도 있습니다 . 피크와 밸리에 관심이 있다면 피크와 밸리 주변 영역에 적용하십시오 (즉, 함수의 미분 값이 0 인 일부 x +/- 일부 엡실론의 경우). 해당 범위의 RMSD가 0에 가까우면 일치하는 것입니다.


이것은 모양이 비슷하지만 0이 아닐 수있는 값 간의 차이를 고려합니다.
laalee

3

내가 원하지 않는 한, 찾고있는 정보는 함수의 "tableau des variant"에 의해 전달됩니다.이 이름의 영어 이름을 모르는 것이 유감입니다!

이 테이블은 미분 함수 f 와 연관되어 있으며 f ' 의 근을 찾아서이 0 사이의 각 간격에서 f' 의 부호를 결정하여 이를 구성합니다 .

따라서 f 'g' 의 0이 어느 정도 일치하고 이러한 함수의 부호가 일치하면 비슷한 프로파일을 갖습니다.

내가 프로그래밍하려고하는 첫 번째 일은 다음과 같습니다.

  1. 작은 ε를 선택하십시오
  2. 임의로 다수 그리는 N 포인트의 X [I]가 구간의 기능이 정의된다.

  3. 각 노드에 대해 차이 F [i] = f (x [i] + ε)-f (x [i]-ε)G [i] = g (x [i] + ε)-g (x [i]-ε) .

  4. 각 노드에서 F [i]G [i] 가 모두 ε² 보다 거나 같은 부호를 가지면 두 함수가 거의 같은 프로파일을 갖는다 고 결론을 내립니다.

작동합니까?


통찰력있는 답변에 감사드립니다. 현재 마감일을 맞추려고합니다. 하지만 가능한 빨리 알려 드리고 알려 드리겠습니다
laalee

1

무차별 대입 :이 값을 단계로 사용하여 0이 아닌 가장 작은 부동 소수점 값을 찾고 전체 도메인을 통과하여 값이 같은지 확인하십시오.

== 편집 ==

흠 ... "같은 모양"으로 g (x) = c * f (x)를 의미하는 경우이 솔루션을 수정해야합니다. 도메인의 각 요소에 대해 f (x) / g (x)를 계산하고 확인합니다. 결과는 각 점에서 동일합니다 (물론, g (x) == 0 인 경우 f (x) == 0인지 확인하지 않으려는 경우).

"같은 모양"이 "국소 최적 값과 굽힘 점이 동일 함"을 의미하는 경우 ... 음, f (x)와 g (x)에 대한 로컬 최적 값과 굽힘 점 (도메인 요소 집합으로)을 찾아서 확인하십시오. 세트는 같습니다.

세 번째 옵션 : f (x) = g (x) + c. 도메인의 각 요소가 동일한 차이 f (x) -g (x)를 갖는지 확인하십시오. 첫 번째 경우와 거의 동일하지만 나누기 대신 차이가 있습니다.

== 또 다른 편집 ==

음 ... 위의 편집에서 두 번째 접근 방식이 유용 할 수 있습니다. 또한 첫 번째 파생의 부호를 비교하는 것과 병합 할 수 있습니다 (기호가 아니라 df (x) = f (x)-f (x-step)로 계산). 두 기능이 전체 영역에서 미분의 부호가 같으면 최적화와 굽힘 점을 확인하십시오. 나는이 조건이 당신이 필요로하는 것을하기에 충분해야한다고 말하고 싶습니다.


답장을 보내 주셔서 감사합니다. 그러나 함수의 값은 같지 않지만 모양은 같습니다.
laalee

이 의견을 편집 답변으로 이동합니다. 확인 해봐.
Filip Malczak

답변 해 주셔서 감사합니다. 내 문제를 명확히하기 위해 이미지를 추가했습니다.
laalee

1

육안 검사없이 이러한 기능이 얼마나 잘 일치하는지

아마도 가장 간단한 방법은 Pearson의 상관 계수 를 계산하는 것입니다 . 즉, f (x)를 X로, g (x)를 Y로 사용하십시오. 효과적으로 "f (x)의 함수로 g (x)를 플로팅하고 직선을 얼마나 잘 형성하는지 확인하십시오".

상관 계수는 계산하기 쉽기 때문에 널리 사용되며 종종 손을 흔들기 만해도 정당화됩니다. 일부 용도에서는 초기 근사치 일 수 있지만 만병 통치약은 아닙니다.

실제 응용 프로그램에서 더 나은 결과를 얻으려면 데이터에서 발생하는 작업, 즉 데이터를 생성하는 프로세스를 이해해야합니다. 종종 일종의 배경이 있으며 흥미로운 기능이 배경 위에 있습니다. 전체 데이터를 블랙 박스에 던지면 대부분 배경을 비교하게 될 수 있습니다. 블랙 박스는 데이터의 어느 부분이 흥미로운 부분인지 모릅니다. 따라서 더 나은 결과를 얻으려면 배경을 어떻게 든 제거한 다음 남은 것을 비교하는 것이 좋습니다. 선이나 곡선 또는 평균을 맞추고 이들을 빼거나 나누거나, 저역, 대역 또는 고역 통과 필터링, 일부 비선형 기능을 통해 데이터를 공급합니다.

정답은 하나도 없습니다. 메소드를 시도 할 때마다 다른 결과를 얻을 수 있습니다. 그러나 일부 결과는 일부 다른 것보다 낫습니다. 이론적 추론은 올바른 방향으로 시작하는 데 도움이 될 수 있지만 매개 변수를 설정하고 방법을 미세 조정하는 방법은 궁극적으로 매개 변수를 시도하고 실제 결과를 비교하여 찾을 수 있습니다.

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