#title 정규분포로 확률구하기 [[TableOfContents]] ==== 평균이 85이고, 표준편차가 5인 정규분포에서, 상위 5%이내에 들 점수의 경계값은? ==== {{{ DECLARE @mu float -- 평균 , @sigma float -- 표준편차 , @min float -- 최소값 , @max float -- 최대값 , @munit float -- 단위(성적의 경우 최소단위는 1점이다.) , @target_rate float SET @mu = 85; SET @sigma = 5; SET @min = 0; SET @max = 100; SET @munit = 1 SET @target_rate = 5; --SELECT (1/(SQRT(2*PI())*@sigma)) * EXP(-(1/(2*POWER(@sigma,2))) * POWER((@x-@mu), 2)) 확률밀도함수 WITH Dumy(x) AS ( SELECT @min x UNION ALL SELECT x + @munit FROM Dumy WHERE x + @munit <= @max ) --누적정규분포 역으로 찾아보자.. SELECT MAX(CASE WHEN Val <= (100 - @target_rate) * 0.01 THEN x END) MinVal , MIN(CASE WHEN Val >= (100 - @target_rate) * 0.01 THEN x END) MaxVal FROM ( SELECT B.x , SUM((1/(SQRT(2*PI())*@sigma)) * EXP(-(1/(2*POWER(@sigma,2))) * POWER((A.x-@mu), 2))) Val FROM Dumy A INNER JOIN Dumy B ON A.x <= B.x GROUP BY B.x ) T OPTION (MAXRECURSION 0); /* 결과 MinVal MaxVal 92 93 --92~93점 정도 맞으면 된다. */ }}} ==== 국어와 수학 과목 중 어떤 과목의 성적이 더 우수한가? ==== {{{ /* 시나리오 철수는 수학점수를 90점 받았고, 수학과목의 전체 평균은 85점이다. 표준편차는 5이다. 국어는 85점을 받았으며, 국어과목의 전체 평균은 70점이다. 국어과목의 표준편차는 10이다. 어떤 과목의 성적이 더 우수한가? */ WITH Dumy(x) AS ( SELECT 0 x UNION ALL SELECT x + 1 FROM Dumy WHERE x + 1 <= 100.0 ) SELECT 과목 , (1 - SUM((1/(SQRT(2*PI())*표준편차)) * EXP(-(1/(2*POWER(표준편차,2))) * POWER((x-평균), 2)))) * 100 [상위%] FROM ( SELECT '수학' 과목, 90.0 점수, 85.0 평균, 5.0 표준편차 UNION ALL SELECT '국어' 과목, 85.0 점수, 70.0 평균, 10.0 표준편차) A CROSS JOIN Dumy WHERE x <= 점수 GROUP BY 과목 OPTION (MAXRECURSION 0); /* 결과 과목 상위% ------- ---------------- 국어 6.04932387024276 수학 13.5265829069615 국어는 상위 6.04% 이고, 수학은 13.52%이므로 국어의 성적이 더 우수하다. */ /* DECLARE @x float -- 변량 , @mu float -- 평균 , @sigma float -- 표준편차 SET @x = 90 SET @mu = 85 SET @sigma = 5; --SELECT (1/(SQRT(2*PI())*@sigma)) * EXP(-(1/(2*POWER(@sigma,2))) * POWER((@x-@mu), 2)) 확률밀도함수 WITH Dumy(x) AS ( SELECT 0 x UNION ALL SELECT x + 1 FROM Dumy WHERE x + 1 <= 90.0 ) --누적정규분포 SELECT SUM((1/(SQRT(2*PI())*@sigma)) * EXP(-(1/(2*POWER(@sigma,2))) * POWER((x-@mu), 2))) FROM Dumy OPTION (MAXRECURSION 0); */ }}}