임의로 이동하는 모델 탐구: 무작위 이동 모델

대학에서 처음으로 코딩 기반 통계 과목을 수강할 때, 교수님께서 질문을 제기하셨습니다: 물이 담긴 접시에서 단일 꽃가루 입자의 브라운 운동을 어떻게 모델링할 수 있을까요? 여러 번의 잘못된 시도 끝에, 제 동급생들과 저는 결국 올바른 답인 랜덤 워크에 도달했습니다. 이후 이 간단한 모델이 동물의 움직임에서 주식 가격 변동까지 다양한 것들을 모델링하는 데 사용된다는 것을 알게 되었습니다.

이 기사에서는 랜덤 워크의 수학적 기초를 탐구하고, 다양한 유형을 살펴보며, 그 응용에 대해 논의할 것입니다. 랜덤 워크를 흥미롭게 만드는 요소 중 하나는 다양한 분야에서 사용된다는 점입니다. 제 사례 외에도, 물리학에서는 입자 움직임을 설명하는 데 도움을 주고, 금융에서는 주식 가격 변동을 모델링하며, 생물학에서는 동물의 이동 패턴을 설명합니다. 랜덤 워크는 실제 세계의 무작위성을 포착하며, 이는 확률적 과정을 시뮬레이션하는 데 중요한 요소입니다.

랜덤 워크 이론의 기초를 구축하려는 사람들에게는, R을 이용한 통계 입문 과정이나 파이썬을 이용한 통계 입문 과정부터 시작하는 것을 권장합니다.

랜덤 워크란?

확률 이론에서 랜덤 워크는 경로를 이루는 무작위 단계의 연속을 설명하는 모델입니다. 다르게 말하면, 랜덤 워크는 각각이 독립적으로 특정한 확률로 결정되는 단계의 연속에 의해 형성된 경로를 설명하는 수학적 모델입니다. 이러한 확률성으로 인해 랜덤 워크는 본질적으로 예측할 수 없습니다.

각 순간 무작위 방향으로 한 걸음씩 내디딘다고 상상해보세요. 시간이 흐르면서 그들의 경로는 예측할 수 없고, 마구 휘갈겨진 흔적을 남깁니다. 이 간단한 개념에도 불구하고, 이는 깊이와 다양성을 지니며, 무작위성을 포함하는 다양한 현실 세계 시나리오를 모델링합니다.

무작위 보행에 대한 개념적 설명. 이미지 출처: napkin.ai.

무작위 보행의 개념은 초기 확률 연구로 거슬러 올라갑니다. 종종 ‘술 취한 사람의 보행’이라고 불리는 초기 예시 중 하나는 사람이 무작위로 걸을 때 어떻게 불규칙하게 방황하게 되는지를 보여줍니다. 이 무작위성은 각 단계가 이전 단계와 독립적이라는 가정과 결합되어 현대 무작위 보행 모델의 기초를 마련했습니다.

무작위 보행의 수학 이해하기

무작위 보행을 이해하기 위해 간단한 사례부터 시작해 보겠습니다: 일차원(1D) 무작위 보행.숫자 선 위에 있는 입자를 상상해 보세요. 그것은 매 단계마다 숫자 선을 따라 +1 또는 -1로 이동할 수 있습니다. 각 움직임은 오른쪽 또는 왼쪽으로 걸을 확률이 동일하게 결정됩니다. 시간이 지남에 따라 입자의 위치는 여러 위치에서 발견될 가능성을 나타내는 확률 분포를 형성합니다.

이 원칙은 2차원이나 3차원으로 확장될 수 있습니다. 2차원(2D) 랜덤 워크에서 입자는 평면 상에서 움직이며 상하좌우 네 가지 기본 방향 중 어느 쪽으로든 동등한 확률로 걸음을 내딛을 수 있습니다. 마찬가지로, 3차원(3D) 랜덤 워크에서 입자는 공간 상에서 움직이며 상하좌우전후 여섯 가지 가능한 방향 중 어느 쪽으로든 동등한 확률로 걸음을 내딛을 수 있습니다. 이러한 고차원 랜덤 워크는 더 복잡하고 현실적인 시나리오를 포착합니다.

랜덤 워크의 특징 중 하나는 확률적인 성격이며, 각 단계는 현재 위치에만 의존하고 이전 단계에는 의존하지 않는다는 것입니다. 이는 그들이 마르코프 과정의 일종이 되게 하는데, 이는 미래 상태가 현재 상태에만 의존하고 그 전에 발생한 사건의 순서에는 의존하지 않는 수학적 개념입니다. 이 “메모리리스” 움직임은 잠재적 위치를 설명하는 확률 분포와 결합되어 랜덤 워크를 이해하기 위한 견고한 수학적 기반을 제공합니다.

우리는 무작위 보행을 통계적 특성을 사용하여 시간에 따른 행동을 이해할 수 있습니다. 이는 시작점에서의 예상 거리, 가능한 위치의 확률 분포, 원점으로 돌아올 가능성과 같은 측면을 살펴보는 것을 포함합니다. 이러한 분석은 무작위성과 예측 가능성을 정량화하고 패턴에 대한 통찰력을 제공하며 예측을 가능하게 합니다.

무작위 보행의 주요 특성

무작위 보행은 그 행동과 응용을 이해하는 데 도움이 되는 몇 가지 중요한 특성을 가지고 있습니다. 다음은 고려해야 할 주요 측면입니다:

기대값과 분산

일차원 무작위 보행에서 우리는 시간에 따라 시작점에서의 예상 거리(또는 평균 위치)를 계산할 수 있습니다. 각 단계가 왼쪽 또는 오른쪽으로 이동할 동등한 확률을 가질 경우, 많은 단계 후의 예상 위치는 0으로 유지되며, 이는 평균적으로 보행자가 시작점 근처에 머무른다는 것을 의미합니다.

하지만 가능한 위치의 분포나 확산을 측정하는 위치의 분산은 각 단계마다 증가합니다. 특히 대칭 랜덤 워크에서는 분산이 단계 수에 비례하여 선형적으로 증가하므로 시간이 지남에 따라 원점으로부터의 일반적인 거리를 나타내는 유용한 지표가 됩니다.

자기상관

단순 랜덤 워크는 단계 간의 상관관계가 없지만(각 단계는 이전 단계와 독립적입니다), 특정 유형의 랜덤 워크는 자기상관을 도입하여 과거 단계가 미래 단계에 영향을 미칠 수 있습니다. 예를 들어, 편향 랜덤 워크에서는 단계가 한 방향으로 약간의 경향을 가질 수 있어 위치가 더 예측 가능하게 됩니다.

랜덤 워크의 자기상관은 우리가 워크의 진행을 모델링하고 예측하는 방식에 영향을 미칩니다. 이는 과거 행동이 미래 단계에 영향을 미치는 특정 금융 모델과 같은 응용 프로그램에서 특히 관련이 있습니다.

중심극한정리

중심 극한 정리(CLT)는 많은 수의 독립적인 확률 변수의 합이 원래 분포와 관계없이 정규 분포(또는 가우시안 분포)를 따르는 경향이 있음을 알려줍니다. 임의 보행의 맥락에서 이는 단계 수가 증가함에 따라 위치 분포가 정규 분포를 닮아간다는 것을 의미합니다. 이는 우리가 시작점에서 특정 거리만큼 떨어진 곳에 보행자가 있을 확률을 근사할 수 있게 해주는 유용한 속성입니다.

대수의 법칙

대수의 법칙(LLN)은 시행 또는 단계 수가 증가함에 따라 결과의 평균이 실제 평균에 수렴한다는 것을 설명합니다. 임의 보행의 경우, 평균 위치는 0으로 유지되지만, 분산과 가능한 위치의 범위는 각 추가 단계마다 예측 가능하게 증가합니다. 이 원리는 순수한 무작위성과 대규모 샘플에서의 예측 가능한 통계 패턴 사이의 간극을 메우는 데 도움이 됩니다.

임의 보행의 유형

무작위 보행은 각 단계의 규칙에 따라 크게 달라집니다. 이러한 유형은 보행의 행동 방식에 영향을 미칩니다. 일부는 단순하거나 구조화된 환경을 위해 설계되었고, 다른 일부는 더 복잡한 실제 현상에 맞춰져 있습니다. 가장 일반적인 무작위 보행 유형 몇 가지를 살펴보겠습니다.

1D, 2D, 3D 무작위 보행

무작위 보행의 차원성은 그 행동에 근본적인 역할을 합니다. 1D 무작위 보행에서는 각 단계가 선을 따라 앞으로 나아가거나 뒤로 이동하는 것입니다. 이로 인해 보행을 상대적으로 쉽게 모델링하고 예측할 수 있습니다.

그러나 2D(평면) 및 3D(공간) 보행으로 이동함에 따라 가능한 경로가 크게 증가하여 새로운 행동이 도입됩니다. 예를 들어, 2D 무작위 보행에서는 시작점으로 돌아갈 확률이 높게 유지되는 반면, 3D 무작위 보행에서는 이 확률이 감소합니다.

이 변화는 물리학과 화학과 같은 분야에서 중요하며, 여기서 입자는 차원 제약에 따라 다르게 확산될 수 있습니다.

격자 임의 보행

격자 임의 보행에서는 움직임이 격자나 그리드의 이산한 점으로 제한됩니다. 이러한 유형의 보행은 물리학 및 네트워크 이론에서 일반적으로 사용되며, 노드가 그리드에 배열되어 있고 움직임이 인접한 노드로만 발생할 수 있습니다.

일반적인 예로는 2D 격자가 있으며, 각 단계는 카르테시안 그리드의 인접한 점으로의 이동을 허용합니다. 이러한 제약은 움직임 경로를 제한하여 복잡한 네트워크나 분자 구조를 시뮬레이션할 때 유용한 모델링을 단순화합니다.

가우시안 임의 보행

가우시안 랜덤 워크에서는 각 단계의 크기가 가우시안(또는 정규) 분포에 의해 결정됩니다. 고정된 거리를 이동하는 대신, 단계 크기는 종 모양의 분포에 따라 달라지며, 대부분의 단계는 작고 가끔 더 큰 점프가 발생합니다. 이러한 유형의 워크는 자산 가격 변동의 변동성을 설명하기 위해 금융 모델링에서 자주 사용됩니다.

이질적이고 편향된 랜덤 워크

이질적이고 편향된 랜덤 워크는 특정 확률에 따라 단계의 방향과 크기가 변할 수 있도록 허용합니다. 이러한 유연성은 실제 시나리오에 더 적응 가능하게 만듭니다.

이질적 랜덤 워크에서는 어느 방향으로 이동할 확률이 위치나 외부 조건에 따라 변할 수 있습니다. 예를 들어, 먹이를 찾는 동물들은 알려진 자원이 있는 지역을 선호할 수 있으며, 이는 편향된 랜덤 워크를 생성합니다. 이러한 워크는 맥락적 요인에 의존하는 행동을 연구하는 데 유용합니다.

드리프트가 있는 랜덤 워크

드리프트를 가진 무작위 워크에서 일정한 방향으로 움직이는 일관성이 있습니다. 예를 들어, 주식 가격은 매일의 변동이 있더라도 시간이 지남에 따라 전반적으로 상승 추세를 보일 수 있습니다. 이러한 워크의 드리프트는 경로에 영향을 주는 외부 힘이나 추세를 나타냅니다. 이 유형은 종종 금융 분야에서 볼 수 있으며, 모델은 성장이나 하락을 나타내는 드리프트 용어를 통합하여 자산 가격 및 시장 트렌드를 예측하는 더 현실적인 방법을 제공합니다.

이러한 종류의 무작위 워크 각각은 무작위이지만 구조화된 행동을 모델링하는 다양한 방법을 제공하여 고유한 목적을 제공합니다. 차원 제약, 단계 분포 및 드리프트 또는 편향의 존재는 무작위 워크를 데이터 모델링 및 시뮬레이션을 위해 다양하게 만듭니다.

무작위 워크의 실제 응용

무작위 워크는 이론적 구조 이상이며 다양한 분야에서 실제 응용에서 중요한 역할을 합니다. 무작위 워크가 어떻게 다양한 분야에서 실제 문제 해결에 도움을 주는지 살펴보겠습니다.

데이터 과학 및 기계 학습에서의 응용

컴퓨터 과학

랜덤 워크는 무작위 샘플링, 웹 그래프 탐색 및 이미지 분할과 같은 여러 컴퓨터 과학 알고리즘의 기초를 이룹니다. 예를 들어, Google의 PageRank 알고리즘은 관련성에 기초해 웹 페이지를 순위화하기 위해 무작위 워크를 사용하여 인터넷에서 링크 간에 무작위로 탐색하는 사용자를 모방합니다.

특징 추출

머신 러닝에서 랜덤 워크는 데이터 포인트 내의 관계를 강조함으로써 특징을 추출하는 데 도움을 줄 수 있습니다. 예를 들어, 네트워크 분석에서 랜덤 워크는 군집이나 커뮤니티를 드러내어 추천 시스템 및 소셜 네트워크 분석과 같은 작업에 도움이 될 수 있습니다.

이상 탐지

랜덤 워크는 데이터 집합에서 이상을 감지하는 데에도 사용될 수 있습니다. 예를 들어, 데이터 포인트가 랜덤 워크 모델에서 일반적인 경로에서 크게 벗어난다면, 이러한 포인트는 데이터의 이상한 사건이나 오류를 나타낼 수 있습니다. 이상 탐지는 특히 사이버 보안 및 사기 탐지와 같은 분야에서 귀중합니다.

확률적 과정 시뮬레이션

랜덤 워크는 확률적이거나 무작위로 결정되는 프로세스를 모방하여 데이터 과학자들이 예측할 수 없는 현실 세계의 현상을 모델링할 수 있게 합니다. 랜덤 워크를 시뮬레이션함으로써, 우리는 날씨 패턴이나 고객 행동과 같이 정확한 예측이 어려운 시스템에 대한 통찰력을 얻을 수 있습니다.

시계열 예측

시계열 분석에서 랜덤 워크는 금융 분야의 랜덤 워크 가설을 포함한 일부 예측 모델의 기초를 형성합니다. 이러한 모델들은 시계열의 미래 값이 최근 값에만 의존하며 과거 추세와 상관 관계가 없다고 가정합니다. 시계열 예측에 대해 더 알아보려면 ARIMA를 이용한 시계열 예측: 완벽한 가이드을 확인하십시오. 또한, Hyndman 교수와 함께하는 R에서의 예측 코스를 수강하십시오. 이 코스에서는 랜덤 워크 모델을 순진 및 계절적 순진 예측 방법에 연결합니다.

다른 분야에서의 응용

금융

무작위 보행의 가장 주목할 만한 용도 중 하나는 금융 모델링, 특히 주가 예측에 있습니다. 효율적 시장 가설은 주가 움직임이 본질적으로 무작위적이라고 제안합니다. 새로운 정보가 즉시 반영되기 때문에 미래의 가격을 예측할 수 없게 만듭니다. 무작위 보행은 시간이 지남에 따라 주가 변화를 모델링하는 데 사용될 수 있으며, 가격이 예측할 수 없는 경로 없이 어떻게 변동하는지를 보여줍니다.

수학

순수 수학에서 무작위 보행은 복잡한 문제에 대한 해결책을 제공합니다. 예를 들어, 라플라스 방정식 해결, 네트워크 분석 및 조합론 탐색에 유용합니다.

물리학 및 화학

자연 과학에서 무작위 보행은 분산 과정을 모델링하는 데 중요합니다. 예를 들어, 분자가 매질을 통해 퍼지는 방식입니다. 브라운 운동은 유체에 떠 있는 입자가 주변 분자와의 충돌로 인해 예측할 수 없이 움직이는 고전적인 예로, 무작위 보행을 사용하여 정확하게 시뮬레이션할 수 있습니다. 이것이 사실 제가 처음으로 무작위 보행에 대해 배운 방법입니다.

생물학

무작위 보행은 동물 이동 패턴을 연구하는 생태학에서 가치가 있습니다. 자원을 찾아 헤매는 동물들은 무작위 보행처럼 보일 수 있으며, 때때로 알려진 자원이 있는 지역으로 편향될 수 있습니다. 인구나 유전자의 확산과 같은 다른 생물학적 개념도 종종 무작위 보행 원칙으로 모델링할 수 있어 생태계 내의 변화를 이해하고 예측하는 데 도움이 됩니다.

무작위 보행의 특수 사례 및 변형

고전적인 무작위 보행 외에도 여러 가지 고급 변형이 전문적인 응용을 위해 개념을 확장합니다.

자기 회피 보행

자기 회피 보행은 경로가 이미 지나간 위치를 다시 방문하지 않는 무작위 보행입니다. 이 변형은 폴리머 화학과 같은 분야에서 특히 유용하며, 폴리머 사슬이 서로 교차하지 않고 형성되는 방식을 모델링할 수 있습니다. 각 단계가 이전에 방문한 지점을 피하기 때문에 자기 회피 보행은 전통적인 무작위 보행보다 제약이 더 많습니다. 이는 계산적으로 도전적이지만 제한된 공간에서 비겹치는 경로를 이해하는 데 유용합니다.

가지치기

분기 랜덤 워크에서는 경로가 여러 분기로 나뉘며, 각 분기는 랜덤 워크를 따릅니다. 이러한 유형의 워크는 세포 분열이나 네트워크를 통한 정보 확산과 같은 분기 과정을 모델링하는 데 중요합니다. 각 “분기”는 공통 출처에서 시작되는 독립적인 랜덤 경로를 나타냅니다.

상관된 워크

상관된 워크는 이 개념을 한 단계 더 발전시킨 것으로, 각 단계의 방향은 이전 단계에 의해 부분적으로 영향을 받습니다. 이 변형은 변화가 무작위가 아니라 점진적으로 발생하는 시스템에서 관성을 모델링하는 데 유용합니다. 상관된 워크는 종종 금융에서 가격 트렌드를 시뮬레이션하거나 동물 생태학에서 동물이 과거 방향에 대한 기억을 가지고 환경을 탐색하는 방식을 이해하는 데 적용됩니다.

루프 삭제 워크

루프 삭제 워크는 루프, 즉 자기 자신을 교차하는 경로가 형성될 때 제거되는 변형입니다. 단계가 다시 위치를 방문할 때마다 그 사이의 루프가 삭제되어 간소화된 비반복 경로가 남습니다. 루프 삭제 워크는 중복을 피하는 경로를 생성하기 때문에 네트워크 분석 및 미로 생성 알고리즘에서 일반적으로 적용됩니다.

파이썬에서 랜덤 워크 구현하기

파이썬에서 랜덤 워크를 시도해 봅시다.시작하기 전에 Python이 설치되어 있는지 확인하세요(저희는 Python 3.10을 사용할 것입니다) 그리고 필요한 라이브러리가 설치되어 있는지 확인하세요. 누락된 라이브러리는 pip를 사용하여 설치할 수 있습니다. 아래에서 사용할 것은 다음과 같습니다:

import numpy as np # 숫자 연산 및 랜덤 스텝 생성 import matplotlib.pyplot as plt # 랜덤 워크를 시각화하고 플로팅하기 위함

1차원 랜덤 워크

우리는 각 스텝이 무작위로 선택된 +1 또는 -1인 간단한 1차원 랜덤 워크로 시작할 것입니다.

# 매개변수 n_steps = 100 # 스텝의 수 # 무작위 스텝 생성: +1 또는 -1 steps = np.random.choice([-1, 1], size=n_steps) # 위치 계산 positions = np.cumsum(steps) # 랜덤 워크 플로팅 plt.figure(figsize=(10, 6)) plt.plot(positions, marker='o', linestyle='-', markersize=4) plt.title("1D Random Walk") plt.xlabel("Step") plt.ylabel("Position") plt.grid(True) plt.show()

이 코드를 실행하면 간단한 랜덤 워크가 생성되고 시간이 지남에 따른 진행이 시각화됩니다.

이제 기억해두세요, 우리는 확률적 모델을 실행하고 있습니다. 이는 우리가 실행할 때마다 출력이 약간 다르게 보일 것을 의미합니다.

2D 랜덤 워크

이제 랜덤 워크를 두 차원으로 확장해 봅시다. 각 단계에서 방향은 무작위로 선택될 것입니다.

# 매개변수 n_steps = 500 # x와 y 방향에서 무작위 단계 생성 x_steps = np.random.choice([-1, 1], size=n_steps) y_steps = np.random.choice([-1, 1], size=n_steps) # 위치 계산 x_positions = np.cumsum(x_steps) y_positions = np.cumsum(y_steps) # 2D 랜덤 워크 플롯 plt.figure(figsize=(8, 8)) plt.plot(x_positions, y_positions, marker='o', linestyle='-', markersize=2, label='Random Walk') plt.plot(x_positions[0], y_positions[0], 'ro', markersize=8, label='Start') # 시작점에 빨간 점 plt.plot(x_positions[-1], y_positions[-1], 'ko', markersize=8, label='End') # 끝점에 검은 점 plt.title("2D Random Walk") plt.xlabel("X Position") plt.ylabel("Y Position") plt.grid(True) plt.axis('equal') # 두 축에 대해 동일한 스케일링 보장 plt.legend() plt.show()

이 코드는 2차원에서 시각적으로 매력적인 경로를 생성합니다.

이러한 유형의 2차원 무작위 걷기는 입자 운동이나 공간 모델링과 같은 응용 프로그램을 수용하도록 수정될 수 있습니다.

편향된 무작위 걷기

마지막으로, 약간 더 복잡한 예인 편향된 무작위 걷기를 살펴보겠습니다. 편향을 도입하기 위해 각 단계 방향의 확률을 조정할 수 있습니다. 예를 들어, 위로 가는 단계가 더 가능성이 높도록 만들 수 있습니다.

# 매개변수 n_steps = 100 bias = 0.7 # +1로 걷는 확률 # x 및 y 방향에 대한 편향된 무작위 단계 생성 x_steps = np.random.choice([-1, 1], size=n_steps, p=[1-bias, bias]) y_steps = np.random.choice([-1, 1], size=n_steps, p=[1-bias, bias]) # 위치 계산 x_positions = np.cumsum(x_steps) y_positions = np.cumsum(y_steps) # 편향된 2D 무작위 걷기 플롯 plt.figure(figsize=(8, 8)) plt.plot(x_positions, y_positions, marker='o', linestyle='-', markersize=2, label='Random Walk') plt.plot(x_positions[0], y_positions[0], 'ro', markersize=8, label='Start') # 시작점에 대한 빨간 점 plt.plot(x_positions[-1], y_positions[-1], 'ko', markersize=8, label='End') # 끝점에 대한 검은 점 plt.title("Biased 2D Random Walk") plt.xlabel("X Position") plt.ylabel("Y Position") plt.grid(True) plt.axis('equal') # 두 축 모두에 대해 동일한 비율을 보장합니다. plt.legend() plt.show()

편향을 변경함으로써 걷기가 특정 방향으로 치우치는 경향을 관찰할 수 있으며, 이는 주가의 드리프트나 동물의 이동 패턴과 같은 실제 시나리오를 시뮬레이션합니다.

편향 매개변수를 0.55로 변경하면 모델의 동작 방식에서 극적인 차이를 볼 수 있습니다. 여전히 위쪽으로 가려는 편향이 있지만, 그 편향은 그리 강하지 않아 더 많은 루프와 우회를 초래합니다.

결론

무작위 걷기는 물리학에서 금융 및 그 너머에 이르기까지 다양한 분야에 적용될 수 있는 데이터 과학자들에게 귀중한 모델링 도구입니다. 복잡하고 확률적인 과정을 모델링하는 능력 덕분에 많은 실제 시나리오에서 필수적입니다.

더 많은 것을 원하십니까? DataCamp의 확률 및 통계 과정 모음을 확인해 보세요. Python과 R 모두에서 다양한 훌륭한 과정을 찾을 수 있습니다. 더 고급 내용을 원하신다면 Python에서의 통계 시뮬레이션 과정과 기계 학습 소개 튜토리얼을 확인해 보세요. 아니면 지식을 테스트할 준비가 되셨다면, 다음의 확률 퍼즐에 도전해 보세요.

Source:
https://www.datacamp.com/tutorial/random-walk