Empty Matrix with Dynamic Fertility Model

1 visualización (últimos 30 días)
Sarah Schutz
Sarah Schutz el 17 de Dic. de 2019
Editada: Ridwan Alam el 17 de Dic. de 2019
Hi all,
I am working on a question to replicate the simuelation portion of this code below. I have already generated the Emax matrix.
The code below is what I have. However, I am just getting a matrix full of 0's. Is there something I am doing wrong here?
simchoice = zeros(1000,20)
%Looping for 1000 women
for i = 1:1000
for t = 1:20
e = normrnd(0 , sqrt(sigma_e_sq),[1000,1])
if t == 1
N = 0
else
N = sum(simchoice(i, 1:(t-1)))
end
inc = alpha(5) + alpha(6) * t
simC_0 = inc - (p_n * N)
simC_1 = inc - (p_n * (N + 1))
simU_0 = simC_0 - (0.5*alpha(1)*simC_0*simC_0) + ((alpha(2) + e)*N) - (alpha(3)*N*N) + (alpha(4)*simC_0* N)
if t < 20
simV_0 = simU_0 + Emax((N+1), (t+1))
end
simchoice((i+1),t) = 0
if N <= 7
simU_1 = simC_1 - (0.5*alpha(1)*simC_1*simC_1) + ((alpha(2) + e)*(N+1)) - (alpha(3)*(N+1)*(N+1)) + (alpha(4)*simC_1* (N+1))
if t < 20
simV_1 = simU_1 + Emax((N+2), (t+1))
end
if simV_0 < simV_1
simchoice((i+1),t) = 1
end
end
end
end
  2 comentarios
Ridwan Alam
Ridwan Alam el 17 de Dic. de 2019
the question is not very clear, sorry. which matrix is empty here?
also, what is simchoice() and what is this statement supposed to do:
simchoice((i+1),t) = 0
Sarah Schutz
Sarah Schutz el 17 de Dic. de 2019
Hi! I'm sorry. simchoice is a matrix that I wanted to estimate the results of the simulation, but I am always getting a matrix full of zeros. It is supposed to represent the results of a simulation 1000 women about how many children they choose to have
If it helps this is the question I am trying to solve.

Iniciar sesión para comentar.

Respuestas (1)

Ridwan Alam
Ridwan Alam el 17 de Dic. de 2019
Editada: Ridwan Alam el 17 de Dic. de 2019
Looks like your indexing is off in some places:
simchoice = zeros(1000,20)
%Looping for 1000 women
for i = 1:1000
for t = 1:20
e = normrnd(0 , sqrt(sigma_e_sq),[1000,1])
if t == 1
N = 0
else
N = sum(simchoice(i, 1:(t-1)))
end
inc = alpha(5) + alpha(6) * t
simC_0 = inc - (p_n * N)
simC_1 = inc - (p_n * (N + 1))
simU_0 = simC_0 - (0.5*alpha(1)*simC_0*simC_0) + ((alpha(2) + e)*N) - (alpha(3)*N*N) + (alpha(4)*simC_0* N)
if t < 20
simV_0 = simU_0 + Emax((N), (t+1))
end
simchoice(i,t) = 0
if N <= 7
simU_1 = simC_1 - (0.5*alpha(1)*simC_1*simC_1) + ((alpha(2) + e)*(N+1)) - (alpha(3)*(N+1)*(N+1)) + (alpha(4)*simC_1* (N+1))
if t < 20
simV_1 = simU_1 + Emax((N+1), (t+1))
end
if simV_0 < simV_1
simchoice(i,t) = 1
end
end
end
end

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by