estimated_standard_deviation:rscript01
rm(list=ls())
rnorm2 <- function(n,mean,sd){
mean+sd*scale(rnorm(n))
}
# set.seed(191)
nx <- 1000
mx <- 50
sdx <- mx * 0.1
sdx # 5
x <- rnorm2(nx, mx, sdx)
# x <- rnorm2(1000, 50, 5) 와 동일
mean(x)
sd(x)
length(x)
hist(x)
x.span <- seq(from = mean(x)-3*sd(x),
to = mean(x)+3*sd(x),
by = .1)
x.span
residuals <- function(x, v) {
return(x - v)
}
# sum of square residual 값을
# 구하는 펑션
ssr <- function(x, v) {
residuals <- (x - v)
return(sum(residuals^2))
}
# mean square residual 값을
# 구하는 펑션 (mean square
# residual = variance)
msr <- function(x, v) {
residuals <- (x - v)
return((mean(residuals^2)))
}
ssrs <- c() # sum of square residuals
msrs <- c() # mean square residuals = variance
vs <- c() # the value of v in (x - v)
# x.span의 값들을 v값으로 삼아 sum(x-x.span)^2 처럼 구하면
# SS값을 구한 것이 된다. 우리가 배운 SS값은 x.span의 값으로
# 샘플의 평균을 사용했을 때의 residual 값이다. x.span은
# 샘플의 평균을 중심으로 여러가지 값을 사용하는 것을 가정한다.
for (i in x.span) {
res.x <- residuals(x,i)
msr.x <- msr(x,i)
msrs <- append(msrs, msr.x)
vs <- append(vs, i)
}
# 아래 plot은 SS값들이나 (두번째는) MS값들을 v값이 변화함에
# 따라서 (x.span의 범위에 따라서 변화) 어떻게 변화하는지
# 구한 것
plot(msrs)
# v값이 x.span에 따라서 변화하여 대입되었을 때의
# MS값들을 (msr 펑션으로 구한 mean square값)
# 모아 놓은 값이 msrs
msrs
# 아래는 위에서 계산한 msr 값들을 저장한 msrs값들 중에서 최소값이
# 되는 것을 찾은 것. 우리는 이것이 샘플의 평균임을 안다.
min(msrs)
# 최소값일 때의 위치 (msrs에서 몇번째인지)
min.pos.msrs <- which(msrs == min(msrs))
min.pos.msrs
# msr 최소값이 구해졌을 때 사용된 v값
vs[min.pos.msrs]
estimated_standard_deviation/rscript01.txt · Last modified: by hkimscil
