취소
다음에 대한 결과 표시 
표시  만  | 다음에 대한 검색 
다음을 의미합니까? 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
Get the free JMP Student Edition for qualified students and instructors at degree granting institutions.
언어 선택 변환 막대 숨기기
게시된 스레드 원본 보기

JMP를 사용하여 두 개의 다른 정규 분포 곡선에 공통되는 영역을 찾는 방법이 있습니까?

gupta_gyanesh_y
Level I

두 개의 다른 정규 분포 곡선의 공통 부분 아래 영역을 찾으려고 합니다. JMP를 사용하여 어떻게 할 수 있습니까? 그렇게 하는 간단한 방법이 있습니까?

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

5 응답 5
ms
Super User (Alumni) ms
Super User (Alumni)

Re: JMP를 사용하여 두 개의 서로 다른 정규분포 곡선의 공통 영역을 찾을 수 있는 방법이 있습니까?

JMP 12에는 두 곡선 중 최소값에 의해 제한되는 영역을 계산하는 데 사용할 수 있는 매우 효율적인 Integrate() 함수가 있습니다.

 

아래의 예는 별로 유용하지 않지만(아마도 배포 플랫폼에서 매개변수를 얻고 싶을 것입니다) 몇 가지 아이디어를 줄 수 있습니다...

 

 

Names Default To Here(1);
// Define curves and calculate overlap area
N1 = Expr(Normal Density(x, 1, 2));
N2 = Expr(Normal Density(x, 0, 1));
ovl = Integrate(Min(N1, N2), x, ., .);
Show(ovl);


//––––––––––
// Illustration
ym = xm = (-500 :: 500) / 100;
For(i = 1, i <= N Col(xm), i++,
    ym[i] = Min(Normal Density(xm[i], 1, 2), Normal Density(xm[i], 0, 1))
);
New Window("Overlap Coefficient",
    y = Graph Box(
        Y Scale(0, 1),
        X Scale(-5, 5),
        Y Function(N1, x);
        Y Function(N2, x);
        Text({0, 0.6}, "OVL = ", ovl);
        Fill Color(1);
        Polygon(xm, ym);
    )
);

 

 

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

Re: JMP를 사용하여 두 개의 서로 다른 정규분포 곡선의 공통 영역을 찾을 수 있는 방법이 있습니까?

@ms 이것을 공유해 주셔서 감사합니다!내 동료 덕분에 다음 웹 사이트에 제공된 예와 이 스크립트를 확인했습니다. https://stats.stackexchange.com/questions/103800/calculate-probability-area-under-the-overlapping-area-of-two-normal-distributi

 

각각 첫 번째 및 두 번째 분포에 대한 평균 및 시그마 매개변수:

"예를 들면 μ 1 = 5.28 , μ 2 = 8.45 , σ 1 = 0.91 , σ 2 = 1.36 μ1=5.28,μ2=8.45,σ1=0.91,σ2=1.36 , 이것은 다음을 산출합니다. = 6.70458... c=6.70458... , 녹색 부분의 면적은 0.158413"입니다.

 

.JSL 스크립트는 겹치는 부분의 영역에 대해 정확히 동일한 결과를 제공합니다! 

 

Names Default To Here(1);

// Define curves and calculate overlap area

mean1 =  5.28;
stdev1 = 0.91;

mean2  = 8.45; 
stdev2 = 1.36; 

N1 = Expr(Normal Density(x, mean1, stdev1));

N2 = Expr(Normal Density(x, mean2, stdev2));

ovl = Integrate(Min(N1, N2), x, ., .);

Show(ovl);

//––––––––––

// Illustration

ym = xm = (-1000 :: 1000) / 100;

For(i = 1, i <= N Col(xm), i++,

    ym[i] = Min(Normal Density(xm[i], mean1, stdev1), Normal Density(xm[i], mean2, stdev2))

);

New Window("Overlap Coefficient",

    y = Graph Box(

        Y Scale(0, 1),

        X Scale(-5, 12),

        Y Function(N1, x);

        Y Function(N2, x);

        Text({0, 0.6}, "OVL% = ", ovl*100);

        Fill Color(1);

        Polygon(xm, ym);

    )

);

undefined

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

Craige_Hales
Super User

Re: JMP를 사용하여 두 개의 서로 다른 정규분포 곡선의 공통 영역을 찾을 수 있는 방법이 있습니까?

JMP의 그래프(감사합니다. @ms ) . 분석 솔루션도 있다는 것을 알게 되어 기쁩니다.

undefinedoverlap

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

alxh
Level II

Re: JMP를 사용하여 두 개의 서로 다른 정규분포 곡선의 공통 영역을 찾을 수 있는 방법이 있습니까?

누구든지 이 스크립트를 해결하는 데 도움을 줄 수 있습니까? 내 JSL은 실제 데이터 세트를 사용할 때 무엇이 잘못되고 차트가 잘못 조정되고 OVL을 표시/계산하지 않을 때 무엇이 잘못되는지 이해하기에 충분하지 않습니다.

예제 데이터:

평균1 = 46.17표준1 = 16.27
평균2 = 82.08표준2 = 17.68

 

관찰된 오류

  • 위의 데이터를 사용하면 OVL이 표시/계산되지 않습니다(어떤 것이 사실인지 잘 모르겠습니다)
  • 축이 잘못된 배율로 설정되었습니다(자동 기능이 도움이 됨).
  • 코드에서 또는 손 도구를 사용하여 배율을 조정하면 PDF 곡선이 표시되지만 음영 영역은 표시되지 않습니다.

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

mjoner
Level VI

Re: JMP를 사용하여 두 개의 서로 다른 정규분포 곡선의 공통 영역을 찾을 수 있는 방법이 있습니까?

안녕,

 

그래프 범위는 두 자릿수가 아닌 한 자릿수로 하드 코딩된 수단이었으므로 플롯은 말하자면 "오프 더 페이지"였습니다. 곡선이 나타나도록 그래프에 적절한 축을 계산하는 코드를 추가했습니다.

 

나는 또한 여기에 사용된 Integrate() 함수에 문제가 있었고 대신 다각형 아래의 Riemann 합계로 해결했습니다. 이렇게 하면 상당히 정확할 것입니다.

 

Names Default to Here( 1 );

// Define curves and calculate overlap area

mean1 =  46.17;
stdev1 = 16.27;

mean2  = 82.08; 
stdev2 = 17.68; 
N1 = Expr(Normal Density(x, mean1, stdev1));N2 = Expr(Normal Density(x, mean2, stdev2));

//––––––––––

// calculate graph ranges

rangemin = Minimum(mean1-6*stdev1,mean2-6*stdev2);
rangemax = Maximum(mean1+6*stdev1,mean2+6*stdev2);

// Illustration

ym = zm = 1 :: 2000;  // 2000 has to do with how detailed the plot should be
multiplier = (rangemax-rangemin)/(Maximum(ym)-Minimum(ym));
xm = (ym-Minimum(ym))*multiplier+rangemin;

ovl = 0;

For(i = 1, i <= N Col(xm), i++,

    ym[i] = Minimum(Normal Density(xm[i], mean1, stdev1), Normal Density(xm[i], mean2, stdev2));
    zm[i] = Maximum(Normal Density(xm[i], mean1, stdev1), Normal Density(xm[i], mean2, stdev2));
    If(i>1, ovl += 0.5*(ym[i-1]+ym[i])*(xm[i]-xm[i-1]));

);

New Window("Overlap Coefficient",

    y = Graph Box(

        Y Scale(0, 1.2*Maximum(zm)),

        X Scale(rangemin, rangemax),

        Y Function(N1, x);

        Y Function(N2, x);

        Text({Mean(xm), 0.6*Maximum(zm)}, "OVL% = ", ovl*100);

        Fill Color(1);

        Polygon(xm, ym);

    )

);

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.