Evaluar un ajuste de curva
Este ejemplo muestra cómo trabajar con un ajuste de curva.
Cargar datos y ajustar una curva polinomial
load census curvefit = fit(cdate,pop,'poly3','normalize','on')
curvefit = Linear model Poly3: curvefit(x) = p1*x^3 + p2*x^2 + p3*x + p4 where x is normalized by mean 1890 and std 62.05 Coefficients (with 95% confidence bounds): p1 = 0.921 (-0.9743, 2.816) p2 = 25.18 (23.57, 26.79) p3 = 73.86 (70.33, 77.39) p4 = 61.74 (59.69, 63.8)
La salida muestra la ecuación modelo ajustada, los coeficientes ajustados y los límites de confianza para los coeficientes ajustados.
Representar el ajuste, datos, valores residuales y límites de predicción
plot(curvefit,cdate,pop)
Represente el ajuste de valores residuales.
plot(curvefit,cdate,pop,'Residuals')
Represente los límites de predicción del ajuste.
plot(curvefit,cdate,pop,'predfunc')
Evaluar el ajuste en un punto específico
Evalúe el ajuste en un punto específico definiendo un valor para x
con esta fórmula: y = fittedmodel(x)
.
curvefit(1991)
ans = 252.6690
Evaluar los valores de ajuste en muchos puntos
Evalúe el modelo en un vector de valores para extrapolar al año 2050.
xi = (2000:10:2050).'; curvefit(xi)
ans = 6×1
276.9632
305.4420
335.5066
367.1802
400.4859
435.4468
Obtenga límites de predicción en dichos valores.
ci = predint(curvefit,xi)
ci = 6×2
267.8589 286.0674
294.3070 316.5770
321.5924 349.4208
349.7275 384.6329
378.7255 422.2462
408.5919 462.3017
Represente el ajuste e intervalos de predicción a lo largo del rango de ajuste extrapolado. De forma predeterminada, el ajuste se representa sobre el rango de datos. Para ver los valores extrapolados del ajuste, defina el límite x superior de los ejes como 2050 antes de representar el ajuste. Para representar los intervalos de predicción, utilice predobs
o predfun
como tipo de gráfica.
plot(cdate,pop,'o') xlim([1900,2050]) hold on plot(curvefit,'predobs') hold off
Obtener la ecuación modelo
Indique el nombre del ajuste para mostrar la ecuación modelo, los coeficientes ajustados y los límites de confianza para los coeficientes ajustados.
curvefit
curvefit = Linear model Poly3: curvefit(x) = p1*x^3 + p2*x^2 + p3*x + p4 where x is normalized by mean 1890 and std 62.05 Coefficients (with 95% confidence bounds): p1 = 0.921 (-0.9743, 2.816) p2 = 25.18 (23.57, 26.79) p3 = 73.86 (70.33, 77.39) p4 = 61.74 (59.69, 63.8)
Para obtener solo la ecuación modelo, utilice formula
.
formula(curvefit)
ans = 'p1*x^3 + p2*x^2 + p3*x + p4'
Obtener nombres y valores de coeficiente
Especifique un coeficiente por su nombre.
p1 = curvefit.p1
p1 = 0.9210
p2 = curvefit.p2
p2 = 25.1834
Obtenga todos los nombres de coeficientes. Observe la ecuación de ajuste (por ejemplo, f(x) = p1*x^3+...
) para ver los términos del modelo para cada coeficiente.
coeffnames(curvefit)
ans = 4x1 cell
{'p1'}
{'p2'}
{'p3'}
{'p4'}
Obtenga todos los valores de coeficientes.
coeffvalues(curvefit)
ans = 1×4
0.9210 25.1834 73.8598 61.7444
Obtener los límites de confianza en los coeficientes
Utilizar los límites de confianza en los coeficientes le resultará útil para evaluar y comparar ajustes. Los límites de confianza en los coeficientes determinan su precisión. Los límites muy separados indican incertidumbre. Si los límites cruzan por cero para los coeficientes lineales, significa que no puede tener la certeza de que estos coeficientes difieran de cero. Si los términos de algunos modelos tienen coeficientes de cero, entonces no ayudarán con el ajuste.
confint(curvefit)
ans = 2×4
-0.9743 23.5736 70.3308 59.6907
2.8163 26.7931 77.3888 63.7981
Examinar estadísticas de bondad de ajuste
Para obtener estadísticas de bondad de ajuste desde la línea de comandos, puede:
Abrir la app Curve Fitter. En la pestaña Curve Fitter, en la sección Export, haga clic en Export y seleccione Export to Workspace para exportar su ajuste y su bondad de ajuste al área de trabajo.
Especificar el argumento de salida
gof
con la funciónfit
.
Recree el ajuste especificando el argumento gof
y los argumentos de salida para obtener estadísticas de bondad de ajuste e información de algoritmos de ajuste.
[curvefit,gof,output] = fit(cdate,pop,'poly3','normalize','on')
curvefit = Linear model Poly3: curvefit(x) = p1*x^3 + p2*x^2 + p3*x + p4 where x is normalized by mean 1890 and std 62.05 Coefficients (with 95% confidence bounds): p1 = 0.921 (-0.9743, 2.816) p2 = 25.18 (23.57, 26.79) p3 = 73.86 (70.33, 77.39) p4 = 61.74 (59.69, 63.8)
gof = struct with fields:
sse: 149.7687
rsquare: 0.9988
dfe: 17
adjrsquare: 0.9986
rmse: 2.9682
output = struct with fields:
numobs: 21
numparam: 4
residuals: [21x1 double]
Jacobian: [21x4 double]
exitflag: 1
algorithm: 'QR factorization and solve'
iterations: 1
Represente un histograma de los valores residuales para buscar una distribución más o menos normal.
histogram(output.residuals,10)
Representar el ajuste, datos y valores residuales
plot(curvefit,cdate,pop,'fit','residuals') legend Location SouthWest subplot(2,1,1) legend Location NorthWest
Buscar métodos
Enumere todos los métodos que puede utilizar con el ajuste.
methods(curvefit)
Methods for class cfit: argnames category cfit coeffnames coeffvalues confint dependnames differentiate feval fitoptions formula indepnames integrate islinear numargs numcoeffs plot predint probnames probvalues setoptions type
Para obtener más información sobre cómo usar un método de ajuste, consulte cfit
.