El coeficiente de determinación R-Cuadrado





Artículo de Visual Chart Publicado en la Revista TRADERS´ - Noviembre

En análisis técnico, el uso de los canales de regresión nos permite evaluar la evolución de los precios durante una fase de crecimiento o decrecimiento. Su principal función radica en la búsqueda de la ruptura de dichos canales, con el fin de localizar cambios en la tendencia del mercado. El estadístico R-Cuadrado aporta una información similar a través de un gráfico oscilatorio, facilitando la labor de análisis. 

La Recta de Regresión

En análisis técnico, la recta de regresión se utiliza como método para modelar un periodo concreto del activo, a fin de poder establecer la dirección de tendencia gobernante.
Además de permitirnos conocer la tendencia general, la principal aportación del estudio de las rectas de regresión consiste en poder trazar un canal de precios que permita generar los niveles de soporte y resistencia a batir.
No cabe duda por tanto de la valía de este tipo de herramientas. Por tanto, el uso de indicadores derivados también tendrá un importante interés. Entre este grupo de indicadores, tenemos el Coeficiente de Determinación, denominado en estadística  R- Cuadrado, del cual hablaremos en este artículo.

El Coeficiente de Determinación R-Cuadrado 

En estadística, el principal propósito del coeficiente consiste en medir la calidad de predicción de un modelo, o dicho de otro modo, la capacidad que tiene el modelo para replicar los resultados.

¿Qué relación tiene este estadístico con la recta de regresión? Sin entrar en demasiados detalles técnicos, el coeficiente viene a representar la dispersión de los datos de la muestra a estudiar, precisamente, con respecto a la recta de regresión.

Si los datos de la muestra distan mucho de la línea de regresión, querrá decir que el modelo es poco significativo, y por tanto, el valor del coeficiente tenderá a disminuir. Mientras que si los datos se mantienen cerca de la recta, estaremos en el caso contrario y el coeficiente en tal caso tomará valores más altos.

En términos numéricos, el valor del estadístico oscila entre 0 y 1, donde un R-Cuadrado igual a cero estará informando que no hay relación entre los datos de la muestra y un  R-Cuadrado igual a uno indicará una perfecta relación entre los datos.

Representación

Desde el punto de vista financiero, podemos estudiar el coeficiente de determinación aplicándolo a los precios de un valor y que actúe para un determinado periodo de barras, pudiendo ver su evolución a lo largo del tiempo a través de un indicador.

En este artículo veremos la representación gráfica del coeficiente para Visual Chart, aportando además el código de programación del indicador correspondiente.

El resultado será un oscilador que se moverá desde cero hasta uno, si bien para facilitar la detección de tendencias estadísticamente significativas, el indicador tomará como referencia un valor crítico extraido de una tabla que a continuación mostraremos.

Este valor representa el punto a partir del cual se considera que el nivel de confianza del modelo es de al menos el 95% . El valor crítico variará en función del periodo de la muestra.

Periodo
Valor Crítico (95% confianza)
<=5
0.77
10
0.40
14
0.27
20
0.20
25
0.16
30
0.13
50
0.08
60
0.06
>=120
0.03



En el gráfico 1 podemos ver cómo se mostraría el R-Squaredpara Visual Chart 5.

En lo relativo a la representación, el indicador calculará de forma automática el nivel crítico según le corresponda, por lo que esta constante no tiene que ser calculada por el usario.

El indicador oscila alrededor del nivel crítico, haciendo coincidir los momentos de mayor confianza con las fases de distribución y los de menor confianza con las fases de acumulación. La lógica de este comportamiento es clara: Durante los periodos de incertidumbre, la dispersión de los precios aumenta, lo que se traduce en valor más bajos del  R-Cuadrado.

Interpretación de señales

Como decíamos al principio, el comportamiento del oscilador puede ser utilizado para detectar la ruptura de las líneas de tendencia.

Se pueden establecer los siguientes criterios como señales de alerta de cambio:

Final o agotamiento de las tendencias
Si durante una tendencia alcista o bajista fuertemente prolongada, el valor del R-Cuadrado comienza a decrecer, el indicador nos está avisando de un posible agotamiento del impulso.

Inicio de un nuevo impulso
Si el  R-Cuadrado cruza el umbral crítico e inicia un proceso de crecimiento, el indicador nos está avisando de un posible inicio de tendencia.

En el gráfico 2 podemos ver cómo actúan cada una de éstas alertas en función del estado del coeficiente. Cabe destacar el uso combinado de un segundo indicador (en este caso, el RegLineSlope) para determinar la dirección de la tendencia, puesto que éste dato no lo aporta el estadístico.

Siguiendo con el ejemplo, en el punto 1, detectamos la superación del nivel crítico por parte del coeficiente. Como el RegLineSlopees positivo, tenemos una alerta alcista. En el punto 2 el valor del coeficiente comienza a decrecer, señal de que los precios comienzan a dispersarse. En el punto 3 se vuelve a detectar la señal de cruce con el nivel crítico, si bien en esta ocasión el indicador de dirección nos avisa de que la pendiente es bajista, por lo que tendríamos la señal opuesta. Por último, en el punto 4 se produce una nueva señal de agotamiento.

Conclusiones

La finalidad por tanto de este estadístico es la permitirnos evaluar, de una forma objetiva, la fuerza de los movimientos del precio en cada momento, eliminando el factor humano de la ecuación.

Gracias a esto, podemos elaborar herramientas de operativa regidas por criterios puramente cuantitativos, hecho de vital importancia para poder ser más precisos a la hora de la toma de decisiones.

Por último, cabe destacar que el oscilador necesita del apoyo de otras herramientas de análisis tal y como hemos visto en el ejemplo, en especial aquellas que permitan detectar la dirección de la tendencia en cada momento.
   
G1) Aplicación del R-Cuadrado en EURO FX FUTURE CONT.



Cuanto más dispersos estén los datos respecto a su recta de regresión, menor será el resultado del coeficiente. En los puntos 1 y 2, los precios se mantienen próximos a la recta, de ahí que el indicador alcance las cotas más altas. Por otro lado, los puntos 3 y 4 son los más bajos debido a que los últimos precios han variado mucho (zonas de agotamiento o incertidumbre).
Fuente: Visual Chart
  
G2) Señales de alerta del R-Cuadrado en EURO BUND FUT. DEC 2013



Los puntos 1 y 3 marcan las señales de alerta de nueva tendencia, mientras que los puntos 3 y 4 las señales de agotamiento. Respecto a estos dos últimos, cuanto mayor sea el valor del R-Cuadrado (por encima de 0.8), más significativa será la señal de agotamiento.
Fuente: Visual Chart

 Código de programación


CODIGO DE PROGRAMACION DEL R-SQUARED PARA VISUAL CHART 5.
'¡¡ Summary
' Classification: Volatility
'Summary !!
'¡¡ Parameters
Dim RSQPeriod As Integer '10
'Parameters !!
Option Explicit
Public APP As OscUserApp
Implements Indicator
Public Sub Indicator_OnInitCalculate()
With APP
    .SetLineName 1, "R-SQR"
    .SetLineName 2, "R-SQR Critical"
End With
End Sub
Public Sub Indicator_OnCalculateBar(ByVal Bar As Long)
With APP
    Dim RSQ As Double
    Dim RSQCritical As Double
    Dim ipPosition As IndicatorPosition
    RSQ = Calc_RSquared(RSQPeriod)
    RSQCritical = calcLevel(RSQPeriod)
    ipPosition = ipNeutral
    If RSQ > RSQCritical Then ipPosition = ipBull
    If RSQ < RSQCritical Then ipPosition = ipBear
    .SetIndicatorValue RSQ, 1, 0, ipPosition
    .SetIndicatorValue RSQCritical, 2
    .SetBarRepresentation 0, 1, irHistogram
    .SetHistogramBand 2, 1
End With
End Sub
Private Function Calc_RSquared(per As Integer) As Double
    Dim i As Integer
    Dim x#, y#, div#
    Dim Ex#, Ey#, Exy#, Ex2#, Ey2#
    Dim Ex22#, Ey22#
    Dim r#
    For i = 1 To per
        x = i            ''x axis value
        y = APP.Close(i) ''y axis value
        Ex = Ex + x
        Ey = Ey + y
        Exy = Exy + x * y
        Ex2 = Ex2 + x ^ 2
        Ey2 = Ey2 + y ^ 2
    Next i
    Ex22 = Ex ^ 2
    Ey22 = Ey ^ 2
    If (per * Ex2 - Ex22) * (per * Ey2 - Ey22) > 0 Then
        div = Math.Sqr((per * Ex2 - Ex22) * (per * Ey2 - Ey22))
        If (div = 0) Then
            Calc_RSquared = 0
        Else
            r = (per * Exy - Ex * Ey) / div
            Calc_RSquared = r ^ 2
        End If
    Else
        Calc_RSquared = 0
    End If
End Function
Private Function calcLevel(per As Integer) As Double
    Dim per1#, lev1#, lenper#, levdif#
    If (per <= 5) Then
        calcLevel = 0.77
    ElseIf (per > 120) Then
        calcLevel = 0.03
    Else
        If ((per > 5) And (per <= 10)) Then
            per1 = 5: lev1 = 0.77: lenper = 5: levdif = 0.37
        ElseIf ((per > 10) And (per <= 14)) Then
            per1 = 10: lev1 = 0.4: lenper = 4: levdif = 0.13
        ElseIf ((per > 14) And (per <= 20)) Then
            per1 = 14: lev1 = 0.27: lenper = 6: levdif = 0.07
        ElseIf ((per > 20) And (per <= 25)) Then
            per1 = 20: lev1 = 0.2: lenper = 5: levdif = 0.04
        ElseIf ((per > 25) And (per <= 30)) Then
            per1 = 25: lev1 = 0.16: lenper = 5: levdif = 0.03
        ElseIf ((per > 30) And (per <= 50)) Then
            per1 = 30: lev1 = 0.13: lenper = 20: levdif = 0.05
        ElseIf ((per > 50) And (per <= 60)) Then
            per1 = 50: lev1 = 0.08: lenper = 10: levdif = 0.02
        ElseIf ((per > 60) And (per <= 120)) Then
            per1 = 60: lev1 = 0.06: lenper = 60: levdif = 0.03
        End If
        If lenper <> 0 Then
            calcLevel = (lev1 - (per - per1) * (levdif / lenper))
        Else
            calcLevel = 0
        End If
    End If
End Function
SubEnd Sub

Comentarios

Entradas populares de este blog

Como consultar el GAP % de un conjunto de valores

MANEJO DE PLANTILLAS. Eliminar plantilla de un gráfico activa

Estudio de las divergencias en el RSI