2013-04-30 3 views
1

나는 기계 학습에 새로운 것이므로 제안 사항도 공개되어 있습니다. 나는 오늘 미니 맥스 리스크 라 불리는 것을 읽었고 이것이 내 경우에 가능한지 궁금해하고있었습니다.밀도 플롯에서 경계 찾기

두 개의 데이터 세트가 있는데 세로선 오른쪽의 왼쪽 커브 아래 영역이 오른쪽 커브 아래의 영역과 같도록하는 선 (또는 더 정확하게는 경계)을 찾는 데 관심이 있습니다. 수직선의 왼쪽. R에서이를 수행 할 수있는 방법이 있습니까? 즉, 수직선을 그릴 정확한 위치를 찾으십니까? https://gist.github.com/Legend/2f299c3b9ba94b9328b2

enter image description here

답변

3

다음, 각 응답의 예상 커널 밀도를 얻을 수있는 density 기능을 사용하는 가정 따르

나는 다음과 같은 그래프를 플롯하는 데 사용할 수있는 몇 가지 샘플 데이터를 넣어 이 link가 예상 커널 CDF를 얻기 위해, 다음 질문은 값 t을 찾을 될 것 같은 그 :

x1 <- subset(data, Type == 'Curve 1')$Value 
x2 <- subset(data, Type == 'Curve 2')$Value 

pdf1 <- density(x1) 
f1 <- approxfun(pdf1$x, pdf1$y, yleft = 0, yright = 0) 
cdf1 <- function(z){ 
    integrate(f1, -Inf, z)$value 
} 

pdf2 <- density(x2) 
f2 <- approxfun(pdf2$x, pdf2$y, yleft = 0, yright = 0) 
cdf2 <- function(z){ 
    integrate(f2, -Inf, z)$value 
} 

Target <- function(t){ 
    1 - cdf1(t) - cdf2(t) 
} 

uniroot(Target, range(c(x1, x2)))$root 

R > uniroot(Target, range(c(x1, x2)))$root 
[1] 0.06501821 
: 일반 루트 찾기 기능에 의해 해결 될 수 1 - cdf1(t) = cdf2(t),
+0

+1 감사합니다. 이것은 대단하다! 그냥 곡선 밑의 영역 (즉, 곡선과이 수직선 사이의 영역)을 찾는 방법이 있는지 궁금합니다. – Legend

+0

위의 함수'cd1f (a)'(왼쪽 곡선)에 있어야합니다. 여기서'a'는 잘라내 기 지점 (수직선)입니다. 그것은 대략 당신의 절단 점에 - 무한대에서 당신의 pdf (조밀도 기능)를 통합했다. – liuminzhao

+0

좋아요! 이것이 내가 원했던 것이다. 다시 한번 감사드립니다. – Legend

관련 문제