[통계] 정규분포관련 질문입니다. 수학관련 고수님들이나 c ++관

gyxor의 이미지

정규분포 공식에 값을 대입해서 정규분포표를 보지 않고 값을 구해보고자 하는 내용입니다.


http://my.netian.com/~saskim95/image/07no01/no01.gif

정규분포 공식입니다.

c++ 라이브러리 함수를 이용한 정규분포값 계산입니다.
z값은 0 - 3.59 까지 값을 계산했습니다.
더 자세하게 분할할 수 있었지만 컴퓨터 속도의 한계에 따라
소주점 6자리 까지만 분할해서 값을 구했습니다.

*/
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;

# define M_PIl 3.1415926535897932384626433832795029 /* pi */

int main()
{
double pi_2 = 2 * M_PIl; //파이 * 2
double sum=0; //자연상수 e 부분 합
double e_upon=0; //자연상수 e의 지수부분
double i=0; //증분

cout.setf(ios_base::fixed,ios_base::showpos); //고정 소수 표기

for(int k=0;k<=3590000;k++)
{
e_upon = - i*i / 2; //e의 지수부분 계산
sum += ( exp ( e_upon ) / sqrt( pi_2 )); //정규분포 값 계산
i += 0.000001; //증분 +0.000001

}
cout << setprecision(6) << sum / 1000000; //소수 6자리 까지 출력
return 0;
}

위 내용은 정규분포값을 프로그램으로 일일이 계산해본것입니다.
z값을...
0.000001
0.000002
0.000003
..
..
..
3.590000 까지 대입해서 몽땅더하는 방식으로

이런식으로 정규분포 값을 계산했습니다.
정규분포====================================================
2파이의 루트 곱하기 시그마 분지 1 에
곱하기 e의 -(2분의 z제곱승)
============================================================
말로쓰자면 정규분포공식이 이런데요
표준편차 시그마 값은 1로 생각하고 아예넣지 않았습니다.
나머지는 계산했구요..

통계학책이나 정석 책 뒤의 정규분포표가 나와있는데요
표에 나온 값들은 전부 누적값이구요
각각의 값들은 매우작은데요
각각의 값들을 구해서 더하는......
계산을 해보고자.. 하는것입니다.

그 공식에 대한 이해가 부족해서 질문을 드립니다.

표에서보면은 z 값이 -3.5 에서 +3.5 까지의 범위구요
여기서 z는 (x-뮤) / 시그마(표준편차)
인데요

정규분포를 적분한값은 1이 되는데요..
대칭구조라서
0에서 3.5 의 범위만 구해서 2배하면 되니까..
0에서 3.5값만을 생각합니다.

z값을 세분화 해서 대입할수록 적확한 값이 나옵니다
그래서 단위를
0
1
2
3
3.5
가 아닌
0.000001
0.000002
...
...
3.500000

0.000001 로 세분화해서 해서 계산했는데요

정규분포 그래프에서 막대기 하나의 밑변크기입니다.

여기서 결과가 499835 가 나오는데요
원하는 결과는 0.499835 입니다.
답이 제대로 원하는데로 나오게 하려면.......................................
1000000을 나눠줘야 하는데요 그렇다면 표준편차 값이 1000000
이라는 이야기 가 되는데요...
왜 그렇게 되는지가 궁금합니다.

정말 중요한 내용이라서요.. 수학관련 부분이 더 많은것도 같습니다..

답변을 부탁드립니다.

Kari의 이미지

[XXXXX@XXXX test_codz]$ ./a.out
0.499835
[XXXXX@XXXX test_codz]$

위에 Gaussian (normal)분포에 대한 이해도 맞는거 같은데요 ^^

참고로 제 컴파일러에선 출력형태를 지정해 주는 ios_base
클래스 정의가 링크되지 않아 setf 라인을 빼 주었습니다.
어차피 +/- 출력하는거 하고, 자릿수 고정하는 거니까 상관없겠죠?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.