《商务与经济统计》Python实现笔记(三)

方差分析

单因素方差分析(多个总体均值相等的假设检验)

import scipy.stats as stats

a = [58,64,55,66,67]
b = [58,69,71,64,68]
c = [48,57,59,47,49]

stats.f_oneway(a,b,c)
F_onewayResult(statistic=9.176470588235295, pvalue=0.0038184120755124806)
import pandas as pd
import numpy as np
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm

data = pd.read_excel(r"C:\Users\liuhao\Desktop\a.xls")

model = ols('数量 ~ 方法',data).fit()
anovat = anova_lm(model)
anovat

变量 df sum_sq mean_sq F PR(>F)
方法 2.0 520.0 260.000000 9.176471 0.003818
Residual 12.0 340.0 28.333333 NaN NaN

随机化区组设计

随机分组,减少分组设计导致的随机误差

import pandas as pd
import numpy as np
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm

data = pd.read_excel(r"C:\Users\liuhao\Desktop\s.xls")


model = ols('压力值 ~ 管理员+系统',data).fit()
anovat = anova_lm(model)
anovat
变量 df sum_sq mean_sq F PR(>F)
管理员 5.0 30.0 6.0 3.157895 0.057399
系统 2.0 21.0 10.5 5.526316 0.024181
Residual 10.0 19.0 1.9 NaN NaN

变量管理员为区组设计,系统间差异 p =0.024<0.05,差异显著

析因实验(多因素方差分析)

import pandas as pd
import numpy as np
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm

data = pd.read_excel(r"C:\Users\liuhao\Desktop\a.xls")

data.head()

model = ols('分数 ~ 课程+院校+课程*院校',data).fit()#课程*院校为交互作用
anovat = anova_lm(model)
anovat

课程 院校 分数
复习班 500
复习班 540
复习班 艺术 480
复习班 580
复习班 460
变量 df sum_sq mean_sq F PR(>F)
课程 2.0 6100.0 3050.000000 1.382872 0.299436
院校 2.0 45300.0 22650.000000 10.269521 0.004757
课程:院校 4.0 11200.0 2800.000000 1.269521 0.350328
Residual 9.0 19850.0 2205.555556 NaN NaN

你可能感兴趣的:(数据分析)