smoothing with Gaussian Kernel for loop problem

조회 수: 4 (최근 30일)
KHOULOUD DABOUSSI
KHOULOUD DABOUSSI 2022년 11월 16일
댓글: Mathieu NOE 2022년 11월 22일
im having a probelm with smoothing the data "ys" using gaussian kernel function everytime i run the for loop i recieve uhat = ys and kerf = 0 0 0 0 0 ... anyone can help me?
ns =length(ys);
nv =length(tv);
lambda = 0.05;
tv = (1:1:1000)';
for i = 1 : ns
k=(tv-tv(i));
kerf=exp(-k.*k/2*(lambda^2))/(sqrt(2*pi)*lambda);
uhat(i)=sum(kerf.*ys(i))/sum(kerf);
end

채택된 답변

Mathieu NOE
Mathieu NOE 2022년 11월 18일
hello
try this
lambda = 0.05;
tv = (1:1:1000)';
nv =length(tv);
ys = sin(4*pi*tv./max(tv))+0.25*rand(nv,1);% dummy data
for i = 1 : nv
k=(tv-tv(i));
kerf=exp(-k.*k/2*(lambda^2))/(sqrt(2*pi)*lambda);
uhat(i)=sum(kerf(:).*ys(:))/sum(kerf);
end
plot(tv,ys,tv,uhat);
  댓글 수: 8
KHOULOUD DABOUSSI
KHOULOUD DABOUSSI 2022년 11월 21일
by chance,do you have any idea how to select the optimal bandwidth (lambda)? not using ksdensity?
Mathieu NOE
Mathieu NOE 2022년 11월 22일
hello again
well, statistics are not my field of expertise
there are some publications that describe some methods for optimal tuning of lambda
but then i's up to you to code that as a matlab function (would basically be your own version of ksdensity)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by