Introducción de tres minutos a la cuantificación (5): estadísticas inferenciales de rendimiento

hola, soy edamame. Esta serie utiliza los códigos y casos más optimizados para llevarlo rápidamente a comenzar con la cuantificación, y solo habla de los productos más secos. Amigos que quieren aprender a cuantificar pero no saben cómo comenzar, ¡apúrense y léanlo!

Revisión anterior:

Introducción de tres minutos a la cuantificación (1): adquisición de datos de mercado y dibujo de gráficos de velas japonesas

Introducción de tres minutos a la cuantificación (2): Introducción a la interfaz de datos de Tushare Pro

Introducción de tres minutos a la cuantificación (3): Calcule la tasa de rendimiento

Introducción de tres minutos a la cuantificación (4): análisis estadístico de datos de mercado

Este problema presentará cómo usar python para hacer estadísticas inferenciales. La estadística inferencial se refiere al método estadístico de inferir las características estadísticas generales en el caso de datos de muestra limitados. Las estadísticas inferenciales incluyen dos categorías, estimación de parámetros y prueba de hipótesis, que se describen en detalle a continuación. Maodou actualizará esta serie todos los fines de semana. Se recomienda que la recopile para facilitar el aprendizaje.

1. Dibujar un histograma de rendimiento

Tomemos como ejemplo la tasa de retorno del Índice de la Bolsa de Valores de Shanghái, calculemos la media muestral y la desviación estándar, y dibujemos un histograma.

Primero importe los paquetes relevantes y autentique la cuenta Tushare Pro.

import tushare as ts
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
​
pro = ts.pro_api('your token')
 
 

Obtenga los datos del índice compuesto de Shanghái desde este año:

df1=ts.get_k_data('sh',start='2023-01-01',end='2023-05-26')#上证指数
df1.tail()

devuelve de la siguiente manera:

Utilice el método aprendido antes para calcular la tasa de rendimiento diaria del Índice Compuesto de Shanghái:

df1['lagclose']=df1.close.shift(1)
df1['SHRet']=(df1['close']-df1['lagclose'])/df1['lagclose']
df1.tail()

devuelve de la siguiente manera:

Calcule la media de retorno y la desviación estándar:

SHRet=df1.SHRet.dropna()
mu=SHRet.mean()#均值
sigma=SHRet.std()#标准差
print('均值:{}'.format(mu))
print('标准差:{}'.format(sigma))

Se imprime de la siguiente manera:

Use una línea de código para dibujar el histograma de retorno del Índice de la Bolsa de Valores de Shanghái:

SHRet.hist()

devuelve de la siguiente manera:

También es posible agregar una curva de distribución normal al histograma:

plt.hist(SHRet,density=True)
plt.plot(np.arange(-0.04,0.04,0.002),stats.norm.pdf(np.arange(-0.04,0.04,0.002),mu,sigma))

devuelve de la siguiente manera:

2. Estimación de parámetros

Hay dos formas de estimación de parámetros: estimación puntual y estimación por intervalos.

La estimación puntual, también conocida como estimación de valor fijo, se refiere a un método de estimación de parámetros que utiliza directamente estimadores de muestra para estimar parámetros de población sin considerar el error de estimación en la estimación de parámetros. Por ejemplo, la media muestral se usa directamente para estimar la media poblacional y la varianza muestral se usa para estimar la varianza poblacional.

La estimación de intervalo tiene en cuenta la existencia de errores de estimación. Se basa en la estimación puntual para estimar el rango de intervalo del parámetro general. El rango de intervalo está garantizado por una cierta probabilidad. El límite inferior/límite superior del intervalo se resta del estadísticos muestrales/ más el error de estimación. Entre ellos, el rango de intervalo del parámetro general a inferir es el intervalo de confianza, y el grado de confiabilidad de la estimación es el grado de confianza.

Cuando el tamaño de la muestra es constante, si se aumenta el nivel de confianza, aumentará la amplitud del intervalo de confianza, lo que reducirá la precisión de la estimación; si se quiere mejorar la precisión, el nivel de confianza inevitablemente disminuirá. Por lo tanto, los requisitos de confianza y precisión a menudo son contradictorios.Si desea cumplir con los requisitos cuantitativos al mismo tiempo, debe aumentar el tamaño de la muestra.

1. Función de Python para la estimación de intervalos

Si se cumple la distribución normal o la distribución normal aproximada, entonces usamos la función de intervalo () de la clase de norma del módulo de estadísticas. Si es una distribución t, use la función interval() de la clase t del módulo de estadísticas.

stats.norm.interval(alpha, loc, scale)
stats.t.interval(alpha, df, loc, scale)

Donde alfa es el grado de confianza, df es el grado de libertad, para la estimación por intervalos de la distribución t, el grado de libertad es n-1, loc es la media muestral y la escala es el error estándar, calculado por stats. sem().

2. Estimación del rango de rentabilidad del Índice Compuesto de Shanghái

Estimación por intervalos de la tasa de retorno del Índice Compuesto de Shanghái, cuando el nivel de confianza es del 95%, la distribución t con un grado de libertad de 93, y el intervalo de confianza medio:

stats.t.interval(0.95,len(SHRet)-1,mu,stats.sem(SHRet))

devuelve de la siguiente manera:

Es decir, hay un 95% de probabilidad de que la media de la población esté dentro de este intervalo y un 5% de probabilidad de que no lo esté.

3. Prueba de hipótesis

La tarea de la estimación de parámetros es adivinar el valor del parámetro, mientras que el propósito de la prueba de hipótesis es probar si el valor del parámetro es igual a un cierto valor objetivo.

La idea central de la prueba de hipótesis se basa en el hecho de que los eventos de pequeña probabilidad (como p<0.01 o p<0.05) básicamente no sucederán en un experimento. Si bajo nuestra suposición, ocurre un evento de pequeña probabilidad, entonces la suposición puede considerarse inválida.

El estadístico utilizado por la prueba t obedece a la distribución t, o se desconoce la desviación estándar, y la media de la población obedece a la distribución normal. Las pruebas t comunes incluyen la prueba de una muestra, la prueba independiente de dos muestras y la prueba pareada correlacionada.

1. Prueba de una muestra

Por ejemplo, utilizamos los datos de rendimiento del índice compuesto de Shanghái este año para realizar una prueba t sobre si la tasa de rendimiento media es 0. Hipótesis nula H0: la tasa de retorno promedio del Índice Compuesto de Shanghai es 0, hipótesis alternativa: la tasa de retorno promedio del Índice Compuesto de Shanghai no es 0.

#只需输入我们要检验的变量以及要比较的数值即可
stats.ttest_1samp(SHRet,0)

devuelve de la siguiente manera:

p>0.05 significa que no podemos rechazar la hipótesis nula al 5% de nivel de significancia.

2. Prueba independiente de dos muestras

Por ejemplo, compruebe si los rendimientos medios del índice compuesto de Shanghái y el índice de componentes de Shenzhen son iguales.

Primero calcule la tasa de rendimiento del índice de componentes de Shenzhen:

df2=ts.get_k_data('sz',start='2023-01-01',end='2023-05-26')#深圳成指
df2['lagclose']=df2.close.shift(1)
df2['SHRet']=(df2['close']-df2['lagclose'])/df2['lagclose']
SZRet=df2.SHRet.dropna()

Pruebe si los rendimientos promedio del índice compuesto de Shanghai y el índice de componentes de Shenzhen son iguales:

#输入两个变量即可
stats.ttest_ind(SHRet,SZRet)

3. Prueba t de muestra pareada

#输入两个变量即可
stats.ttest_rel(SHRet,SZRet)

Lo anterior es todo el contenido de los productos secos de hoy. Maodou actualizará esta serie cada fin de semana y continuará compartiendo con ustedes la situación real de la estrategia cuantitativa de carga de torbellino todos los días de negociación. Bienvenidos a todos a que les gusten y sigan.

Backtest: descripción de la estrategia de carga de torbellino

Oferta Firme: Abril Datos Estratégicos Publicidad & Preguntas Frecuentes

Supongo que te gusta

Origin blog.csdn.net/weixin_37475278/article/details/130914532
Recomendado
Clasificación