R에서 선형 탄도 누산기 (LBA) 시뮬레이션 수정


11

"선형 탄도 누산기"모델 (LBA)은 간단한 간단한 의사 결정 작업에서 인간 행동에 대한 다소 성공적인 모델입니다. Donkin et al (2009, PDF ) 요지로 허가가 인간의 행동 데이터 주어진 모델의 매개 변수를 추정, 나는 (약간의 서식 변경)이 코드를 복사 한 것을 코드를 제공 여기 . 그러나 모델을 약간만 수정하고 싶지만 코드에서이 수정을 수행하는 방법을 잘 모르겠습니다.

정식 모델로 시작하기 위해 LBA는 경쟁자가 다음과 같은 특성을 가질 수 있도록 다소 이상한 경주에서 경쟁자로 각 응답 대안을 나타냅니다.

  • 시작 위치 : 이것은 U (0, X1)에 의해 묶인 균일 한 분포에 따라 인종마다 다릅니다.
  • 속도 : 주어진 레이스 내에서 일정하게 유지되지만 (가속 없음) N (X2, X3)에 의해 정의 된 가우스 분포에 따라 레이스마다 다릅니다.
  • 결승선 위치 (X4)

따라서 각 경쟁 업체는 X1, X2, X3 및 X4에 대해 고유 한 값 세트를 갖습니다.

경기는 우승자와 시간이 매 경기마다 기록되면서 여러 번 반복됩니다. 모든 승리 시간에 일정한 X5가 추가됩니다.

이제 수정하려는 점은 시작점의 가변성을 결승선으로 바꾸는 것입니다. 즉, 모든 경쟁사와 모든 경주에서 시작점이 0이되어 X1을 제거하고 싶지만 각 경쟁사의 X4를 중심으로 균일 분포 범위의 크기를 지정하는 매개 변수 X6을 추가하고 싶습니다. 결승선은 각 레이스마다 샘플링됩니다. 그러면이 모델에서 각 경쟁 업체는 X2, X3, X4 및 X6에 대한 값을 가지게되며 여전히 X5에 대한 경쟁 업체 값을 갖습니다.

누군가 기꺼이 도와 주면 대단히 감사하겠습니다.

아, 그리고 위에서 설명한 "X"라는 이름의 매개 변수와 내가 연결된 LBA 코드에서 사용하는 변수 이름으로의 매핑을 제공합니다. X1 = x0max; X2 = 드리프트 레이트; X3 = sddrift; X4 = 카이; X5 = Ter.


1
제공된 코드에 오류가 있습니다. 전체적으로 논리 연산자 중간에 공백을 넣습니다 (예 : <=,> =, == 및! =).
russellpierce

제안하는 수정은 사소한 것처럼 들리지만 문제는 코드에 / very / 매장되어 있다는 것입니다. 맞춤을 만들려면 fitter를 호출합니다. Fitter는 모델에 매개 변수를 제공 한 다음 실제 맞춤 기능을 최적화합니다. 최적화되는 기능은 obj입니다.
russellpierce

답변:


1

이것은 완전한 답변이 아닙니다. 포인터를 제공하려는 시도 일뿐입니다. 나는 LBA에 대해 아무것도 모른다. 나는 R 코드를 좋아한다. 그래서 당신의 밀레는 다를 수있다.

적절한 코드 섹션을 찾는 핵심은 Ter 값이 모델 계산의 최종 결과에 추가되었다는 것 (최적 및 매개 변수화 랩퍼 'fitter'에있는 obj 함수의 역 추적)을 단순히 알고 있다는 것입니다. 그것은 pqlba와 lbameans로 이끌었습니다. lbameans에서 Ter는 tmp $ mean의 끝에 추가되며 x1max, chi, drift 및 sdI 매개 변수로 허용되는 n1mean 함수에서 파생되며 X1 : X4 이름과 일치하는 것처럼 보입니다. 그러나 아무것도 lbameans를 부르지 않아 pqlba로 돌아갑니다. 그것을 파헤 치면 pqlba (Ter를 추가하기 전에)가 몇 가지 기능을 통해 튀어 오르고 fptpdf로 끝납니다. 이 시점에서 나는 당황했다.

좋은 점은 내가 옳다면 fptpdf에 모든 주요 플레이어가 있다는 것입니다. 나쁜 점은 1) 매개 변수가 다른 일을하고 있는지 여부를 확인하는 데 더 많은 시간이 걸리고 fptpdf (아마도) 전에 제어해야한다는 것입니다 .2) X1 (일명 x0max)을 제거하는 것은 기능이 분리되어 문제가 있다는 것입니다 x0max로 0으로 설정하면 명백한 문제가 발생합니다 (0으로 나누는 것이 좋지 않습니까?). 따라서 목표를 달성하기 전에 모델의 작동 방식에 대한 이해가 필요할 것입니다.

행운을 빕니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.