影响因变量的定性变量或连续型变量称之为‘协变量’。
将那些难以控制的因素当做协变量,在排除协变量影响的条件下,分析可控因素对因变量的影响,从而更加准确的对可控因素进行评价。协变量之间没有交互效应,且与因素变量之间也没有交互效应。
考虑协变量的方差分析模型的一般形式如下:
因变量 = 因数主效应+因素间交互效应+协变量+随机变量
本例研究笔记本电脑各种因素(卖场,担保年限,提成)对销售额的影响,显著性a=0.05。(23个样本)

转换标签

把points(提成)变量作为协变量,只需在定义formula是列示出协变量即可。

可以看到都很显著啊。
参数估计

担保三年,market3的笔记本电脑下的拟销售额为:14.1897+3.0485+14.0594+8.5873
预测

多重比较检验


可以看到market2和market3对销售额有显著影响,一年担保和三年担保对销售额有显著影响。
python代码
import numpy as np
import pandas as pd
from scipy import stats
import statsmodels.api as sm
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['SimHei']#显示中文
plt.style.use('ggplot')
sale_points = pd.read_csv('sale_points.csv')
sale_points['market'] = sale_points['market'].astype('category')
sale_points['market'].cat.categories = ['market1','market2','market3']
sale_points['market'].cat.set_categories = ['market1','market2','market3']
sale_points['warranty'] = sale_points['warranty'].astype('category')
sale_points['warranty'].cat.categories = ['1 year','3 years']
sale_points['warranty'].cat.set_categories = ['1 year','3 years']
#使用statsmodels进行协方差分析,在定义formula的时候列示出协变量即可
from statsmodels.formula.api import ols
formula = 'sales ~ points+C(market)*C(warranty)'
sale_points_anova_cov = sm.stats.anova_lm(ols(formula,data = sale_points).fit())
sale_points_anova_cov
进行参数估计及预测
sale_points_anova_cov_est = ols(formula,data = sale_points).fit()
sale_points_anova_cov_est.summary()
sale_points_anova_cov_est = ols('sales ~ points+C(market)*C(warranty)-1',data = sale_points).fit()
sale_points_anova_cov_est.summary()
sale_points_anova_cov_est.fittedvalues
sale_points_influence = sale_points_anova_cov_est.get_influence()
sale_points_influence.summary_table()
多重比较检验
from statsmodels.stats.multicomp import pairwise_tukeyhsd
market_anova_post = pairwise_tukeyhsd(sale_points['sales'],sale_points['market'],alpha = 0.05)
market_anova_post.summary()
warranty__anova_post = pairwise_tukeyhsd(sale_points['sales'],sale_points['warranty'],alpha = 0.05)
warranty__anova_post.summary()
网友评论