Python-统计学应用-方差分析
程序员文章站
2022-07-11 18:03:17
...
方差分析-ANOVA
方差分析一般步骤:
- 根据感兴趣的因素或因子的不同取值或水平将反应变量分成M组
- 提出原假设H0:因子对于反应变量没有影响;备择假设H1:因子对于观测变量有影响
- 求出样本数据中每组的岩本平均值与全样本均值,算出组内均方差MSF和组间均方差MSE
- 构建φ统计量并计算φ值:φ=MSF/MSE~F(M-1,N-M)
- 由显著性水平α(1%,5%,10%)查表比对F判断拒绝还是接受原假设。
离差平方和
方差分析原假设为:
不同因子水平下反应变量的均值是相同的。
- ESS(Error Sum of Square)
误差平方和,也称为组内偏差平方和。*度为N-M,即全样本数量减去组数。 - FSS(Factor Sum of Square)
因子平方和,也称为组间差异平方和。*度为M-1。 - TSS(Total Sum of Square)
总离差平方和。*度为N-1。
TSS=ESS+FSS
managers = pd.read_csv('managers.csv', index_col='Date')
MANA = managers[['HAM1', 'HAM3', 'HAM4']]
print(MANA)
ess1 = ((MANA.HAM1 - MANA.HAM1.mean()) ** 2).sum()
ess3 = ((MANA.HAM3 - MANA.HAM3.mean()) ** 2).sum()
ess4 = ((MANA.HAM4 - MANA.HAM4.mean()) ** 2).sum()
ess = ess1 + ess3 + ess4
t_mean = MANA.mean().mean()
fss = 132 * (((MANA.HAM1.mean() - t_mean) ** 2) + ((MANA.HAM3.mean() - t_mean) ** 2) +
((MANA.HAM4.mean() - t_mean) ** 2))
tss = fss + ess
显著性检验
φ=MSF / MSE=(FSS / (M-1)) / (ESS / (N-M))~F(M-1,N-M)
方差分析-Python操作
import pandas as pd
import statsmodels.stats.anova as anova
from statsmodels.formula.api import ols
单因素方差分析
returns = pd.DataFrame(pd.concat([MANA.HAM1, MANA.HAM3, MANA.HAM4]))
returns['Class'] = ['HAM1' for i in range(132)] + ['HAM3' for t in range(132)] + ['HAM4' for w in range(132)]
returns.columns = ['Return', 'Class']
print(returns)
model = ols('Return~C(Class)', data=returns).fit()
table1 = anova.anova_lm(model)
print(table1)
多因素方差分析
model = ols('Return~C(Class)+C(Year)', data=returns).fit()
table2 = anova.anova_lm(model)
print(table2)
析因方差分析
model = ols('Return~C(Class)*C(Year)', data=returns).fit()
table3 = anova.anova_lm(model)
print(table3)
推荐阅读
-
应用统计学与R语言实现学习笔记(三)——描述性统计
-
Python-统计学应用-方差分析
-
python-应用OpenCV和Python进行SIFT算法的实现
-
excel统计学生成绩技巧应用
-
Python-打印指定范围内的全部回文素数(高教社,《Python编程基础及应用》习题8-7) (10分) 回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。
-
应用统计学排名前十的大学:哪个学校好?哪个大学好?
-
现在看,在统计学或(理论/应用)计量经济学领域,python 能完美地代替 R 和 stata 吗?
-
现在看,在统计学或(理论/应用)计量经济学领域,python 能完美地代替 R 和 stata 吗?
-
python-应用OpenCV和Python进行SIFT算法的实现
-
Python-打印指定范围内的全部回文素数(高教社,《Python编程基础及应用》习题8-7) (10分) 回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。