갑작스런 변화를 특징 짓는 방법?


13

이 질문은 너무 기본적 일 수 있습니다. 데이터의 일시적인 추세를 위해 "급격한"변경이 발생하는 지점을 찾고 싶습니다. 예를 들어 아래에 표시된 첫 번째 그림에서 통계 방법을 사용하여 변경 지점을 찾고 싶습니다. 그리고 변경 지점이 분명하지 않은 다른 데이터 (예 : 두 번째 그림)에 이러한 방법을 적용하고 싶습니다. 그러한 목적을위한 일반적인 방법이 있습니까?

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


3
"전환점"이라는 용어는 갑작스런 수준의 변화 (위 또는 아래)에 적용되지 않는다는 특정 의미를 갖습니다. 당신은 또한 '변경점'이라는 문구를 사용하는데 아마도 그것이 더 나은 선택이라고 생각합니다. 이것이 '너무 기본적'이라고 생각하지 마십시오. 기본 질문조차 사과 할 필요없이 환영받으며,이 질문은 원격 기본이 아닙니다.
Glen_b-복지 주 모니카

감사. 질문에서 '전환 지점'을 '변경 지점'으로 변경했습니다.
user2230101

답변:


11

시계열 데이터의 관측치가 직전의 관측치와 상관 관계가있는 경우 Chen and Liu (1993) 의 논문 이 관심을 가질 수 있습니다. 자동 회귀 이동 평균 시계열 모델의 프레임 워크에서 레벨 이동 및 임시 변경을 감지하는 방법을 설명합니다.[1]

[1] : Chen, C. 및 Liu, LM. (1993),
"시계열에서 모형 모수와 특이 치 효과의 결합 추정"
, 미국 통계 협회 저널 , 88 : 421, 284-297


+1이 논문에 대해 충분히 기억하려고 노력했지만 실패했습니다. 좋은 참조입니다.
Glen_b-복지국 Monica

6

통계에서이 문제는 (일 변량) 임시 이벤트 감지라고합니다. 가장 간단한 아이디어는 이동 평균 및 표준 편차를 사용하는 것입니다. 3 표준 편차 (엄지 규칙)가 "초과"인 판독 값은 "이벤트"로 간주됩니다. 물론 HMM 또는 회귀를 사용하는 고급 모델이 있습니다. 다음은 해당 분야의 개요입니다 .


5
이것은 "일 변량 임시 이벤트 감지"문구를 포함하여 전체 웹에서 공개적으로 액세스 할 수 있는 유일한 게시물입니다! 이 용어의 출처는 무엇입니까?
whuber

혼란스러워서 죄송합니다. 이벤트 감지는보다 일반적인 용어이며 임시는 때때로 개별적으로 사용됩니다. 접근법은 일반적으로 다변량이므로 일 변량은 일반적으로 사용되지 않지만 그의 특별한 경우입니다.
user1669710

1
귀하의 의견을 반영하여 답변을 편집했습니다 @whuber
user1669710

감사합니다. 이것이 내가 찾고있는 것입니다. 이동 평균이 내 문제를 해결할 수없는 것 같습니다. 더 복잡한 모델을 봐야합니다.
user2230101

이 일시적인 이벤트 감지에 대해 자세히 알고 싶습니다. 게시 한 슬라이드는 훌륭하지만 필드를 좀 더 공식적으로 설명하는 검토 용지에 대한 링크가 있는지 궁금합니다.
aaragon

1

제이나는={0엑스<엑스나는1엑스엑스나는
엑스1<엑스2<<엑스미디엄제이나는제이아르 자형나는제이이자형이자형미디엄이자형아르 자형엑스나는

제이1제이2엑스1엑스2


1
PS-@ user1669710과 동시에 답변을 게시했습니다. 나는 그것이 더 나은 연구이기 때문에 그 투표에 투표했습니다. 그러나 이것이 작동하고 구현하기 쉬운 대안이므로 여기에 남겨두고 있습니다.
Russ Lenth

1
단계적 회귀를 사용하고 많은 후보 변수를 사용하기 때문에이 절차는 의심스러워 보입니다. 어디에서 연구되었으며 어떤 속성이 있습니까? 다른 변경점 방법 과 비교하면 어떻 습니까?
whuber

@ whuber, 내 요점은 정확히입니다. 그래서 나는 다른 답변에 투표했습니다. 매우 세분화 된 변경점 값 집합이있는 경우 너무 호의적이지 않습니다. 그리고 그렇지 않으면 그것을 호의적으로 비교하지 않을 수도 있습니다. 나는 그것을 임시 방법으로 내놓고 있는데, 나는 그것을 그렇게 제시했다고 생각합니다. 그러나 나는 이와 같은 방법이 비선형 방법의 시작 값을 얻는 좋은 방법이 될 것이라고 생각합니다.
Russ Lenth

아이디어 는 내가 찾은보다 효과적인 변경 방법 중 일부를 기반으로하지만, 특히 단계적 회귀를 사용하면이 방법이 다른 방법을 개선하기 위해 합리적인 시작점을 생성하지 못할 수도 있습니다 (확실하지는 않지만). 그렇기 때문에 그것이 연구되었는지 궁금합니다.
whuber

데이터를 가장 잘 설명하는 두 개의 점프를 찾을 수 있기 때문에 실제로 지정된 수의 점프 (예 : 2)가있는 한 모든 서브 세트 선택에 문제가 거의 없을 것이라고 생각합니다. 다른 선택 방법은 다른 상황과 마찬가지로 문제가 될 수 있습니다. 최선의 답을 얻는 것과 좋은 대답, 빠른 대답을 얻는 것이 얼마나 중요한지에 달려 있다고 생각합니다. 모든 문제가 같은 것은 아니며 모든 고객이 아닙니다. 세상에서 가장 좋은 대답은 설명 할 수 없다면 완전히 실패한 것입니다.
Russ Lenth

1

일련의 시퀀스 또는 시퀀스를 이상적인 상수 값을 가진 철자로 나누는 데 관련된 문제가 있습니다. 숫자 데이터를 자연스럽게 형성되는 "브래킷"으로 그룹화하는 방법을 참조하십시오 . (예 : 소득)

질문이 어떤 방향이나 모든 방향으로 느리게 표류하는 주문을 제외하지는 않지만 급격한 변경이없는 것과 같은 문제는 아닙니다.

더 직접적인 대답은 우리가 큰 점프를 찾고 있다고 말하는 것이므로 실제 문제는 점프를 정의하는 것입니다. 첫 번째 아이디어는 이웃 값 사이의 첫 번째 차이점을 보는 것입니다. 점프가 노이즈의 차이와 구별 될 수없는 것처럼, 급격히 돌파 할 수없는 것처럼 노이즈를 먼저 제거하여 노이즈를 세분화해야한다는 것은 분명하지 않습니다. 반면에, 질문자는 급격한 변화뿐만 아니라 단계적 변화를 포함하기 위해 급격한 변화를 원하기 때문에 고정 길이 창 내의 분산 또는 범위와 같은 일부 기준이 요구되는 것 같습니다.


1

찾고있는 통계 영역은 변경점 분석입니다. 여기 에 해당 지역에 대한 개요를 제공하고 소프트웨어 페이지 가있는 웹 사이트가 있습니다 .

당신이 R사용자라면 changepoint평균의 변화에 ​​대한 strucchange패키지와 회귀의 변화에 ​​대한 패키지를 권장합니다 . Bayesian이되고 싶다면 bcp패키지도 좋습니다.

일반적으로 찾고자하는 변경의 강도를 나타내는 임계 값을 선택해야합니다. 물론 특정 상황에서 사람들이 옹호하는 임계 값 선택이 있으며 점근 적 신뢰 수준이나 부트 스트랩을 사용하여 자신감을 얻을 수도 있습니다.


1
OP는 두 단어의 예를 찾았습니다. 하나는 걸음 걸이라고하고 다른 하나는 램프라고 할 것입니다. 여기 내 답변도 참조하십시오. 이러한 방법은 램프에 어떻게 대처합니까? 단계적 변화에 대한 암묵적이거나 명확한 모델이 있습니까?
Nick Cox

질문 Nick에 감사드립니다. 일반적으로 램프의 길이에 따라 다릅니다. 램프가 짧은 램프 인 경우 1 개의 변화로 취급되며, 램프가 더 길면 변경점 방법은 램프의 시작 부분에 1 개, 끝에 1 개의 변경 2 개를 식별합니다. 분명히 이것은 당신이 가정하는 기본 모델에 달려 있습니다.
adunaic

1

이 추론 문제에는 변경점, 전환점, 중단 점, 끊어진 선 회귀, 끊어진 스틱 회귀, 쌍 선형 회귀, 부분 선형 회귀, 국소 선형 회귀, 세그먼트 회귀 및 불연속 모델을 포함한 많은 이름이 있습니다.

다음은 장단점과 실제 예제 가 포함 된 변경점 패키지에 대한 개요입니다 . 사전에 변경점 수를 알고 있으면 mcp패키지를 확인하십시오 . 먼저 데이터를 시뮬레이션 해 봅시다 :

df = data.frame(x = seq(1, 12, by = 0.1))
df$y = c(rnorm(21, 0, 5), rnorm(80, 180, 5), rnorm(10, 20, 5))

첫 번째 문제의 경우 세 가지 인터셉트 전용 세그먼트입니다.

model = list(
  y ~ 1,  # Intercept
  ~ 1,  # etc...
  ~ 1
)
library(mcp)
fit = mcp(model, df, par_x = "x")

결과 적합도를 그릴 수 있습니다.

plot(fit)

여기에 이미지 설명을 입력하십시오

여기서 변경점은 매우 잘 정의되어 있습니다 (좁음). 유추 된 위치 ( cp_1cp_2) 를 확인하기위한 적합성을 요약 해 보겠습니다 .

summary(fit)

Family: gaussian(link = 'identity')
Iterations: 9000 from 3 chains.
Segments:
  1: y ~ 1
  2: y ~ 1 ~ 1
  3: y ~ 1 ~ 1

Population-level parameters:
    name   mean lower upper Rhat n.eff
    cp_1   3.05   3.0   3.1    1  6445
    cp_2  11.05  11.0  11.1    1  6401
   int_1   0.14  -1.9   2.1    1  5979
   int_2 179.86 178.8 180.9    1  6659
   int_3  22.76  19.8  25.5    1  5906
 sigma_1   4.68   4.1   5.3    1  5282

mcpN 차 자동 회귀 모델링 (시계열에 유용) 등을 포함하여 훨씬 더 복잡한 모델을 수행 할 수 있습니다 . 면책 조항 :의 개발자입니다 mcp.

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