forum.jpg (4424 bytes)     "Inside  every small problem is a large problem struggling to get out."

Rules Forum Contributors [For contributors only]

Topics


Applications
Auctions
Bargaining
Experimental Economics
Forum
General Equilibrium
Napster
other
Other Topics
Prisoners Dilemma
Zero Sum Games

 

Thread and Full Text View


Ask a question about: Other Topics
Respond to the question: algorithm for binary prediction neuroim?

07/20/2000 12:29 PM by Thomas Liu;
Thanks! I will cite the Fudenberg and Levine paper. If anyone is interested, I have attached a MATLAB version of the binary prediction program



function [predx,ftop, score,lscore] = binpredict(x,numpred);

% [predx,ftop, score,lscore] = binpredict(x,numpred); % % purpose % % predict a binary string. % % inputs % % x: a vector of 1's and 0's, this is what we are trying to predict % numpred: number of realizations of the prediction; default = 1; % % outputs % % predx: a (N) x (numpred) matrix of predictions, where each column is a realization. % ftop: a vector of the probability of seeing a 1 at each time point % score: probability of a correct choice % lscore: computed probabilities of a correct choice for each realization % the mean of lscore asymptotially approaches score as we increase numpred. % % reference: % % D. Fudenberg and D.K. Levine % Conditional Universal Consistency % Games and Economic Behavior, 29::104-130, 1999. % % web site link (with Java source codes) is % % http://levine.sscnet.ucla.edu//Games/binlearn.htm % % send comments to ttliu@ucsd.edu

if ~exist('numpred'); numpred = 1; end

winlen = 2; % this is how many previous samples we use to predict the next one.

x = x(:);

N = length(x); predx = NaN*ones(N,numpred);

num_entries = 2^winlen; dict = zeros(num_entries,2); % stores number of ones that follow

binmult = 2.^((winlen -1):-1:0);

% initialize the dictionary in the same way that Levine's program does dict(:,2) = 2*ones(num_entries,1); % total number of observations so far dict(1,1) = 0; dict(2,1) = 1; dict(3,1) = 1; dict(4,1) = 2;

ftop = NaN*ones(N,1); % column of probabilities of getting a 1.



% lag laglag init_state = 3; % initially assume a [1 0] pattern. present_state_index = init_state; lscore = 0; % initial score for dind = 1:N; % make the prediction if dind == 1 % first prediction is based on probability of 0.5 of getting a 1. ftop(dind) = 0.5; else past_state_index = present_state_index; n = dict(past_state_index,1) ;% number of ones following a state Nobs = dict(past_state_index,2); % number of observations ftop(dind) = exp(4*n/Nobs) / (exp(4*n/Nobs) + exp(4*(Nobs-n)/Nobs)); end

predx(dind,:) = rand(1,numpred) > (1-ftop(dind)); % this updates the dictionary % the previous state with the current data point. % e.g. if state 2 ([0 1]) is followed by a 1, it adds a one to % the number of ones that follow state 2. dict(present_state_index,1) = dict(present_state_index,1) + x(dind); dict(present_state_index,2) = dict(present_state_index,2) + 1; if dind > 1 present_state_index = binmult*x(dind + (0:-1:(-winlen+1))) + 1; else present_state_index = binmult*[x(dind) 1]' + 1; end

end xcompare = x(:)*ones(1,numpred); score = (sum(predx == xcompare))/N; lscore = mean(ftop.*x(:) + (1-ftop).*(1-x(:)));

[Manage messages]

07/15/2000 04:16 PM by David Levine; Source code posted.
I am posting the source code. It should be available by Monday July 16, and can be accessed from the bottom of the page containing the games. [View full text and thread]

07/13/2000 12:37 PM by Thomas Liu; algorithm for binary prediction? -- neuroimaging appication
Hi, I am in the Dept. of Radiology at UCSD and am doing some work on experimental designs for functional magnetic resonance imaging (fMRI) of the brain. Many of the designs can be characterized as a binary strings. I am interested in [View full text and thread]