First carpenter-like experiment

Subject: Myself

80% of stimuli at right-hand side, 20% at left-hand side.
Time between stimuli follows a uniform distribution between 0.5 and 1.5 seconds (just like Carpenter)
Keys used: 1=left, 2=right (in the numerical keypad).

200 trials. 199 correct, 1 confused the side of the second stimulus.

>> load(‘c:\hipertec\decisionmaking\Resultados\APE_20090513T174355_sesgo08.mat’)
>> [correctos,procesados]=salida2procesados(salida);

Scale in the 4th box is multiplied times 10^-3.
One timing of the first stimulus has an abnormally high uncertainty (box 3). However, it is still lower than needed:
errorbar(1:199,correctos.t_entrestim(:,1),correctos.t_entrestim(:,2),’.’)

The strange point is the one with appreciable errorbars, still very small compared with the overall scale.

Accuracy of reaction times is also high enough:
>> errorbar(1:199,correctos.t_reaccion(:,1),correctos.t_reaccion(:,2),’.’)

Although all results are valid, I would say that accuracies were higher last day. Probably this is due to having other programs open (especially firefox). In the following, one should do the experiments with all other programs closed.

Overall reaction times show the skewness:
>> hist(correctos.t_reaccion(:,1))

Separating right and left stimuli, skewness is mantained, and the expected shift occurs.
>> subplot(2,1,1)
>> hist(correctos.t_reaccion(correctos.dcha,1))
>> subplot(2,1,2)
>> hist(correctos.t_reaccion(~correctos.dcha,1))

The correlation between reaction time and interval between both stimuli is clear, both for the global dataset and when separating the two kinds of stimuli:

>> ploterr(correctos.t_reaccion(:,1),correctos.t_entrestim(:,1),correctos.t_reaccion(:,2),correctos.t_entrestim(:,2),’.’)
>> xlabel(‘Reaction time (s)’)
>> ylabel(‘Time b/w stimuli (s)’)

>> ploterr(correctos.t_reaccion(correctos.dcha,1),correctos.t_entrestim(correctos.dcha,1),correctos.t_reaccion(correctos.dcha,2),correctos.t_entrestim(correctos.dcha,2),’.’)
>> hold on
>> ploterr(correctos.t_reaccion(~correctos.dcha,1),correctos.t_entrestim(~correctos.dcha,1),correctos.t_reaccion(~correctos.dcha,2),correctos.t_entrestim(~correctos.dcha,2),’r.’)

 

Advertisements

Experiments of decision-making. First try

Subject: Myself

The timing between both stimuli is taken from a uniform distribution ranging between 0 and 3 seconds.

>>[t_estimulo1,t_estimulo2,t_reaccion,t_est_ideal,t_finespera,latencia_flip]=estimulo(100);
>> hist(t_reaccion(:,1)-t_estimulo2(:,1),20)

Histogram of all reaction times:

The point near zero is in fact a false positive (I pushed the key before seeing the second stimulus, but it appeared between my decision and the actual push).

plot(t_reaccion(:,1)-t_estimulo2(:,1),t_estimulo2(:,1)-t_estimulo1(:,1),’.’)

Reaction time (y) versus time between the two stimuli (x):

There is a trend of longer latency for smaller time between stimuli. However, my feeling is not the one of “increasing prior”, but that early stimuli arrive “before expected”, surprising me. Obviously, more experiments are needed.

Finding the optimal code most similar to the real one. Optimal code of One In A Million

>> codigo_oneinamillion=PideCodigo(codigo)
>> muestracodigo_fig(codigo_oneinamillion)

>> codigo_oneinamillion=rmfield(codigo_oneinamillion,’aa2codon’)
>> save codigo_oneinamillion codigo_oneinamillion

Now, look for the nearest ‘optimal’ code:

>> [codigo_final,errormin,errormedio]=acercacodigos(codigo,codigo_oneinamillion);
>> errormin
errormin =
0.7031
>> errormin*64
ans =
45

A bit nearer than yesterday.

>> sum(errormedio(:)==min(errormedio(:)))
ans =
4

And there are 4 permutations that match equally well (this also happened yesterday).

Optimal code similar to real code: First try

First, I generate 10^6 random codes, and choose the best one (alternatively, I could use one of the ‘optimal codes’ in the papers):

>> [codigo_opt,MS0_opt,MS_bases_opt,MS0,MS_bases]=optimizacodigo(codigo,10^6,1);
>> hist(MS0,100)

>> MS0_opt
MS0_opt =
4.4522
>> muestracodigo_fig(codigo_opt)

>> muestracodigo_fig(codigo)

>> save codigo_opt
>> [errormedio,matriz]=comparacodigos(codigo,codigo_opt);
>> errormedio
errormedio =
0.9531

Very different, as expected.

I find the code equivalent to the optimal one, most similar to the real genetic code:

>> [codigo_final,errormin,errormedio]=acercacodigos(codigo,codigo_opt);
>> errormin
errormin =
0.7656
>> errormin*64
ans =
49
>> muestracodigo_fig(codigo_final)

Not very-very similar. Only 15 (64-49) codons match.

Now I represent again the real and the most similar optimal codes, but colours represent polar requirement:

>> muestracodigo_fig(codigo,1)
>> figure
>> muestracodigo_fig(codigo_final,1)