Contents

[-]
1 평균이 85이고, 표준편차가 5인 정규분포에서, 상위 5%이내에 들 점수의 경계값은?
2 국어와 수학 과목 중 어떤 과목의 성적이 더 우수한가?


1 평균이 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점 정도 맞으면 된다. 
*/

2 국어와 수학 과목 중 어떤 과목의 성적이 더 우수한가? #

/*
시나리오

철수는 수학점수를 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);
*/
Retrieved from http://test.databaser.net/moniwiki/wiki.php/정규분포로확률구하기
last modified 2018-04-13 23:12:53