install.packages('gtools')
library(gtools)
data <- c('1', '2', '3')
permutations(3, 2, data)
combinations(3, 2, data)
permutations(3, 2, data, repeats.allowed = T)
combinations(3, 2, data, repeats.allowed = T)
Bino <- dbinom(0:20, size=20, prob=0.5) # prop : 확률
Bino
Bino <- dbinom(10, size=20, prob=0.5)
Bino
# 0.3 시험관 성공(1번하면 0.3, 2번했을때 성공하면 0.21 ....)
a <- dgeom(1:10, 0.3) # 0.147
a
# B의 확률 분포계산
Bino <- dbinom(0:8, size=8, prob=0.5)
Bino
# 유의수준 확인 5%
psum <- 0.03125 + 0.00390625
psum
library(ggplot2)
df <- data.frame(x=0:8, prob=dbinom(0:8, size=8, prob=0.5))
ggplot(data = df, aes(x=x, y=prob)) +
geom_line()
# 균일한 난수 - runif()
runif(10)
# 0~100 사이 50개
runif(50, min=0, max=100)
# 정규분포 N(mean, sd^2)
# 정규분포를 따르는 난수 - rnorm()
# 평균 100, 표준편차 15인 난수 10개
rnorm(10, mean=100, sd=15)
# 이항분포 난수 - rbinom()
# 50% 확률로 성공 1 나오는 난수 100개
rbinom(100, size=1, prob=0.5)
# 1/6 확률로 성공 1 나오는 난수 100
rbinom(100, size = 1, prob = 1/6)
# 성공 / 실패 문자로 추출
a <- rbinom(100, size = 1, prob = 1/6)
a[a==1] <- '성공'
a[a==0] <- '실패'
a
# 정규분포 확률 - 평균(mean) 30, 표준편차(sd) 7, 확률변수 15의 확률 - dnorm()
dnorm(15, mean=30, sd=7)
# 정규분포 확률 - 평균(mean) 550, 표준편차(sd) 80, 확률변수 450의 확률 - dnorm()
dnorm(450, mean = 550, sd = 80)
# 이항분포 확률 - 동전 1000번 던저 490번이 앞면 나올 확률
dbinom(490, size = 1000, prob = 0.5)
# 이항분포 확률 - 흡연율 25%로 알려진 1000명이 있는 A대학에서 50명을 뽑았을 때 흡연자일 확률
dbinom(50, size = 1000, prob = 0.25)
# 정규분포 구간확률 - 평균(mean)240, 표준편차(sd)80, 정규분포에서 0~235 까지의 확률
pnorm(235, mean=240, sd=80)
# 정규분포 구간확률 - 평균(mean)350, 표준편차(sd)75, 정규분포에서 200~370 까지의 확률
pnorm(370, mean=350, sd=75) - pnorm(200, mean=350, sd=75)
# diff() - 구간 한번에 계산
diff(pnorm(c(200,370), mean = 350, sd = 75))
# 확률 밀도 함수
# 평균(mean)50, 표준편차(sd)5인 정규분포
x <- seq(from=0, to=100, by=1)
head(x)
tail(x)
# 1부터 100까지 평균(mean)50, 표준편차(sd)12 인 확률 값
y <- dnorm(x, mean=50, sd=12)
head(y)
tail(y)
# plot()
plot(x, y, type='l')
# 확률 질량 함수
# 100번 베르누이 시행 단일 확률 50% 이항 분포
y = dbinom(x, size=100, prob=0.5)
head(y)
tail(y)
plot(x, y, type='l')
# 주어진 데이터로 밀도 함수 구하기
data <- rnorm(300, mean = 70, sd = 20)
# Data분포를 모른다고 전제, 밀도함수 구하기 - density()
Ddata <- density(data)
Ddata
plot(Ddata)
# ggplot() - density() 필요없음
library('ggplot2')
library('ggthemes')
data <- rnorm(300, mean = 70, sd = 20)
df <- data.frame(data)
ggplot(df, aes(x = data)) +
geom_density(fill = 'skyblue2', colour = 'dodgerblue1', alpha = 0.4) +
xlim(c(-10, 140)) +
theme_wsj()
# 신뢰구간의 확률 변수 값 구하기
ci_data <- qnorm(c(0.05, 0.95), mean = 623, sd = 90)
ci_data
# 표본의 데이터 확인
Sample <- read.csv('r-ggagi-data/example_test_statistic_ex1_sample.csv')
head(Sample)
# 모집단의 신뢰구간과 표본의 평균 비교
ci_data #771.036826425632
mean(Sample$point) # 640.4371984145 => 귀무가설 기각되지 않음
# 모집단 불러오기
Population <- read.csv('r-ggagi-data/example_test_statistic_ex2_population.csv')
head(Population)
# 평균, 표준편차
mean(Population$point)
sd(Population$point)
ci_data <- qnorm(c(0.025, 0.975), mean = mean(Population$point), sd = sd(Population$point))
ci_data
# 표본 적재
Sample <- read.csv('r-ggagi-data/example_test_statistic_ex2_sample.csv')
head(Sample)
# 가설 검증
ci_data # 64.0040784805209 | 79.9659215194791
mean(Sample$point) # 80.845 => 귀무가설 기각하고 대립가설을 채택 But 실제는 타당성 조사 필요