이산확률분포 

# 이산확률분포 - random number 활용
x = 0:n
y = dbinom(x, n, p)
plot(x,y,
     type = "h", xlim = c(0,n), lwd = 3, col = "tomato")

 

# 추출하는 난수의 개수 조정 
n = 25
p = 0.2
random.x10 = rbinom(10, n, p)

plot(table(random.x10), xlim = c(0,n),
     lwd = 3, col = "red")

mean(random.x10) ; var(random.x10)


random.x100 = rbinom(100, n, p)
plot(table(random.x100), xlim = c(0,n),
     lwd = 3, col = "red")
mean(random.x100) ; var(random.x100)

random.x1000 = rbinom(1000, n, p)
plot(table(random.x1000), xlim = c(0,n),
     lwd = 3, col = "red")
mean(random.x1000) ; var(random.x1000)

result = data.frame(n = c(10, 100, 1000),
                    mean = c(NA),
                    var = c(NA))

result[1,2:3] = c(mean(random.x10), var(random.x10))  
result[2,2:3] = c(mean(random.x100), var(random.x100))  
result[3,2:3] = c(mean(random.x1000), var(random.x1000))  

result

 

 

추출하는 개수가 높아질수록 이론적인 평균값에 가까워진다는 것을 확인할 수 있음.

 

 

 

연속확률분포

## 연속확률분포 ----
### 정규분포 ----
rnorm(10, mean = 0, sd = 1)
random.x = rnorm(100)
mean(random.x) ; var(random.x)

# random number로 hist/curve 그리기 
?hist
hist(random.x, probability = T, main = "Normal(0,1)")

 

# random number로 hist/curve 그리기 
hist(random.x, probability = T, main = "Normal(0,1)")
# probability = T에 대한 의미 ----
# probability = T >> 상대도수
# probability = F >> 빈도수

curve(dnorm(x), add = T, col ="tomato", lwd = 3)

 

 

t-분포

### t-분포 ----
set.seed(123)

random.x = rt(100, 2.5)
hist(random.x, probability = T, main = "t-dist")

result = data.frame(
    n = c(30, 50, 100, 2000),
    mean = c(NA),
    variance = c(NA)
)

x30 = rt(result[1,1], 2.5)
x50 = rt(result[2,1], 2.5)
x100 = rt(result[3,1], 2.5)
x2000 = rt(result[4,1], 2.5)

result

set.seed(123)

result[1,2:3] = c(mean(x30), var(x30))
result[2,2:3] = c(mean(x50), var(x50))
result[3,2:3] = c(mean(x100), var(x100))
result[4,2:3] = c(mean(x2000), var(x2000))

result = rbind(c(NA, 0, 2.5/(2.5-2)), result)

result

 

 

 

+ Recent posts