이산확률분포
# 이산확률분포 - 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
'프로그래밍 > R프로그래밍' 카테고리의 다른 글
R프로그래밍 - 사용자 정의 함수 (1) | 2023.11.22 |
---|---|
R프로그래밍 - 반복문 (1) | 2023.11.13 |
R프로그래밍 - 분포 관련 함수 (0) | 2023.11.08 |
R프로그래밍 - 이산확률분포, 연속확률분포 (0) | 2023.11.08 |
R 프로그래밍 - 정렬 및 시각화 (1) | 2023.11.01 |