estimated_standard_deviation
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
estimated_standard_deviation [2025/09/05 21:44] – [output] hkimscil | estimated_standard_deviation [2025/09/30 15:19] (current) – [직관적 이해] hkimscil | ||
---|---|---|---|
Line 25: | Line 25: | ||
이를 그림으로도 설명할 수 있다. 아래에서 녹색의 세로선은 모집단의 평균값이고, | 이를 그림으로도 설명할 수 있다. 아래에서 녹색의 세로선은 모집단의 평균값이고, | ||
- | {{:pasted:20200412-002825.png?500}} | + | |
+ | < | ||
+ | > m.p1 <- 12 | ||
+ | > s1 <- c(6, 9, 15) | ||
+ | > hist(s1) | ||
+ | > s1 | ||
+ | [1] 6 9 15 | ||
+ | > abline(v=s1, | ||
+ | > abline(v=10, | ||
+ | > abline(v=12, | ||
+ | > | ||
+ | > m.s1 <- mean(s1) | ||
+ | > m.p1 <- 12 | ||
+ | > abs(s1-m.s1) | ||
+ | [1] 4 1 5 | ||
+ | > abs(s1-m.p1) | ||
+ | [1] 6 3 3 | ||
+ | > | ||
+ | </ | ||
+ | {{:pasted:20250930-150655.png?800}} | ||
+ | 붉은 선 s1 평균 (10) | ||
+ | 초록 선 모집단 평균 12 (혹은 그냥 12 가치라고 해도 됨) | ||
+ | 세개 검은 선은 각각 6, 9, 15 | ||
+ | |||
+ | 붉은 선에서 세개 검은 선까지의 길이는 4, 1, 5가 되고 이를 더하면 10 | ||
+ | 초록 선에서 세개 검은 선까지의 길이는 6, 3, 3이 되고 이를 더하면 12 | ||
====== 실험적, R에서 시뮬레이션으로 이해 ====== | ====== 실험적, R에서 시뮬레이션으로 이해 ====== | ||
Line 138: | Line 164: | ||
</ | </ | ||
<WRAP half column> | <WRAP half column> | ||
- | SS = sum(x-mean(x))^2 인데, mean(x) 즉, x집합의 평균을 예측하는데 (빼는데) 사용하면 SS값이 최소값이 된다고 하였다. 이것을 R에서 simulation으로 알아보기 위해서 mean(x) 대신에 다른 숫자들을 넣어보려고 한다. 이를 v라고 하면 sum(x-v)^2이라는 SS값들을 구해서 비교하려는 것이다. 대입할 숫자들은 (v) mean(x) +- 3 sd(x) 를 범위로 하고, 그 범위의 시작 숫자에서 (시작은 mean(x)-3sd(x)가 된다) 0.1씩 증가시키면서 대입하고, | + | SS = sum(x-mean(x))^2 인데, mean(x)을 즉, x집합의 평균을, x 원소값을 예측하는데 (빼는데) 사용하면 SS값이 최소값이 된다고 하였다. 이것을 R에서 simulation으로 알아보기 위해서 mean(x) 대신에 다른 숫자들을 넣어보려고 한다. 이를 v라고 하면 sum(x-v)^2이라는 SS값들을 구해서 비교하려는 것이다. 대입할 숫자들은 (v) mean(x) +- 3 sd(x) 를 범위로 하고, 그 범위의 시작 숫자에서 (시작은 mean(x)-3sd(x)가 된다) 0.1씩 증가시키면서 대입하고, |
단, 이 코드에서 SS대신 MS값을 (SS값을 n으로 나눈 값, 즉, variance값 혹은 Mean Square값) 구해서 보려고 하는데 이것은 같은 의미를 갖는다. 즉, 모든 SS값들에 n을 공토으로 나누어준 값을 저장하고 비교하려는 것이다. | 단, 이 코드에서 SS대신 MS값을 (SS값을 n으로 나눈 값, 즉, variance값 혹은 Mean Square값) 구해서 보려고 하는데 이것은 같은 의미를 갖는다. 즉, 모든 SS값들에 n을 공토으로 나누어준 값을 저장하고 비교하려는 것이다. | ||
Line 465: | Line 491: | ||
tail(vs) | tail(vs) | ||
- | plot(msrs) | + | plot(vs, msrs, type=' |
- | plot(vs) | + | |
# scaled | # scaled | ||
Line 477: | Line 502: | ||
v.orig <- (v*sd(x))+mean(x) | v.orig <- (v*sd(x))+mean(x) | ||
v.orig | v.orig | ||
+ | |||
+ | plot(vs.orig, | ||
</ | </ | ||
Line 528: | Line 555: | ||
* gradient function과 | * gradient function과 | ||
* learning_rate 값이다. | * learning_rate 값이다. | ||
- | gradient 펑션은 dy/dv 의 연쇄 미분식인 ([[:chain rules]]) -2(x-v) / n = -2 mean(res) 값을 구하는 것이다. 이렇게 구한 값에 learning_rate값을 곱한후, 이것을 먼저 사용한 v값에서 (빨간색 지점) 빼 주어 다음 v값으로 (녹색지점) 사용하려고 한다. 이 녹색지점에서의 v값을 사용했을 때의 gradient값을 구한 후 다시 이값에 learning_rate인 0.1을 곱하여 그 다음 v값을 | + | gradient 펑션은 dy/dv 의 연쇄 미분식인 ([[:chain rules]]) -2(x-v) / n = -2 mean(res) 값을 구하는 것이다. 이렇게 구한 값에 learning_rate값을 곱한후, 이것을 먼저 사용한 v값에서 (빨간색 지점) 빼 주어 다음 v값으로 (녹색지점) 사용하려고 한다. 이 녹색지점에서의 v값을 사용했을 때의 gradient값을 구한 후 다시 이값에 learning_rate인 0.1을 곱하여 그다음 |
{{: | {{: | ||
Line 610: | Line 637: | ||
[1] 6.415945e-08 5.132756e-08 4.106205e-08 3.284964e-08 2.627971e-08 2.102377e-08 | [1] 6.415945e-08 5.132756e-08 4.106205e-08 3.284964e-08 2.627971e-08 2.102377e-08 | ||
> | > | ||
- | > plot(msrs) | + | > plot(vs, msrs) |
- | > plot(vs) | + | > |
> | > | ||
</ | </ | ||
Line 629: | Line 656: | ||
* v 값으로 x집합의 평균값을 사용하는 것이 최소 msr값이 된다는 것이 맞다면 | * v 값으로 x집합의 평균값을 사용하는 것이 최소 msr값이 된다는 것이 맞다면 | ||
* v 값은 0이 될것이다 (왜냐하면 x집합을 zx로 바꿨기 때문에, 즉 평균이 0이고 sd값이 1일 집합으로 바꿨기 때문에) | * v 값은 0이 될것이다 (왜냐하면 x집합을 zx로 바꿨기 때문에, 즉 평균이 0이고 sd값이 1일 집합으로 바꿨기 때문에) | ||
+ | * 아래 그래프의 각 포인트는 v값의 이동을 나타내는데 grad*learning_rate의 영향으로 점진적으로 하가하여 최소값으로 도달한다. | ||
+ | |||
+ | {{: | ||
</ | </ | ||
</ | </ | ||
Line 666: | Line 696: | ||
> v.orig | > v.orig | ||
[1] 50 | [1] 50 | ||
+ | > | ||
+ | > plot(vs.orig, | ||
> | > | ||
> | > | ||
Line 673: | Line 705: | ||
<WRAP half column> | <WRAP half column> | ||
comment | comment | ||
+ | {{: | ||
+ | |||
+ | 만약에 처음에 구한 랜덤 v값이 평균의 오른 쪽에있었더라면, | ||
+ | {{: | ||
</ | </ | ||
</ | </ | ||
Line 796: | Line 832: | ||
\end{eqnarray*} | \end{eqnarray*} | ||
- | 즉, 원래 $\sigma^2$ 값보다 조금 작은 값을 갖게 될 것이다 (이를 biased result라고 한다). | + | 즉, 원래 $\sigma^2$ 값보다 조금 작은 값을 갖게 될 것이다 (이를 biased result라고 한다). 따라서 샘플을 취한 후에 모집단의 분산을 추정할 때에는 n 대신에 n-1을 사용하는 것이 맞다. 그렇다면 모집단의 분산을 구할 때는 n으로 (N으로) 나누어 주면 된다고 생각된다. 그러나 일반적으로 모집단의 분산을 구할 때에도 N-1로 나누어 구하게 된다. 이유는 모집단의 경우에 N이 충분히 큰 경우인데 이 때에는 N으로 나누어 주나, N-1로 나누어주나 큰 차이가 없기 때문이다. 따라서, R에서 분산을 구하는 var(x)에는 x의 성격에 상관없이 SS를 n-1로 나누어 분산을 구하게 된다. |
estimated_standard_deviation.1757076259.txt.gz · Last modified: by hkimscil