He estado luchando un tiempo en que;
En resumen, no puedo encontrar las ecuaciones que utiliza Excel para R2.

  • Aquí están mis datos :

    x: 1 2 3 4 5 6 7 8 9 10

    y: 4 9 1 2 1 1 8 5 5 1

  • Me graficar los datos, se ajuste a una ley de potencia de la función («agregar línea de tendencia») y el uso de la «agregar línea de tendencia > opciones > presentar el valor R cuadrado en el gráfico’

Valor mostrado :

R2 = 0.03008.

Problema 1

Si tengo que calcular en excel utilizando ‘RSQ () función (tomando los valores de los parámetros de Excel ha encontrado para el ajuste de la función), o a mano utilizando la definición (wikipedia)…
R2 = 0.0272

Problema 2

En Matlab, utilizando el ‘ajuste’ de la función, los parámetros para el ajuste de la función (y por supuesto en el R2) no son las que EXCEL ha encontrado.

Preguntas:

Así que aquí está mi pregunta principal :

¿Cómo Excel calcula el R2 en el «agregar línea de tendencia» función, como es obvio que no es el de la definición de la wikipedia (en inglés)?

y el bono de la pregunta:

Por qué Excel y Matlab no terminan con los mismos parámetros de ajuste?

muchas gracias!

%%%%%% EDICIÓN DE ABAJO! %%%%

Como una respuesta a un comentario;
Aquí está el código de Matlab que yo uso:

%% R-squared with the fit function
% use the fit function in Matlab, yobs being the data
[param, results] = fit(x,yobs,'power1');   

% R-squared from the fit function :
r_sq_from_fit = results.rsquare;

%% here I calculate "by hand" the R-squared, from the general definition (wikipedia!)
% calculates the fitting data yfit
yfit = (p_powerlaw.a).*x.^p_powerlaw.b;

% mean of the yobs, total sum of squares, and residual sum of squares
yobs_mean = mean(yobs);
SStot = sum((yobs-yobs_mean).^2);
SSres = sum((yobs-yfit).^2);

r_sq_hand = 1-SSres/SStot;

Me encuentro con los mismos valores si puedo obtener R-cuadrado de la fit función en Matlab o tengo que calcular «a mano». Matlab parece ser coherente y, al parecer, utiliza la definición estricta de R-cuadrado en su función…

Sin embargo; cuando comparo:

  • el R-cuadrado valor dado por Excel de RSQ() función
  • y el valor que obtener por cálculo a mano R-cuadrado a partir de la definición (teniendo claro el yfit valores que Excel me devolvió, no el de Matlab devuelve, como Excel y Matlab no están de acuerdo sobre los parámetros de ajuste!)

…Yo se obtienen diferentes valores! Excel : 0.027, como he dicho antes, y de la mano calculado : -0.1109 (!)

  • ¿Cómo te va a 0.0272 exactamente?
  • Puedo tomar los parámetros de Excel encontrado para el montaje (3.6153 y -0.217), calcular los valores ajustados (vamos a llamarlos yfit) y calcular el RSQ de la función con los argumentos de los datos (y) y los valores ajustados (yfit).
InformationsquelleAutor Lucile | 2014-06-30

3 Comentarios

  1. 2

    RSQ hace no devolver el valor de r cuadrado de un poder línea de tendencia, sino que devuelve el r-cuadrado para una línea de tendencia lineal. La ayuda de Excel lee «Para logarítmica, potencia, exponencial y líneas de tendencia, Excel utiliza una transformada modelo de regresión«, pero no soy capaz de encontrar ese modelo.

    Ver también Cómo Medir la bondad de un ajuste de una línea de tendencia a una ley de potencia

    • Ok gracias… es realmente confuso que Excel utiliza su propia definición de R-cuadrado en el «agregar línea de tendencia», que no es el mismo que el utilizado en la función RSQ! Y qué acerca de la diferencia en los parámetros de ajuste entre Excel y Matlab? con y=ax^b; Excel : a=3.61, b = -0.23 VS Matlab a = 4.81 y b=-0.18…!
    • El resultado es el mismo para la línea de tendencia lineal, que es lo que el RSQ función está diseñada para. Y, si usted está tratando de utilizar la línea de tendencia de los parámetros para los cálculos, se debe utilizar un= 3.61530123330863 y b = -0.216941129430519 y no la completan los números que utilizó anteriormente. Puede haber un problema en el que no me cree que sus datos proporciona un buen ajuste a una potencia de la línea de tendencia, pero creo que los artículos en el enlace podría dar una visión más clara en eso.
    • Sí, he redondeado los parámetros para calcular el ajuste de los valores de yfit, como intuitivamente pensé que la diferencia en el valor de R cuadrado no sería significativa cuando el redondeo de los parámetros (ahora tengo calculado utilizando de nuevo el no redondea los parámetros, es casi el mismo valor : 0.02723398). Estos datos se compone. Mis datos reales es una gran matriz. Pero el problema final es que si comparo ley de potencia montaje y ajuste exponencial en Excel, tengo que elegir la ley de potencia (mayor R-cuadrado), mientras que en Matlab, yo uso la exponencial. ese es un gran problema…
    • …Por último, sí, hay otras maneras -y mejor – que el estado de la bondad de ajuste de la no-lineales de guarniciones (Nash Sutcliffe en mi campo, o en el enlace de tu link), el problema es que en un papel, los «otros caminos» generalmente no son del todo comprendidos por los revisores y lectores…
    • Excel agregar línea de tendencia podría no ser la mejor optimización. Trate de usar el solver de Excel para encontrar los parámetros y comparar luego con Matlab
  2. 2

    Esta pregunta (¿cómo funciona el «agregar línea de tendencia» en Excel funciona de verdad?) también me desconcertó por un tiempo más largo, porque en una investigación que necesito estar seguro acerca de un origen de mis números. Porque no he encontrado mucho acerca de esto en internet, así que intenté varias vays de manual de R^2 (coeficiente de determinación) de evaluación con el fin de obtener los mismos resultados como Excel.

    Hice una misma observación como fue mencionado en la pregunta. Cuando uno utiliza «agregar línea de tendencia» lineal (y también logaritmic) la función de ajuste, la resultante R^2 y regresion parámetros son idénticos a manualmente los parámetros calculados. Pero cuando uno utiliza «agregar línea de tendencia» para otros no lineal de la función de ajuste (por ejemplo exponencial), la resultante R^2 y regresion parámetros difiere de forma manual los parámetros calculados.

    La solución de este problema ya fue parcialmente mencionado en la discusión aquí. Parece que para el ajuste no lineal de tendencia en los datos facilitados, Excel primaria linealizar el problema. Así, por ejemplo, para que se ajuste función exponencial y=a* exp(b * x) es principalmente la transforma en función de ln(y)=ln(a)+b*x. A continuación, la relación entre ln(y) y x es lineal. Después de la función lineal está ajustado en datos transformados mediante habitual estrategia de minimización de la suma de los cuadrados de los residuos. Así, la regresion parámetros ln(a) y b se obtienen. También R^2 se calcula de forma linealizada. Porque es lineal dependencia, RSQ() la función puede ser utilizado por Excel para el cálculo de R^2.

    Cuando uno sigue este procedimiento manualmente, y el resultado es una regresion parámetros y R^2 valores son idénticos a los proporcionados por Excel «agregar línea de tendencia».

    Así, en general, la regresion parámetros y R^2 los valores proporcionados por el Excel «agregar línea de tendencia» en caso de no-lineal regresion no son verdad no lineal pero lo más probable es obtenido después de la linealización del problema. Como consecuencia, estos parámetros difieren ligeramente de los parámetros calculados directamente sin ningún tipo de transformaciones.

    Nota acerca de R^2: tal y Como yo lo entiendo ahora, el R^2 para el caso lineal (mejor representa por una letra pequeña: r^2), que se calcula como la plaza de corelation coeficiente. (RSQ()=CORREL()^2=PEARSON()^2). Debido a esta relación, los valores de r^2 rango de entre el 0 – 1. Un conjunto de entrada de datos puede ser alterado por interceptar y/o pendiente sin cambiar de r^2 valor. Por otro lado, el R^2 para un caso no lineal (mejor denotado por el capital leter) se define de una forma diferente (ver Wikipedia). Sus valores no son parte de abajo se limita a valor 0 valor máximo 1 indicar el mejor ajuste. La alteración de un conjunto de entrada de datos por interceptar y/o pendiente de los cambios de la R^2 valor. R^2 funciona del mismo, así también en el caso lineal.

  3. 1

    Es porque estamos pidiendo la R2 de ajuste de una función de potencia en el gráfico (es decir, y = a(x)b), mientras que el RQS función en Excel le da la R2 para un ajuste lineal (es decir, y = a(x) + b). Sospecho que usted tiene un problema similar en Matlab. Tendría que publicar el código en Matlab a pesar de que, de lo contrario;d todo ser simplemente adivinando.

    • Hola! gracias, lo he editado mi pregunta con el Matlab códigos! La esperanza puede ayudar!

Dejar respuesta

Please enter your comment!
Please enter your name here