这个单因素分析一般是用来研究不同行业股票收益水平。
比如下面的代码:
- from statsmodels.stats.anova import anova_lm
- from statsmodels.formula.api import ols
- import pandas as pd
-
- df = pd.DataFrame(
- [
- [1.4, "one"], [1.5, "one"], [1.6, "one"], [0.1, "two"], [0.2, "two"], [0.3, "two"]
- ],
- columns=['rate', 'type']
- )
-
- if __name__ == '__main__':
- model = ols('rate ~type', data=df)
- data = model.fit()
- print(anova_lm(data))
- pass
运行截图如下:
解释下数据:
- df = pd.DataFrame(
- [
- [1.4, "one"], [1.5, "one"], [1.6, "one"], [0.1, "two"], [0.2, "two"], [0.3, "two"]
- ],
- columns=['rate', 'type']
- )
这里one是一个类型,two是一个类型,前面的数据,代表年增长率。
解释下代码:
model = osl(‘样本某一列 ~ 样本另一列’)
table1= anova.anova_lm(model)
结果中可以知道,p=0.0000091,默认情况下显著水平为0.05,也就是0.05以上代表2个类型,很相似,无关性小,0.05以下,代表2个类型不相似,也就是说不同行业股票收益水平不同。