常见的t检验包括单样本t检验、独立样本t检验和配对(重复)样本t检验。
单样本t检验:检验单个变量的均值与目标值之间是否存在差异。如果总体均值已知,则样本均值与总体均值之间的差异显著性检验属于单样本t检验。
独立样本t检验:检验两组来自独立总体的样本其独立总体的均值是否一样,比如A股过去30个交易日的涨跌幅与美股过去30个交易日的涨跌幅就属于两个独立样本。
配对样本t检验:检验两个相关的样本是否来自具有相同均值的总体,比如A股过去30个交易日的涨跌幅与再往前的30个交易日的涨跌幅数据就属于两个相关样本。
import tushare as ts
pro = ts.pro_api()
df_daily_sh = pro.index_daily(ts_code='000001.SH')
df_daily_sz = pro.index_daily(ts_code='399001.SZ')
#上证指数涨跌幅的历史均值是多少。
df_daily_sh.pct_chg.mean()
#过去30天的涨跌幅数据的均值与历史均值之间是否存在显著差异:
from scipy.stats import ttest_1samp
avg = df_daily_sh.pct_chg.mean()
ttest_1samp(df_daily_sh.pct_chg[:30], avg)
#p值大于0.05,说明过去30天上证指数的波动情况并没有与历史均值之间产生过大的差异。
独立样本t检验
#上证指数和深证成指之间的关联度应该会更高。不过即使同涨同跌,他们的幅度可能也是有区别的,我们就来看一下它们的涨跌幅是否接近。
from scipy.stats import ttest_ind
ttest_ind(df_daily_sh.pct_chg[:30], df_daily_sz.pct_chg[:30])
配对样本t检验
上证指数前三十个交易日和更早的三十个交易日的涨跌幅数据是否是一致的。
from scipy.stats import ttest_rel
ttest_rel(df_daily_sh.pct_chg[:30], df_daily_sh.pct_chg[30:60])