Model „Linear Ballistic Accumulator” (LBA) jest raczej skutecznym modelem ludzkiego zachowania w przyspieszonych prostych decyzjach. Donkin et al (2009, PDF ) zapewniają, że pozwolenia kod szacowania parametrów modelu danego człowieka dane behawioralne, a ja skopiowane ten kod (z pewnymi zmianami formatowania drobnych) na GIST tutaj . Chciałbym jednak wprowadzić pozornie niewielką modyfikację modelu, ale nie jestem pewien, jak ją wprowadzić w kodzie.
Na początek w modelu kanonicznym LBA reprezentuje każdą alternatywną odpowiedź jako konkurent w dość dziwnym wyścigu, tak że konkurenci mogą różnić się następującymi cechami:
- Pozycja początkowa: zmienia się w zależności od rasy według jednolitego rozkładu ograniczonego przez U (0, X1).
- Prędkość: jest utrzymywana na stałym poziomie w obrębie danej rasy (bez przyspieszenia), ale zmienia się w zależności od rasy zgodnie z rozkładem Gaussa określonym przez N (X2, X3)
- Pozycja linii mety (X4)
Zatem każdy konkurent ma swój własny zestaw wartości dla X1, X2, X3 i X4.
Wyścig jest powtarzany wiele razy, a zwycięzca i jego czas są rejestrowane po każdym wyścigu. Stała X5 jest dodawana do każdego zwycięskiego czasu.
Teraz modyfikacją, którą chcę wprowadzić, jest zamiana zmienności w punkcie początkowym na linię mety. To znaczy, chcę, aby punkt początkowy wynosił zero dla wszystkich zawodników i wszystkich wyścigów, eliminując w ten sposób X1, ale chcę dodać parametr X6, który określa rozmiar zakresu równomiernego rozkładu wyśrodkowanego na X4, z którego każdy zawodnik linia mety jest próbkowana dla każdego wyścigu. Zatem w tym modelu każdy konkurent będzie miał wartości dla X2, X3, X4 i X6, a my nadal mamy wartość dla konkurenta dla X5.
Byłbym bardzo wdzięczny, gdyby ktoś chciał w tym pomóc.
Aha, aby zapewnić odwzorowanie opisanych powyżej parametrów nazwanych „X” na nazwy zmiennych używane przez kod LBA, który połączyłem: X1 = x0max; X2 = dryfować; X3 = sddrift; X4 = chi; X5 = Ter.
źródło
Odpowiedzi:
To nie jest pełna odpowiedź. To tylko próba nadania wskaźnika. Nic nie wiem o LBA, po prostu lubię kod R, więc twój przebieg może się różnić.
Kluczem do znalezienia odpowiedniej sekcji kodu była wiedza, że wartość Ter została po prostu dodana do końcowego wyniku obliczeń modelu (i cofnięcia z funkcji obj, która znajduje się w „instalatorze” optymalizacji i parametryzacji). To doprowadziło mnie do pqlba i lbameans. W lbameans Ter jest dodawany na końcu tmp $ mean, z kolei pochodnej funkcji n1mean, która przyjmuje jako parametry x0max, chi, drift i sdI, co wydawało się rozsądnym dopasowaniem dla twoich nazw X1: X4. Ale nic nie wywołuje lbameans, co prowadzi mnie z powrotem do pqlba. Przekopując się, widzę, że pqlba (przed dodaniem Ter) odbija się przez kilka funkcji - i kończy się na fptpdf. W tym momencie jestem zahamowany.
Zaletą jest to, że jeśli mam rację, fptpdf ma wszystkich głównych graczy. Złą stroną jest to, że: 1) zajęło by więcej czasu sprawdzenie, czy parametry robią inne rzeczy i muszą być kontrolowane przed fptpdf (prawdopodobnie), i 2) Eliminacja X1 (aka x0max) jest problematyczna, ponieważ funkcja jest podzielona przez x0max. Ustawienie go na 0 powoduje wtedy oczywiste problemy (dzielenie przez 0 jest złe, prawda?). Dlatego prawdopodobnie konieczne jest lepsze zrozumienie działania modelu, zanim będzie można osiągnąć założone cele.
Powodzenia.
źródło