Rejection Sampling in Python

Summary

  • Rejection Sampling은 Sampling 기법의 하나로, 특정 Distribution을 따르는 수를 임의로 생성하는 기법이다.
  • Proposal Distribution $g(x)$에 Scale Factor M을 곱해서 $f(x)$을 덮은 다음(envelope) 여기에 Uniform Distribution을 곱해서 각 수의 발생확률을 균일하게 가져간다.
  • $u * M* g(x) \le f(x) → u \le {f(x) \over {M*g(x)}}$
  • 이 식은 Decision의 기준인데 $u$가 Uniform Distribution으로 모든 $x$에 대해서 균일한 확률을 가지고 있다면, 적어도 ${f(x) \over {M*g(x)}}$는 균일확률보다 크거나 같을 수 밖에 없을 것이다. 존재하기 때문이다.
  • M은 $g(x)$가 $f(X)$에 아주 가까울 수 있도록 조절하기 위한 factor이다.
  • 쉽게 생각하면 Target Distribution을 Cover할 수 있는 Distribution을 Propsoal Distribution으로 한 다음에, 이를 가지고 Density를 비교하면서 겹치는 영역에서 Sampling을 하는 방식이다.
# Target Function
def f(x):
	return 6*x*(1-x)
# Proposal Function
def g(x):
	return x/x
def random_g(n:int):
	return np.random.uniform(0,1,n)

M=1.5 #constant
n=1000 #size of the sample we want to draw from f(x)

def acceptance():
	n_accept=0
	final_sample = np.zeros(1001)
	while(n_accept<1000):
		x = random_g(1)
		u = np.random.uniform(0,1,1)
		if (u*M*g(x)<=f(x)):
			n_accept=n_accept+1 
			final_sample[n_accept]=x
	return final_sample
vals = acceptance()

References

Read more

DataFrame은 Pandera로, 모델은 Pydantic으로 데이터를 검증한다.

DataFrame은 Pandera로, 모델은 Pydantic으로 데이터를 검증한다.

Pandera: 데이터프레임 검증에 최적화된 도구 주요 장점 * Pandas와 통합: Pandas 데이터프레임에 대해 스키마 기반 검증을 수행합니다. * 유연한 검증 조건: 열 데이터 타입, 값 범위, Null 여부 등 다양한 검증 조건을 정의할 수 있습니다. * 명확한 오류 메시지: 스키마 불일치에 대한 명확한 오류 메시지를 제공합니다. 단점 * 대용량 데이터 검증에서는 속도가 느릴 수

Tobit Regression은 Censored Data에 적합한 Regression이다.

Tobit Regression은 Censored Data에 적합한 Regression이다.

Tobit Regression * Tobit 회귀(Tobit Regression)는 종속 변수가 특정 값에서 절단(Censored)된 상황에서 데이터를 분석하기 위해 사용되는 통계 기법입니다. * James Tobin이 처음 제안한 이 모델은 경제학과 사회과학 분야에서 자주 사용되며, 일반 선형 회귀로는 설명할 수 없는 상황에서 효과적으로 적용할 수 있습니다. Tobit Regression 수식 1. 관측된 종속 변수