확률분포, 이산형확률분포(확률질량함수,베르누이시행)
확률분포
*R를 활용한 데이터분석 입니다.
확률함수 : 확률변수에 대해 확률을 계산하는 함수
확률분포
- 각 사건에 어느 정도의 확률이 할당 되었는지 표현한 정보를 의미
- 확률 분포를 통해 통계적인 특성을 쉽게 이해 할 수 있다.
확률분포 함수 P(X=x)
- 확률변수 X가 가지는 값 x에 확률 P(X=x)을 대응시키는 함수
- 확률분포는 확률변수가 어떤 종류의 값을 가지는가에 따라 : 이산 확률 분포 , 연속 확률 분포
예를 들어, 주사위를 던지는 실험
확률변수 = 주사위의 눈 (1부터 6까지의 정수 값) 확률함수 = 1/6
이러한 확률변수와 그 값에 대한 확률을 표나 그래프로 나타낸 것이 바로 확률분포
이산 확률분포
이산확률변수: 확률변수 X가 취할 수 있는 모든 값을 셀 수 있는 경우
이산형 확률분포: 이산확률변수의 확률 분포(함수), 특정한 사건이 발생활 확률의미 ex)이항분포,다항분포, 포아송분포 등
주사위를 던졌을때, 나올 수 있는 눈금(수) = 확률변수 X ={1,2,3,4,5,6}
주사위 이산확률분포는
P(X=1)일때 1/6
P(X=2)일때 1/6
P(X=3)일때 1/6
P(X=4)일때 1/6
P(X=5)일때 1/6
P(X=6)일때 1/6
을 가진다
확률질량함수
: 이산확률변수가 특정한 값을 가질 확률을 출력하는 함수로 이산확률분포를 표현하기 위해 사용하는 확률분포함수로 이해할 수 있다.
: 확률변수 X에 대한 확률 질량 함수의 의미로
동전 2개를 동시에 던지는 시행에서 두 누금의 합을 X라고 가정할때, 두눈금의 합을 X라고 하자
확률 변수 X = {0,1,2}
확률질량함수 f(x)
f(0) = p(X=0) =1/4
f(1)=P(X=1)=1/2
f(2)=P(X=2)=1/4
P(X=x) = f(x)
f(x)는 확률변수 X가 x라는 값을 가질 때의 확률을 계산하는 함수
이 함수는 다음과 같은 성질을 만족한다
2. ∑f(x) = 1 모든 가능한 x에 대해 f(x)를 더하면 1이 되어야 한다.
베루누이행
베루느이 시행 : 배타적인 두 결과가 나올 수 있는 확률실험으로 관심있는 사건이 발생활률을 p라 정의하고
다른결과가 나올 확률을 1-p라 정의 = 두 가지 중 하나로만 나오는 시행
ex) 입학 시험 -> 합격 혹은 불합격, 동전던지기 -> 앞면 혹은 뒷면
베루누이 확률변수, 확률분포
- 베르누이 시행의 결과를 실수 0 또는 1로 표현
- 확률변수는 0또는 1의값만 가질수 있으므로, 이산 확률변수
- 베르누이 확률변수의 분포를 베르누이 확률분포라고한다
- 확률변수 X가 베르누이 분포를 따른다고 표현하며 수식으로는 다음과 같이 표현한다.
- 베르누이 확률분포
ҳ ∼ Bern(ҳ, μ)
*모수(parameter)는 세미콜론(;) 기호로 구분하여 표기한다
* 베르누이 확률분포는 모수로 μ를 가지는데 , 1이 나올 확률을 의미
μ가 0.8인 베르누이 확률분포
- 베르누이 분포의 확률질량함수
는 성공(1) 또는 실패(0)를 나타내고, x가 1일 때 , 가 0일 때
이항분포
성공확률이 μ인 베르누이 시행을 N번 반복한다
N번중에서 성공한 횟수를 확률변수 X라고 가정할때, X는 0부터 N까지의 정수 중 하나이다
- 이항분포 식
X~Bin( x; N, μ)
이항분포는 모수(parameter)로 N과μ를 가진다
파라미터 N: 시행횟수 N파라미터 μ: 한번의 횟수에서 1이 나올 확률 μ
- 이항분포의 확률 질량함수
= P(X = k) = C(n, k) * p^k * (1-p)^(n-k)
N
x
는 N개에서 x개를 선택하는 조합(combination)의 수와 같다.
ggplot(kc_house)+
geom_bar(aes(x= as.factor(waterfront),
fill = as.factor(waterfront)))+
xlab('waterfront')+
labs(fill ='Waterfront')+
theme_bw()+
theme(legend.position = 'bottom',
text= element_text(size = 12, face='bold'))
각 요소 설명
- ggplot(kc_house): kc_house 데이터프레임을 사용하여 ggplot 객체를 생성
- geom_bar(aes(x = as.factor(waterfront), fill = as.factor(waterfront))): geom_bar를 사용하여 막대 그래프를 추가한다. x 축에는 waterfront 변수를 범주형으로 변환한 값을 사용하고, fill 옵션을 통해 막대 색상을 waterfront 변수의 범주로 설정한다. -> ( waterfront : int 0 0 0 0 0 0 0 0 0 0 ... )를 factor로 변환하기
- xlab('waterfront'): x 축의 레이블 이름을 'waterfront'로 설정
- labs(fill = 'Waterfront'): 범례의 레이블 이름을 'Waterfront'로 설정
- theme_bw(): 테마를 흑백 테마로 설정한다. 이는 배경과 축의 색상을 흑백으로 변경한다
- theme(legend.position = 'bottom', text = element_text(size = 12, face = 'bold')): 범례를 아래쪽에 배치하고, 텍스트 크기를 12로, 글꼴을 굵게 설정한다
다항분포
• 여러 개의 값을 가질 수 있는 독립 확률변수들에 대한 확률분포를 가리킨다.
• 조건: 여러 번의 독립시행에서 각각의 값이 특정 횟수가 나타날 확률
• 다항 분포는 어떤 사건을 독립적으로 여러 번 시행하였을 때 세 가지 이상의 결과가 나타날 확률 분포
• 예를 들어, 주사위를 던져서 1, 2, 3, 4, 5, 6이 나올 확률을 구하는 것은 이항 분포가 아니라 다항 분포.
다항 분포에서는 세 개 이상의 결과가 나올 수 있기 때문입니다. ¹
ggplot(kc_house)+
geom_bar(aes(x= as.factor(view),
fill = as.factor(view)))+
xlab('View')+
labs(fill ='View')+
theme_bw()+
theme(legend.position = 'bottom',
text= element_text(size = 12, face='bold'))
사용데이터
https://www.kaggle.com/datasets/ahmedmmmahmoud/kc-house-data
kc house data
www.kaggle.com
캐글의 kc house data 활용
데이터 로드 + 데이터 확인하기+ 데이터설명
library(ggplot2)
dir ='/Users/yunchaewon/Desktop/r-data analysis/'
kc_house = read.csv(paste0(dir,'kc_house_data.csv'),stringsAsFactors = FALSE)
str(kc_house)
'data.frame': 21613 obs. of 21 variables:
$ id : num 7.13e+09 6.41e+09 5.63e+09 2.49e+09 1.95e+09 ...
$ date : chr "20141013T000000" "20141209T000000" "20150225T000000" "20141209T000000" ...
$ price : num 221900 538000 180000 604000 510000 ...
$ bedrooms : int 3 3 2 4 3 4 3 3 3 3 ...
$ bathrooms : num 1 2.25 1 3 2 4.5 2.25 1.5 1 2.5 ...
$ sqft_living : int 1180 2570 770 1960 1680 5420 1715 1060 1780 1890 ...
$ sqft_lot : int 5650 7242 10000 5000 8080 101930 6819 9711 7470 6560 ...
$ floors : num 1 2 1 1 1 1 2 1 1 2 ...
$ waterfront : int 0 0 0 0 0 0 0 0 0 0 ...
$ view : int 0 0 0 0 0 0 0 0 0 0 ...
$ condition : int 3 3 3 5 3 3 3 3 3 3 ...
$ grade : int 7 7 6 7 8 11 7 7 7 7 ...
$ sqft_above : int 1180 2170 770 1050 1680 3890 1715 1060 1050 1890 ...
$ sqft_basement: int 0 400 0 910 0 1530 0 0 730 0 ...
$ yr_built : int 1955 1951 1933 1965 1987 2001 1995 1963 1960 2003 ...
$ yr_renovated : int 0 1991 0 0 0 0 0 0 0 0 ...
$ zipcode : int 98178 98125 98028 98136 98074 98053 98003 98198 98146 98038 ...
$ lat : num 47.5 47.7 47.7 47.5 47.6 ...
$ long : num -122 -122 -122 -122 -122 ...
$ sqft_living15: int 1340 1690 2720 1360 1800 4760 2238 1650 1780 2390 ...
$ sqft_lot15 : int 5650 7639 8062 5000 7503 101930 6819 9711 8113 7570 ...
- id: 주택 식별자
- date: 거래 일자
- price: 주택 가격
- bedrooms: 침실 수
- bathrooms: 욕실 수
- sqft_living: 주택의 총 거실 면적 (평방 피트)
- sqft_lot: 부지 면적 (평방 피트)
- floors: 주택의 층 수
- waterfront: 해안 주택 여부 (0: 아니오, 1: 예)
- view: 전망 등급
- condition: 주택 상태 등급
- grade: 주택 등급
- sqft_above: 지상 층 면적 (평방 피트)
- sqft_basement: 지하실 면적 (평방 피트)
- yr_built: 건축 연도
- yr_renovated: 개조 연도
- zipcode: 우편번호
- lat: 주택의 위도
- long: 주택의 경도
- sqft_living15: 주택 주변 15개 지역의 평균 거실 면적 (평방 피트)
- sqft_lot15: 주택 주변 15개 지역의 평균 부지 면적 (평방 피트)