반응형
R을 이용하여 가능도 함수를 그리고, 신뢰구간을 시각화 해보겠습니다.
1. 가능도 함수 그리기
X~B(10,theta)인 이항분포에서 가능도함수를 그려보도록 하겠습니다.
이상분포의 확률질량함수는 다음과 같습니다.
가능도함수는 다음과 같습니다.
$\theta$에 관심을 갖은 함수입니다.
# 가능도함수 생성
# x : theta, y : x
L <- function(x,n,y)
{
# x: theta, y: x
choose(n,y)*x^y *(1-x)^(n-y)
}
# 시각화
# 12번중 5번 성공할 확률
curve(L(x,12,5),0,1,xlab=expression(theta),ylab=expression(L(theta)))
2. 구간추정과 신뢰구간
$\mu$ = 10, $\sigma$ = 5 $n$ = 20 일때 구간추정을 하도록 하겠습니다.
# 구간추정
mu <- 10
sigma <- 5
n <- 20
x <- rnorm(n,mu,sigma) # r은 랜덤넘버
z <- qnorm(0.975) # 왼쪽에서 97.5%에 해당하는 값
z <- qnorm(0.025,lower.tail=F) # 오른쪽 2.5%에 해당하는 값
이제 95% 신뢰 구간을 구현하겠습니다.
# 이 구간이 95% 신뢰 구간
lb <- mean(x)-z*sigma/sqrt(n) # 하한값
ub <- mean(x)+z*sigma/sqrt(n) # 상한값
plot(c(1,100),c(0,20),type="n",xlab="반복수",ylab="신뢰구간") # 그래프 생성
# 표본값이 신뢰구간에 포함되는지 확인
n <- 10 # 표본샘플 10개
plot(c(1,100),c(0,20),type="n",xlab="반복수",ylab="신뢰구간")
for (i in 1:100)
{
x <- rnorm(n,mu,sigma)
lb <- mean(x)-z*sigma/sqrt(n)
ub <- mean(x)+z*sigma/sqrt(n)
if (ub < mu | lb > mu) # 신뢰구간을 벗어나면 빨강색으로 표기
lines(c(i,i),c(lb,ub),col="red")
else
lines(c(i,i),c(lb,ub))
}
abline(h=mu,col="blue") # 평균값은 블루
반응형
'Python > 기타 코딩' 카테고리의 다른 글
[R 프로그래밍] 모분산 추론하기 - 수정제곱합, 분산 신뢰구간, 표준편차 신뢰구간 (0) | 2020.09.29 |
---|---|
[R 프로그래밍] 모평균 추론하기 - 정규성 검정, 구간 추정, 가설 검정, 표본크기 결정 (0) | 2020.09.29 |
[R 프로그래밍] 유의수준과 검정력 함수 그리기 (0) | 2020.09.24 |
2. R Studio 환경 설정 하기 (0) | 2020.09.13 |
1. R 설치 및 R Studio 설치방법 (0) | 2020.09.13 |