Bonjour à tous,
j'ai cherché partout et je n'ai toujours pas résolu mon problème.
J'ai programmé en MATLAB et je voudrai le transférer sur R.
Si quelqu'un peut m'aidé sur la façon de procéder.
Merci d'avance.
##########################################################
n=300
r=0.9
x1=-2:0.1:2
y1=0:0.05:2
c=0.3
h=0.11
h1=0.1
xo=1
B=100
%h=(log(n)/n)^(1/3);
for k=1:B
s=1;
##########################################################
pcc=0.16;
while ((pcc<=0.375)||0.425<=pcc)
x(1)=0.5*randn;
for l=1:n
x(l+1)=r*x(l)+(sqrt(1-r^2))*randn;
y(l)=x(l+1);
end
##########################################################
% c=0.3
w=-c*log(rand(n,1));
for l=1:n
z(l)=min(y(l),w(l));
if z(l)==y(l)
d(l)=1;
else
d(l)=0;
end
end
pcc=1-(sum(d)/n);
s=s+1;
end
Pcc(k)=pcc
%h=n^(-1/4)
for l=1:n
X(l,:)=[z(l),x(l+1),d(l)];
end
X1=sortrows(X);
for l=1:length(y1)
for i=1:n
K(i)=(1/sqrt(2*pi))*exp((-1/2)*((xo-X1(i,2))/h1)^2);
H(i,l)=(1/sqrt(2*pi))*exp((-1/2)*((y1(l)-X1(i,1))/h)^2);
end
end
K
S=sum(K);
%for l=1:length(x1)
%for i=1:n
% B(i,l)=K(i,l)/S(l);
%end
%end
##########################################################
for l=1:n
for i=1:n
if X1(i,1)<=X1(l,1)
dd(i)=1;
else
dd(i)=0;
end
g(i)=(1-(1-X1(i,3))/(n-i+1))^dd(i);
end
if X1(l,1)<max(z)
G(l)=prod(g);
else
G(l)=0;
end
end
##########################################################
for l=1:length(y1)
for i=1:n
if G(i)~=0
Y(i)=(K(i)*H(i,l)*X1(i,3))/G(i);
Y1(i)=(h*K(i)*X1(i,3))/G(i);
%Y2(i)=h*K(i);
%Y(i)=(X1(i,3)*X1(i,1)*B(i,l))/G(i) ;
else
Y(i)=0;
% Y1(i)=0;
end
end
S1(l)=sum(Y);
m(k,l)=S1(l)/sum(Y1);
%m1(k,l)=S1(l)/sum(Y2);
end
end
G;
##########################################################
fyx=normpdf(y1,xo*r,1-r^2)
% Représentation à traver la médiane
for l=1:length(y1)
meden(l)=median(m(:,l));
%meden1(l)=median(m1(:,l));
end
CR=sum(Pcc)/B
plot(y1,fyx,'b',y1,meden,'g--','linewidth',1.5)
legend('True curve','Estimated curve')
%title('m(x)=rx, with r=0.9,n=300')
xlabel('x')
ylabel('f(y/x)')