Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

regress

Regresión lineal múltiple

Descripción

b = regress(y,X) devuelve un vector b de las estimaciones de los coeficientes de una regresión lineal múltiple de las respuestas del vector y a partir de los predictores de la matriz X. Para calcular las estimaciones de los coeficientes de un modelo con un término constante (intercepto), incluya una columna de unos en la matriz X.

ejemplo

[b,bint] = regress(y,X) también devuelve una matriz bint de intervalos de confianza del 95% de las estimaciones de los coeficientes.

[b,bint,r] = regress(y,X) también devuelve un vector adicional r de valores residuales.

[b,bint,r,rint] = regress(y,X) también devuelve una matriz rint de intervalos que se pueden utilizar para diagnosticar los valores atípicos.

ejemplo

[b,bint,r,rint,stats] = regress(y,X) también devuelve un vector stats que contiene el estadístico R2, el estadístico F y su valor de p así como una estimación de la varianza de error. La matriz X debe incluir una columna de unos para que el software calcule correctamente los estadísticos del modelo.

ejemplo

[___] = regress(y,X,alpha) utiliza un nivel de confianza del 100*(1-alpha)% para calcular bint y rint. Especifique cualquiera de las combinaciones de argumentos de salida de las sintaxis anteriores.

ejemplo

Ejemplos

contraer todo

Cargue el conjunto de datos carsmall. Identifique el peso y la potencia como predictores y el consumo de combustible como la respuesta.

load carsmall
x1 = Weight;
x2 = Horsepower;    % Contains NaN data
y = MPG;

Calcule los coeficientes de regresión de un modelo lineal con un término de interacción.

X = [ones(size(x1)) x1 x2 x1.*x2];
b = regress(y,X)    % Removes NaN data
b = 4×1

   60.7104
   -0.0102
   -0.1882
    0.0000

Represente los datos y el modelo.

scatter3(x1,x2,y,'filled')
hold on
x1fit = min(x1):100:max(x1);
x2fit = min(x2):10:max(x2);
[X1FIT,X2FIT] = meshgrid(x1fit,x2fit);
YFIT = b(1) + b(2)*X1FIT + b(3)*X2FIT + b(4)*X1FIT.*X2FIT;
mesh(X1FIT,X2FIT,YFIT)
xlabel('Weight')
ylabel('Horsepower')
zlabel('MPG')
view(50,10)
hold off

Cargue el conjunto de datos examgrades.

load examgrades

Utilice las notas del último examen como datos de respuesta y las dos primeras notas de examen como datos predictores.

y = grades(:,5);
X = [ones(size(grades(:,1))) grades(:,1:2)];

Realice una regresión lineal múltiple con alfa = 0,01.

[~,~,r,rint] = regress(y,X,0.01);

Diagnostique los valores atípicos hallando los intervalos residuales rint que no contengan 0.

contain0 = (rint(:,1)<0 & rint(:,2)>0);
idx = find(contain0==false)
idx = 2×1

    53
    54

Las observaciones 53 y 54 son posibles valores atípicos.

Cree un diagrama de dispersión de los valores residuales. Rellene los puntos correspondientes a los valores atípicos.

hold on
scatter(y,r)
scatter(y(idx),r(idx),'b','filled')
xlabel("Last Exam Grades")
ylabel("Residuals")
hold off

Cargue el conjunto de datos hald. Utilice heat como la variable de respuesta e ingredients como los datos predictores.

load hald
y = heat;
X1 = ingredients;
x1 = ones(size(X1,1),1);
X = [x1 X1];    % Includes column of ones

Realice una regresión lineal múltiple y genere los estadísticos del modelo.

[~,~,~,~,stats] = regress(y,X)
stats = 1×4

    0.9824  111.4792    0.0000    5.9830

Puesto que el valor de R2 de 0.9824 es cercano a 1 y el valor de p de 0.0000 es inferior al nivel de significación predeterminado de 0,05, existe una relación significativa de la regresión lineal entre la respuesta y y las variables predictoras de X.

Argumentos de entrada

contraer todo

Datos de respuesta, especificados como un vector numérico n por 1. Las filas de y corresponden a las distintas observaciones. y debe tener el mismo número de filas que X.

Tipos de datos: single | double

Datos predictores, especificados como una matriz numérica de n por p. Las filas de X corresponden a las observaciones y las columnas, a las variables predictoras. X debe tener el mismo número de filas que y.

Tipos de datos: single | double

Nivel de significación, especificado como escalar positivo. alpha debe estar entre 0 y 1.

Tipos de datos: single | double

Argumentos de salida

contraer todo

Estimaciones de los coeficientes de una regresión lineal múltiple, devueltas como vector numérico. b es un vector p por 1, donde p es el número de predictores en X. Si las columnas de X son linealmente dependientes, regress establece el número máximo de elementos de b en cero.

Tipos de datos: double

Límites de confianza inferior y superior de las estimaciones de los coeficientes, devueltos como matriz numérica. bint es una matriz p por 2, donde p es el número de predictores en X. La primera columna de bint contiene los límites de confianza inferiores de cada una de las estimaciones de los coeficientes; la segunda columna contiene los límites de confianza superiores. Si las columnas de X son linealmente dependientes, regress devuelve ceros en los elementos de bint que corresponden a los elementos cero de b.

Tipos de datos: double

Valores residuales, devueltos como vector numérico. r es un vector n por 1, donde n es el número de observaciones, o filas, en X.

Tipos de datos: single | double

Intervalos para diagnosticar los valores atípicos, devueltos como matriz numérica. rint es una matriz n por 2, donde n es el número de observaciones, o filas, en X. Si el intervalo rint(i,:) de la observación i no contiene ningún cero, el valor residual correspondiente es mayor de lo esperado en el 100*(1-alpha)% de las nuevas observaciones, lo que indica que se trata de un valor atípico. Para obtener más información, consulte Algoritmos.

Tipos de datos: single | double

Estadísticos del modelo, devueltos como vector numérico, incluidos el estadístico R2, el estadístico F y su valor de p así como una estimación de la varianza de error.

  • X debe incluir una columna de unos para que el modelo contenga un término constante. El estadístico F y su valor de p se calculan bajo este supuesto y no son correctos en los modelos sin una constante.

  • El estadístico F es el estadístico de la prueba F en el modelo de regresión. La prueba F busca una relación significativa en la regresión lineal entre la variable de respuesta y las variables predictoras.

  • El estadístico R2 puede ser negativo en los modelos sin una constante, lo que indica que el modelo no es adecuado para los datos.

Tipos de datos: single | double

Sugerencias

  • regress trata los valores NaN de X o y como valores faltantes. regress omite las observaciones con valores faltantes del ajuste de regresión.

Algoritmos

contraer todo

Intervalos residuales

En un modelo lineal, los valores observados de y y sus valores residuales son variables aleatorias. Los valores residuales tienen distribuciones normales con una media de cero, pero con distintas varianzas en los distintos valores de los predictores. Para situar los valores residuales en una escala comparable, regress “studentiza” los valores residuales. Es decir, regress divide los valores residuales entre una estimación de su desviación estándar independiente de su valor. Los valores residuales studentizados tienen distribuciones t con grados de libertad conocidos. Los intervalos devueltos en rint son desplazamientos de los intervalos de confianza del 100*(1-alpha)% de estas distribuciones t, centrados en los valores residuales.

Funcionalidad alternativa

regress es útil cuando se necesitan los argumentos de salida de la función y cuando se quiere repetir el ajuste de un modelo varias veces en un bucle. Si tiene que seguir investigando un modelo de regresión ajustado, cree un objeto de modelo de regresión lineal LinearModel con fitlm o stepwiselm. Un objeto LinearModel ofrece más funcionalidades que regress.

  • Utilice las propiedades de LinearModel para investigar un modelo de regresión lineal ajustado. Las propiedades del objeto incluyen información acerca de las estimaciones de los coeficientes, las estadísticas descriptivas, el método de ajuste y los datos de entrada.

  • Utilice las funciones del objeto LinearModel para predecir las respuestas y modificar, evaluar y visualizar el modelo de regresión lineal.

  • A diferencia de regress, la función fitlm no necesita una columna de unos en los datos de entrada. Los modelos creados mediante fitlm siempre incluyen un término de intercepto, a menos que se especifique que no se incluya con el argumento de par nombre-valor 'Intercept'.

  • Puede encontrar la información en la salida de regress mediante las propiedades y funciones del objeto LinearModel.

    Salida de regressValores equivalentes en LinearModel
    bConsulte la columna Estimate de la propiedad Coefficients.
    bintUse la función coefCI.
    rConsulte la columna Raw de la propiedad Residuals.
    rintNo compatible. En su lugar, utilice los valores residuales studentizados (propiedad Residuals) y los diagnósticos de observación (propiedad Diagnostics) para encontrar valores atípicos.
    statsConsulte la presentación del modelo en la ventana de comandos. Puede encontrar las estadísticas en las propiedades del modelo (MSE y Rsquared) y mediante la función anova.

Referencias

[1] Chatterjee, S., and A. S. Hadi. “Influential Observations, High Leverage Points, and Outliers in Linear Regression.” Statistical Science. Vol. 1, 1986, pp. 379–416.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a