User Tools

Site Tools


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki