2016-04-13 25 views
0

Bağlantı uzunluğunun üzerindeki mukavemet artışını çizmeye çalışıyorum. Aşağıdaki örnekte, beklediğim şeye benzer rastgele veriler oluşturulmaktadır. Sorun şu ki, tüm veri kümesinin tahmin seviyesini değil, her uzunluktaki tahmin seviyesini (her x değeri) tanımlamak istiyorum. Şekilde görüldüğü gibi, sonuçlar, daha yüksek olandan daha düşük x değerleri için daha az dağınıktır.MATLAB: Tahmin veri uyumu

Bu tip bir grafiğin nasıl oluşturulacağına dair bir ipucu verebilir misiniz? (Tahmin satırlarının fitden uzaklaştığı yerler)?

%Generate random data 
xVec = 0:0.001:1; 
Distr = makedist('Normal','mu',10,'sigma',1); 
for i=1:length(xVec) 
    yVec(i) = sqrt(xVec(i))*random(Distr); 
end 

%Create fit and prediction interval 
FitVec = fit(xVec',yVec','poly4'); 
pRvecConf = predint(FitVec,xVec,0.95,'observation','off'); 

%Plot 
plot(FitVec,xVec,yVec) 
hold on 
plot(xVec,pRvecConf,'m--') 
legend('Data','Fitted curve','Confidence','Location','se') 
xlabel('Length') 
ylabel('Strength') 

Aşağıdaki örnek, arsa bakınız: yVec sqrt (xVec) ile rasgele dağılım ağırlık tarafından oluşturulan yana See example plot here

cevap

2

, aslında xVec ile her bir x değeri için rastgele değişkenin varyans değiştirildi (sqrt karesi (xVec)). Yapabilecekleriniz, orijinalleri xVec ile ağırlıklandırarak güven aralığını yeniden hesaplamaktır. İşte senin dayalı bazı kodlar vardır

%Generate random data 
xVec = 0:0.001:1; 
Distr = makedist('Normal','mu',10,'sigma',1); 
for i=1:length(xVec) 
    yVec(i) = sqrt(xVec(i))*random(Distr); 
end 

%Create fit and confidence interval 
FitVec = fit(xVec',yVec','poly4') 
pRvecConf = predint(FitVec,xVec,0.95,'observation','off'); 

%get the fitting values 
fitY=feval(FitVec,xVec); 
%multiply the confidence interval with sqrt(xVec(i)).^2 
ci=(fitY-pRvecConf(:,1)).*xVec'; 
%get the weighted confidence interval 
Conf_new=[fitY-ci,fitY+ci]; 

%Plot 
plot(FitVec,xVec,yVec) 
hold on 
plot(xVec,Conf_new,'m--') 
legend('Data','Fitted curve','Confidence','Location','se') 
xlabel('Length') 
ylabel('Strength') 

sonuçta aşağıdaki gibi görünmelidir: Figure of Modified Confidence Interval