精华内容
下载资源
问答
  • 方差分析(Analysis of Variance,简称ANOVA),又称“变异数分析”或“F检验”,用于两个及两个以上样本均数差别的显著性检验。双因素方差分析即影响试验的因素有两个,且分为无交互作用和有交互作用两种情况。
  • 双因素方差分析的应用及Matlab实现.pdf
  • 双因素和多因素方差分析,Stata软件教学视频,适合多学科学习和教学
  • 双因素方差分析

    万次阅读 多人点赞 2019-08-12 14:28:53
    统计学简介之十七——双因素方差分析 一、双因素方差分析定义 二、分析过程 2.1 数据结构 2.2 分析步骤

    统计学简介之十七——双因素方差分析

    一、双因素方差分析定义

    这里写图片描述

    二、分析过程

    2.1 数据结构

    这里写图片描述
    这里写图片描述

    2.2 分析步骤

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    展开全文
  • 双因素方差分析 1. 双因素方差分析的理论 2. 双因素方差分析的实现

    双因素方差分析

    对于两因素的方差分析,基本思想和方法与单因素的方差分析相似,前提条件仍然是要满足独立、正态、方差齐性。所不同的是在双因素方差分析中有时会出现交互作用,即二因素的不同水平交差搭配对指标产生影响。下面先讨论无交互作用的双因素方差分析。

    1. 无交互作用的双因素方差分析

    例2:考虑三种不同形式的广告和五种不同的价格对某种商品销量的影响。选取某市15家大超市,每家超市选用其中的一个组合,统计出一个月的销量如下(设显著性水平为0.05):
    在这里插入图片描述
    在这里对商品销量的影响不仅有广告的影响,还有价格的影响,这就是双因素方差分析。

    1.1. 无交叉双因素分析的数学模型

    设A,B两个因素,因素A有r个水平 A 1 , A 2 , . . . , A r A_1, A_2, ..., A_r A1,A2,...,Ar; 因素B有s个水平 B 1 , B 2 , . . . , B s B_1, B_2, ..., B_s B1,B2,...,Bs. 对因素A,B的水平的每队组合(A,B)下进行一次独立实验得到观察值 X i j , i = 1 , 2 , . . . r , j = 1 , 2 , . . . , s , X_{ij}, i=1,2,...r, j=1,2,...,s, Xij,i=1,2,...r,j=1,2,...,s, 假定 X i j ∼ N ( μ i j , σ 2 ) X _{ij} \sim N(\mu_{ij}, \sigma^2) XijN(μij,σ2), 且各 X i j X_{ij} Xij相互独立。则不考虑交互作用的双因素方差分析模型可表示为:
    { X i j = μ i + α i + ε i j , i = 1 , 2 , . . . , r , j = 1 , 2 , . . . , s , ε i j ∼ N ( 0 , σ 2 ) , 且 各 ε i j 相 互 独 立 , ∑ i = 1 r α i = 0 , ∑ j = 1 s β j = 0 \begin{cases} X_{ij} = \mu_i + \alpha_i + \varepsilon_{ij}, i=1,2,...,r, j=1,2,...,s, \\ \varepsilon_{ij} \sim N(0, \sigma^2), 且各\varepsilon_{ij}相互独立, \\ \sum_{i=1}^r\alpha_i = 0, \quad \sum_{j=1}^s\beta_j=0 \end{cases} Xij=μi+αi+εij,i=1,2,...,r,j=1,2,...,s,εijN(0,σ2),εiji=1rαi=0,j=1sβj=0
    其中 μ = 1 r s ∑ i = 1 r ∑ j = 1 s μ i j \mu = \frac{1}{rs}\sum_{i=1}^r\sum_{j=1}^s\mu_{ij} μ=rs1i=1rj=1sμij为总平均. α i \alpha_i αi为因素A的第 i i i个水平的效应, β j \beta_j βj为因素B的第 j j j个水平的效应。

    在给定显著性水平 α \alpha α下,考虑如下假设检验:
    H 01 : α 1 = α 2 = . . . = α r = 0 H_{01}:\alpha_1=\alpha_2=...=\alpha_r=0 H01:α1=α2=...=αr=0 (因子A对指标的影响不显著)
    H 02 : β 1 = β 2 = . . . = β s = 0 H_{02}:\beta_1=\beta_2=...=\beta_s=0 H02:β1=β2=...=βs=0 (因子B对指标的影响不显著)

    类似于单因素方差分析,先对总离差平方和 S S T SS_T SST分解为因素A的效应平方和 S S A SS_A SSA,因素B的效应平方和 S S B SS_B SSB及误差平方和 S S E SS_E SSE, 即
    S S T = S S A + S S B + S S E SS_T = SS_A+SS_B+SS_E SST=SSA+SSB+SSE
    可以证明:
    1)当 H 01 H_{01} H01成立时,
    S S A σ 2 ∼ χ 2 ( r − 1 ) , S S E σ 2 ∼ χ 2 ( ( r − 1 ) ( s − 1 ) ) , \frac{SS_A}{\sigma^2} \sim \chi^2(r-1), \frac{SS_E}{\sigma^2}\sim \chi^2((r-1)(s-1)), σ2SSAχ2(r1),σ2SSEχ2((r1)(s1)),
    而且 S S A SS_A SSA S S E SS_E SSE独立,于是
    F A = S S A / ( r − 1 ) S S E / [ ( r − 1 ) ( s − 1 ) ] ∼ F ( r − 1 , ( r − 1 ) ( s − 1 ) ) F_A=\frac{SS_A/(r-1)}{SS_E/[(r-1)(s-1)]} \sim F(r-1, (r-1)(s-1)) FA=SSE/[(r1)(s1)]SSA/(r1)F(r1,(r1)(s1))
    2) 当 H 02 H_{02} H02成立时,
    S S B σ 2 ∼ χ 2 ( s − 1 ) \frac{SS_B}{\sigma^2} \sim \chi^2(s-1) σ2SSBχ2(s1)
    而且 S S B SS_B SSB S S E SS_E SSE独立,于是
    F B = S S B / ( s − 1 ) S S E / [ ( r − 1 ) ( s − 1 ) ] ∼ F ( s − 1 , ( r − 1 ) ( s − 1 ) ) F_B=\frac{SS_B/(s-1)}{SS_E/[(r-1)(s-1)]}\sim F(s-1, (r-1)(s-1)) FB=SSE/[(r1)(s1)]SSB/(s1)F(s1,(r1)(s1))
    所以, H 01 H_{01} H01 H 02 H_{02} H02的拒绝域分别为
    C A = { F A > F 1 − α ( r − 1 , ( r − 1 ) ( s − 1 ) ) } C_A = \{F_A > F_{1-\alpha}(r-1,(r-1)(s-1))\} CA={FA>F1α(r1,(r1)(s1))}
    C B = { F B > F 1 − α ( s − 1 , ( r − 1 ) ( s − 1 ) ) } C_B = \{F_B > F_{1-\alpha}(s-1, (r-1)(s-1))\} CB={FB>F1α(s1,(r1)(s1))}
    咱们知道单因素方差分析的计算量已经够大了,双因素方差分析计算量那就更大了,所以也必须依赖于统计分析软件进行处理,下面的部分讨论Python如何完成相关计算的。

    1.2. 双因素方差分析的实现

    针对例2中广告和价格对商品销量的影响分析展开计算。
    第一步:数据输入

    # 导入相关库
    import numpy as np
    import pandas as pd
    
    d = np.array([
        [276, 352, 178, 295, 273],
        [114, 176, 102, 155, 128],
        [364, 547, 288, 392, 378]
    ])
    df = pd.DataFrame(d)
    df.index=pd.Index(['A1','A2','A3'],name='ad') 
    df.columns=pd.Index(['B1','B2','B3','B4','B5'], name='price')
    

    此时在jupyter notebook下df输入结果如下:
    在这里插入图片描述
    第二步:数据处理
    数据处理的目的就是产生符合模型输入的数据类型,有关pandas数据处理,参考相关文档。

    df1 = df.stack().reset_index().rename(columns={0:'value'})
    df1
    

    在jupyter notebook下df1输出如下:
    在这里插入图片描述
    第三步:进行方差分析

    from statsmodels.formula.api import ols
    from statsmodels.stats.anova import anova_lm
    
    model = ols('value~C(ad) + C(price)', df1).fit()
    anova_lm(model)
    

    上述代码中ols的作用就是从一个公式和数据框创建一个模型。这里的公式语法就是由Patsy库提供支持的,C函数完成分类变量转换。
    anova_lm就是为模型产生一个方差分析表。

    在jupyer notebook下产生的输出如下:
    在这里插入图片描述
    第四步:结果分析和决策建议
    对广告因素来说,因为其 p = 0.000013 p=0.000013 p=0.000013小于显著性水平 α = 0.05 \alpha=0.05 α=0.05,因此拒绝原假设,有理由相信广告对商品的销量是有影响的。
    对价格因素来说,同样因为其 p = 0.005833 p=0.005833 p=0.005833小于显著性水平 α = 0.05 \alpha=0.05 α=0.05,因此也拒绝原假设,有理由相信对商品销量也是有影响的。

    2. 有交互作用的双因素方差分析

    例3:火箭的射程与燃料的种类和推进器的型号有关,现对四种不同的燃料与三种不同型号的推进器进行试验,每种组合各发射火箭两次,测得火箭的射程结果如下(设显著性水平为0.01):
    在这里插入图片描述
    这里火箭的射程不仅受到燃料类型和推进器型号的影响,同时还受到二者交互作用。这就好比两个好朋友甲和乙,甲的酒量也就半斤,儿乙的酒量有八两,但是两个好朋友聚到一起,把酒言欢结果一下喝掉了2斤多酒,哈哈哈。

    2.1. 数学模型

    设有两个因素A和B, 因素A有r个水平 A 1 , A 2 , . . . , A r A_1 ,A_2 , ... ,A_r A1,A2,...,Ar ; 因素B有s个水平 B 1 , B 2 , . . . , B s B_1, B_2,...,B_s B1,B2,...,Bs. 在许多情况下, 两因素A与B之间存在着一定程度的交互作用. 为了考察因素间的交互作用, 要求在两个因素的每一水平组合下进行重复试验. 设在每种水平组合 ( A i , B j ) (A_i, B_j) (Ai,Bj)下重复试验t次. 记第k次的观测值为 X i j k X_{ijk} Xijk.则有交互作用的两因素方差分析模型可表示为
    { X i j = μ + α i + β j + δ i j + ε i j k , i = 1 , 2 , . . . , r , j = 1 , 2 , . . . , s , k = 1 , 2 , . . . , t ε i j k ∼ N ( 0 , σ 2 ) , 且 各 ε i j k 相 互 独 立 ∑ i = 1 r α i = 0 , ∑ j = 1 s β j = 0 , ∑ i = 1 s δ i j = ∑ j = 1 s δ i j = 0 \begin{cases} X_{ij} = \mu + \alpha_i + \beta_j + \delta_{ij} + \varepsilon_{ijk}, i=1,2,...,r, j=1,2,...,s, k=1,2,...,t \\ \varepsilon_{ijk} \sim N(0, \sigma^2), 且各\varepsilon_{ijk}相互独立 \\ \sum_{i=1}^r\alpha_i=0, \sum_{j=1}^s\beta_j=0, \sum_{i=1}^s\delta_{ij}=\sum_{j=1}^s\delta_{ij}=0 \end{cases} Xij=μ+αi+βj+δij+εijk,i=1,2,...,r,j=1,2,...,s,k=1,2,...,tεijkN(0,σ2),εijki=1rαi=0,j=1sβj=0,i=1sδij=j=1sδij=0
    这里 α i \alpha_i αi为因素A的第 i i i个水平的效应, β j \beta_j βj为因素B的第 j j j个水平的效应, δ i j 为 A i 和 B j 的 交 互 效 应 , μ = 1 r s ∑ i = 1 r ∑ j = 1 s μ i j . \delta_{ij}为A_i和B_j的交互效应, \mu=\frac{1}{rs}\sum_{i=1}^r\sum_{j=1}^s\mu_{ij}. δijAiBjμ=rs1i=1rj=1sμij.

    检验的假设为:
    H 01 : α 1 = α 2 = . . . = α r = 0 ( 因 素 A 对 指 标 没 有 影 响 ) H 02 : β 1 = β 2 = . . . = β s = 0 ( 因 素 B 对 指 标 没 有 影 响 ) H 03 : δ 11 = δ 12 = . . . = δ r s = 0 ( 因 素 A 和 B 没 有 联 合 作 用 ) H_{01}: \alpha_1 = \alpha_2 =... = \alpha_r = 0 (因素A对指标没有影响)\\ H_{02}: \beta_1 = \beta_2 = ... = \beta_s = 0 (因素B对指标没有影响) \\ H_{03}: \delta_{11} = \delta_{12} = ... = \delta_{rs} = 0 (因素A和B没有联合作用) H01:α1=α2=...=αr=0AH02:β1=β2=...=βs=0BH03:δ11=δ12=...=δrs=0AB
    类似于无交互作用的方差分析, 总的离差平方和可分解为
    S S T = S S E + S S A + S S B + S S A × B SS_T = SS_E + SS_A + SS_B + SS_{A \times B} SST=SSE+SSA+SSB+SSA×B

    同时可以证明:
    1)当 H 01 H_{01} H01成立时,
    F A = S S A / ( r − 1 ) S S E / [ r s ( t − 1 ) ] ∼ F ( r − 1 , r s ( t − 1 ) ) F_A=\frac{SS_A/(r-1)}{SS_E/[rs(t-1)]} \sim F(r-1, rs(t-1)) FA=SSE/[rs(t1)]SSA/(r1)F(r1,rs(t1))
    2) 当 H 02 H_{02} H02成立时,
    F B = S S B / ( s − 1 ) S S E / [ r s ( t − 1 ) ] ∼ F ( s − 1 , r s ( t − 1 ) ) F_B=\frac{SS_B/(s-1)}{SS_E/[rs(t-1)]} \sim F(s-1, rs(t-1)) FB=SSE/[rs(t1)]SSB/(s1)F(s1,rs(t1))
    3) 当 H 03 H_{03} H03成立时,
    F A × B = S S A × B / [ ( r − 1 ) ( s − 1 ) ] S S E / [ r s ( t − 1 ) ] ∼ F ( ( r − 1 ) ( s − 1 ) , r s ( t − 1 ) ) F_{A\times B}=\frac{SS_{A\times B}/[(r-1)(s-1)]}{SS_E/[rs(t-1)]} \sim F((r-1)(s-1), rs(t-1)) FA×B=SSE/[rs(t1)]SSA×B/[(r1)(s1)]F((r1)(s1),rs(t1))

    2. 2. 有交互作用的方差分析的实现

    针对例3展开计算。
    步骤一:输入数据

    import numpy as np
    import pandas as pd 
    
    d = np.array([
    	[58.2, 52.6, 56.2, 41.2, 65.3, 60.8],
        [49.1, 42.8, 54.1, 50.5, 51.6, 48.4],
        [60.1, 58.3, 70.9, 73.2, 39.2, 40.7],
        [75.8, 71.5, 58.2, 51.0, 48.7,41.4]
    ])
    df = pd.DataFrame(d)
    df.index=pd.Index(['A1','A2','A3','A4'],name='燃料')
    df.columns=pd.Index(['B1','B1','B2','B2','B3','B3'],name='推进器')
    df
    

    在jupyter notebook下df输出如下:
    在这里插入图片描述

    第二步:数据处理

    df1 = df.stack().reset_index().rename(columns={0:'射程'})
    df1
    

    在jupyter notebook下df1的输出如下:
    在这里插入图片描述

    第三步:数据分析

    from statsmodels.formula.api import ols
    from statsmodels.stats.anova import anova_lm
    
    model = ols('射程~C(燃料) + C(推进器)+C(燃料):C(推进器)', df1).fit()
    anova_lm(model)
    

    在jupyter notebook下输出的方差分析表如下:
    在这里插入图片描述
    第四步:结果分析和决策建议
    对燃料因素来说,其 p = 0.025 p=0.025 p=0.025大于显著性水平 α = 0.01 \alpha=0.01 α=0.01. 所以其对射程没有影响;
    对推进器因素来说,其 p = 0.003506 p=0.003506 p=0.003506小于显著水平 α = 0.01 \alpha=0.01 α=0.01, 所以其对射程影响显著。
    对燃料和推进器的交互因素来说,其 p = 0.000062 p=0.000062 p=0.000062小于显著水平 α = 0.01 \alpha=0.01 α=0.01,所以其对射程影响显著。

    3. 总结

    通过单因素方差分析和双因素方差分析的讨论,回顾了统计分析中关于方差分析的理论知识,同时熟悉了Python中关于方差分析的相关库的使用,对实际数据分析的帮助作用还是比较大的。
    欢迎有志于数据分析的人士一起讨论,交流。

    展开全文
  • 双因素方差分析即影响试验的因素有两个,且分为无交互作用和有交互作用两种情况。 一、无交互作用的情况 由于不考虑交互作用的影响,对每一个因素组合 ( Ai , Bj ) 只需进行一次独立试验,称为无重复试验。 准备数据...

    概念

    方差分析(Analysis of Variance,简称ANOVA),又称“变异数分析”或“F检验”,用于两个及两个以上样本均数差别的显著性检验。双因素方差分析即影响试验的因素有两个,且分为无交互作用和有交互作用两种情况。

    一、无交互作用的情况

    由于不考虑交互作用的影响,对每一个因素组合 ( Ai , Bj ) 只需进行一次独立试验,称为无重复试验

    准备数据

    考虑三种不同形式的广告和五种不同的价格对某种商品销量的影响。选取某市15家大超市,每家超市选用其中的一个组合,统计出一个月的销量如下(设显著性水平为0.05):在这里插入图片描述
    将数据导入python,代码如下:

    dic_t2=[{'广告':'A1','价格':'B1','销量':276},{'广告':'A1','价格':'B2','销量':352},
           {'广告':'A1','价格':'B3','销量':178},{'广告':'A1','价格':'B4','销量':295},
           {'广告':'A1','价格':'B5','销量':273},{'广告':'A2','价格':'B1','销量':114},
           {'广告':'A2','价格':'B2','销量':176},{'广告':'A2','价格':'B3','销量':102},
           {'广告':'A2','价格':'B4','销量':155},{'广告':'A2','价格':'B5','销量':128},
           {'广告':'A3','价格':'B1','销量':364},{'广告':'A3','价格':'B2','销量':547},
           {'广告':'A3','价格':'B3','销量':288},{'广告':'A3','价格':'B4','销量':392},
           {'广告':'A3','价格':'B5','销量':378}]
    df_t2=pd.DataFrame(dic_t2,columns=['广告','价格','销量'])
    

    无交互作用的双因素方差分析

    接下来进行无交互作用的双因素方差分析,代码如下:

    def f_twoway(df_c,col_fac1,col_fac2,col_sta,interaction=False):
        df=df_c.copy()
        list_fac1=df[col_fac1].unique()
        list_fac2=df[col_fac2].unique()
        r=len(list_fac1)
        s=len(list_fac2)
        x_bar=df[col_sta].mean()
        list_Qa=[]
        list_Qb=[]
        for i in list_fac1:
            series_i=df[df[col_fac1]==i][col_sta]
            xi_bar=series_i.mean()
            list_Qa.append((xi_bar-x_bar)**2)
        for j in list_fac2:
            series_j=df[df[col_fac2]==j][col_sta]
            xj_bar=series_j.mean()
            list_Qb.append((xj_bar-x_bar)**2)
        Q=((df[col_sta]-x_bar)**2).sum()
        df_res=pd.DataFrame(columns=['方差来源','平方和','自由度','均方','F值','Sig.'])
        if interaction==False:
            Qa=s*sum(list_Qa)
            Qb=r*sum(list_Qb)
            Qw=Q-Qa-Qb
            Sa=Qa/(r-1)
            Sb=Qb/(s-1)
            Sw=Qw/((r-1)*(s-1))
            sig1=stats.f.sf(Sa/Sw,r-1,(r-1)*(s-1))
            sig2=stats.f.sf(Sb/Sw,s-1,(r-1)*(s-1))
            df_res['方差来源']=[col_fac1,col_fac2,'误差','总和']
            df_res['平方和']=[Qa,Qb,Qw,Q]
            df_res['自由度']=[r-1,s-1,(r-1)*(s-1),r*s-1]
            df_res['均方']=[Sa,Sb,Sw,'-']
            df_res['F值']=[Sa/Sw,Sb/Sw,'-','-']
            df_res['Sig.']=[sig1,sig2,'-','-']
            return df_res
        elif interaction==True:
            list_Qw=[]
            t=len(df[(df[col_fac1]==list_fac1[0]) & (df[col_fac2]==list_fac2[0])])
            for i in list_fac1:
                for j in list_fac2:
                    series_ij=df[(df[col_fac1]==i) & (df[col_fac2]==j)][col_sta]
                    list_Qw.append(((series_ij-series_ij.mean())**2).sum())
            Qa=s*t*sum(list_Qa)
            Qb=r*t*sum(list_Qb)
            Qw=sum(list_Qw)
            Qab=Q-Qa-Qb-Qw
            Sa=Qa/(r-1)
            Sb=Qb/(s-1)
            Sab=Qab/((r-1)*(s-1))
            Sw=Qw/(r*s*(t-1))
            sig1=stats.f.sf(Sa/Sw,r-1,r*s*(t-1))
            sig2=stats.f.sf(Sb/Sw,s-1,r*s*(t-1))
            sig3=stats.f.sf(Sab/Sw,(r-1)*(s-1),r*s*(t-1))
            df_res['方差来源']=[col_fac1,col_fac2,col_fac1+'*'+col_fac2,'误差','总和']
            df_res['平方和']=[Qa,Qb,Qab,Qw,Q]
            df_res['自由度']=[r-1,s-1,(r-1)*(s-1),r*s*(t-1),r*s*t-1]
            df_res['均方']=[Sa,Sb,Sab,Sw,'-']
            df_res['F值']=[Sa/Sw,Sb/Sw,Sab/Sw,'-','-']
            df_res['Sig.']=[sig1,sig2,sig3,'-','-']
            return df_res
        else:
            return 'interaction参数错误'
    f_twoway(df_t2,'广告','价格','销量')
    

    结果如下:
    在这里插入图片描述
    由于广告的p值 Sig. = 0.000 < 0.05,价格的 Sig. = 0.006 < 0.05,即可认为不同的广告形式、不同的价格均造成商品销量的显著差异。

    二、有交互作用的情况

    由于因素有交互作用,需要对每一个因素组合 ( Ai , Bj ) 分别进行 t 次 ( t ≥ 2 ) 重复试验,称这种试验为等重复试验

    准备数据

    火箭的射程与燃料的种类和推进器的型号有关,现对四种不同的燃料与三种不同型号的推进器进行试验,每种组合各发射火箭两次,测得火箭的射程结果如下(设显著性水平为0.01):
    在这里插入图片描述
    将数据导入Python,代码如下:

    dic_t3=[{'燃料':'A1','推进器':'B1','射程':58.2},{'燃料':'A1','推进器':'B1','射程':52.6},
           {'燃料':'A1','推进器':'B2','射程':56.2},{'燃料':'A1','推进器':'B2','射程':41.2},
           {'燃料':'A1','推进器':'B3','射程':65.3},{'燃料':'A1','推进器':'B3','射程':60.8},
           {'燃料':'A2','推进器':'B1','射程':49.1},{'燃料':'A2','推进器':'B1','射程':42.8},
           {'燃料':'A2','推进器':'B2','射程':54.1},{'燃料':'A2','推进器':'B2','射程':50.5},
           {'燃料':'A2','推进器':'B3','射程':51.6},{'燃料':'A2','推进器':'B3','射程':48.4},
           {'燃料':'A3','推进器':'B1','射程':60.1},{'燃料':'A3','推进器':'B1','射程':58.3},
           {'燃料':'A3','推进器':'B2','射程':70.9},{'燃料':'A3','推进器':'B2','射程':73.2},
           {'燃料':'A3','推进器':'B3','射程':39.2},{'燃料':'A3','推进器':'B3','射程':40.7},
           {'燃料':'A4','推进器':'B1','射程':75.8},{'燃料':'A4','推进器':'B1','射程':71.5},
           {'燃料':'A4','推进器':'B2','射程':58.2},{'燃料':'A4','推进器':'B2','射程':51.0},
           {'燃料':'A4','推进器':'B3','射程':48.7},{'燃料':'A4','推进器':'B3','射程':41.4},]
    df_t3=pd.DataFrame(dic_t3,columns=['燃料','推进器','射程'])
    

    有交互作用的双因素方差分析

    接下来进行有交互作用的双因素方差分析,代码如下:

    f_twoway(df_t3,'燃料','推进器','射程',interaction=True)
    

    结果如下:
    在这里插入图片描述
    从表中可以看出,Sig.(燃料) = 0.026 > 0.01,Sig.(推进器) = 0.004 < 0.01,Sig.(燃料*推进器) = 0.000 < 0.01。故可以认为燃料对火箭的射程没有显著影响,而推进器及燃料与推进器的交互作用影响显著。

    展开全文
  • 本博文源于《商务统计》中的方差分析,旨在解决讲述一般的双因素方差分析双因素方差分析是建立在单因素方差分析的基础上。

    本博文源于《商务统计》中的方差分析,旨在解决讲述一般的双因素方差分析。双因素方差分析是建立在单因素方差分析的基础上。
    统计|如何简单理解单因素方差分析

    双因素方差分析简要介绍

    双因素方差分析目的:分析两个因素对实验结果的影响。
    双因素方差分析种类:如果两个因素对实验结果的影响是相互独立的,分别判断单独因素对实验数据的影响,这时叫做无重复双因素方差分析。 如果有联系,那么叫做可重复双因素方差分析。

    双因素方差分析基本假定

    • 每个总体都服从正态分布:对于因素的每一个水平,其观察值是来自正态分布总体的简单随机样本。
    • 各个总体的方差必须相同:对于各组观察数据,是从具有相同方差的总体中抽取的。
    • 观察值是独立的

    双因素方差分析的数据结构

    在这里插入图片描述
    在这里插入图片描述

    无重复双因素方差分析的一般步骤

    提出假设

    对行因素提出的假设:
    H 0 : μ 1 = μ 2 = . . . = μ i = . . . . = μ k ( μ i 为 第 i 个 水 平 的 均 值 ) H 1 : μ i ( i = 1 , 2 , . . . . , k ) 不 全 相 等 H_0:\mu_1=\mu_2=...=\mu_i=....=\mu_k(\mu_i为第i个水平的均值)\\ H1:\mu_i(i=1,2,....,k)不全相等 H0:μ1=μ2=...=μi=....=μk(μii)H1:μi(i=1,2,....,k)
    对列因素提出的假设:
    H 0 : μ 1 = μ 2 = . . . = μ j = . . . . = μ r ( μ j 为 第 j 个 水 平 的 均 值 ) H 1 : μ j ( j = 1 , 2 , . . . . , r ) 不 全 相 等 H_0:\mu_1=\mu_2=...=\mu_j=....=\mu_r(\mu_j为第j个水平的均值)\\ H1:\mu_j(j=1,2,....,r)不全相等 H0:μ1=μ2=...=μj=....=μr(μjj)H1:μj(j=1,2,....,r)

    计算平方和(SS)

    跟单因素方差分析类似,也是需要计算一大堆的平方和:
    总 误 差 平 方 和 S S T = ∑ i = 1 k ∑ j = 1 r ( x i j − x ˉ ˉ ) 2 行 因 素 误 差 平 方 和 S S R = ∑ i = 1 k ∑ j = 1 r ( x i ⋅ − x ˉ ˉ ) 2 列 因 素 误 差 平 方 和 S S C = ∑ i = 1 k ∑ j = 1 r ( x ⋅ j − x ˉ ˉ ) 2 随 机 误 差 项 平 方 和 S S E = ∑ i = 1 k ∑ j = 1 r ( x i j − x i ⋅ ˉ − x ⋅ j ˉ + x ˉ ˉ ) 2 总误差平方和 SST=\sum_{i=1}^k\sum_{j=1}^r(x_{ij}-\bar{\bar{x}})^2\\ 行因素误差平方和 SSR=\sum_{i=1}^k\sum_{j=1}^r(x_{i·}-\bar{\bar{x}})^2\\ 列因素误差平方和 SSC=\sum_{i=1}^k\sum_{j=1}^r(x_{·j}-\bar{\bar{x}})^2\\ 随机误差项平方和 SSE=\sum_{i=1}^k\sum_{j=1}^r(x_{ij}-\bar{x_{i·}}-\bar{x_{·j}}+\bar{\bar{x}})^2 SST=i=1kj=1r(xijxˉˉ)2SSR=i=1kj=1r(xixˉˉ)2SSC=i=1kj=1r(xjxˉˉ)2SSE=i=1kj=1r(xijxiˉxjˉ+xˉˉ)2
    这里与单因素方差分析一样有一条关系:SST=SSR+SSC+SSE

    计算均方(MS)

    误差平方和除以相应的自由度
    三个平方和的自由度分别是:
    总 误 差 平 方 和 的 S S T 的 自 由 度 为 k r − 1 行 因 素 平 方 和 的 S S T 的 自 由 度 为 k − 1 列 因 素 平 方 和 的 S S T 的 自 由 度 为 r − 1 误 差 项 平 方 和 的 S S T 的 自 由 度 为 ( k − 1 ) × ( r − 1 ) 总误差平方和的SST的自由度为kr-1\\ 行因素平方和的SST的自由度为k-1\\ 列因素平方和的SST的自由度为r-1\\ 误差项平方和的SST的自由度为(k-1)\times{(r-1)}\\ SSTkr1SSTk1SSTr1SST(k1)×(r1)
    行因素的均方,记为MSR,计算公式为:

    M S R = S S R k − 1 MSR=\frac{SSR}{k-1} MSR=k1SSR
    列因素的均方,记为MSC,计算公式为:

    M S C = S S C r − 1 MSC=\frac{SSC}{r-1} MSC=r1SSC
    误差项的均方,记为MSE,计算公式为:

    M S E = S S E ( k − 1 ) ( r − 1 ) MSE=\frac{SSE}{(k-1)(r-1)} MSE=(k1)(r1)SSE

    计算检验统计量

    检验行因素的统计量
    F R = M S R M S E ∼ F ( k − 1 , ( k − 1 ) ( r − 1 ) ) F_R=\frac{MSR}{MSE}\sim{F(k-1,(k-1)(r-1))} FR=MSEMSRF(k1,(k1)(r1))
    检验列因素的统计量
    F C = M S C M S E ∼ F ( r − 1 , ( k − 1 ) ( r − 1 ) ) F_C=\frac{MSC}{MSE}\sim{F(r-1,(k-1)(r-1))} FC=MSEMSCF(r1,(k1)(r1))

    双因素方差分析表

    在这里插入图片描述

    统计决策

    将统计量的值F与给定的显著性水平 α \alpha α的临界值 F α F_\alpha Fα进行比较,作出对原假设H_0的决策

    • 根据给定的显著性水平 α \alpha α在F分布表中查找相应的临界值 F α F_\alpha Fα
    • F R > F α F_R\gt{F_\alpha} FR>Fα,拒绝原假设 H 0 H_0 H0,表明均值之间的差异是显著的,即所检验的行因素对观察值有显著影响。
    • F C > F α F_C\gt{F_{\alpha}} FC>Fα,拒绝原假设 H 0 H_0 H0,表明均值之间有显著差异,即所检验的列因素对观察值有显著影响.

    可重复双因素方差分析的一般步骤

    平方和的计算

    x i j l 为 对 应 于 行 因 素 的 第 i 个 水 平 和 列 因 素 的 第 j 个 水 平 的 第 l 行 的 观 察 值 x i ⋅ ˉ 为 行 因 素 的 第 i 个 水 平 的 样 本 均 值 x ⋅ j ˉ 为 列 因 素 的 第 j 个 水 平 的 样 本 均 值 x i j ˉ 对 应 行 因 素 的 第 i 个 水 平 和 列 因 素 的 第 j 个 水 平 的 组 合 的 样 本 均 值 x ˉ ˉ 为 全 部 n 个 观 察 值 的 总 均 值 x_{ijl}为对应于行因素的第i个水平和列因素的第j个水平的\\ 第l行的观察值\\ \bar{x_{i·}}为行因素的第i个水平的样本均值\\ \bar{x_{·j}}为列因素的第j个水平的样本均值\\ \bar{x_{ij}}对应行因素的第i个水平和列因素的第j个水平的\\ 组合的样本均值\\ \bar{\bar{x}}为全部n个观察值的总均值 xijlijlxiˉixjˉjxijˉijxˉˉn

    总 平 方 和 S S T = ∑ i = 1 k ∑ j = 1 r ∑ l = 1 m ( x i j l − x ˉ ˉ ) 2 行 变 量 平 方 和 S S R = r m ∑ i = 1 k ( x ˉ i ⋅ − x ˉ ˉ ) 2 列 变 量 平 方 和 S S C = k m ∑ j = 1 r ( x ˉ ⋅ j − x ˉ ˉ ) 2 交 互 用 平 方 和 : S S R C = m ∑ i = 1 k ∑ j = 1 r ( x ˉ i j − x ˉ i ⋅ − x ˉ ⋅ j + x ˉ ˉ ) 2 误 差 项 平 方 和 S S E = S S T − S S R − S S C − S S R C 总平方和 SST=\sum_{i=1}^k\sum_{j=1}^r\sum_{l=1}^m(x_{ijl}-\bar{\bar{x}})^2\\ 行变量平方和 SSR=rm\sum_{i=1}^k(\bar{x}_{i·}-\bar{\bar{x}})^2\\ 列变量平方和 SSC=km\sum_{j=1}^r(\bar{x}_{·j}-\bar{\bar{x}})^2\\ 交互用平方和:SSRC=m\sum_{i=1}^k\sum_{j=1}^r(\bar{x}_{ij}-\bar{x}_{i·}-\bar{x}_{·j}+\bar{\bar{x}})^2\\ 误差项平方和 SSE=SST-SSR-SSC-SSRC SST=i=1kj=1rl=1m(xijlxˉˉ)2SSR=rmi=1k(xˉixˉˉ)2SSC=kmj=1r(xˉjxˉˉ)2:SSRC=mi=1kj=1r(xˉijxˉixˉj+xˉˉ)2SSE=SSTSSRSSCSSRC
    这里与单因素方差分析一样有一条关系:SST=SSR+SSC+SSE+SSRC

    可重复双因素方差分析表

    在这里插入图片描述
    一样的可以看临界值F和F理论值大小,也可以看P值

    例子:品牌与地区是否影响彩电销售(单因素)

    在这里插入图片描述

    提出假设

    • 对品牌因素提出的假设为
      H 0 : μ 1 = μ 2 = μ 3 = μ 4 ( 品 牌 对 销 售 量 无 显 著 影 响 ) H 1 : μ i ( i = 1 , 2 , . . . , 4 ) 不 全 相 等 ( 有 显 著 影 响 ) H_0:\mu_1=\mu_2=\mu_3=\mu_4(品牌对销售量无显著影响)\\ H_1:\mu_i(i=1,2,...,4)不全相等(有显著影响) H0:μ1=μ2=μ3=μ4()H1:μi(i=1,2,...,4)()
    • 对地区因素提出的假设为

    H 0 : μ 1 = μ 2 = μ 3 = μ 4 = μ 5 ( 地 区 对 销 售 量 无 显 著 影 响 ) H 1 : μ j ( j = 1 , 2 , . . . , 5 ) 不 全 相 等 ( 有 显 著 影 响 ) H_0:\mu_1=\mu_2=\mu_3=\mu_4=\mu_5(地区对销售量无显著影响)\\ H_1:\mu_j(j=1,2,...,5)不全相等(有显著影响) H0:μ1=μ2=μ3=μ4=μ5()H1:μj(j=1,2,...,5)()

    检验统计量

    通过相应的统计软件进行绘制输出,
    在这里插入图片描述

    • 先比较 F 与 F c r i t F与F crit FFcrit的值大小
    • 或者比较P-value跟0.05对比

    统计决策

    9.46E-05小于0.05说明可以拒绝原假设,即品牌跟销量有显著性差异,0.14367>0.05,不拒绝原假设,即地区对销量没有显著性差异。数学结论如下:
    F R = 18.10777 > F α = 3.4903 , 拒 绝 原 假 设 H 0 , 说 明 彩 电 的 品 牌 对 销 售 量 有 显 著 影 响 。 F C = 2.100846 < F α = 3.2592 , 不 拒 绝 原 假 设 H 0 , 无 证 据 表 明 销 售 地 区 对 彩 电 的 销 售 量 有 显 著 影 响 F_R=18.10777\gt{F_\alpha}=3.4903,拒绝原假设H_0,说明彩电的品牌对销售量有显著影响。\\ F_C=2.100846\lt{F_\alpha}=3.2592,不拒绝原假设H_0,无证据表明销售地区对彩电的销售量有显著影响 FR=18.10777>Fα=3.4903,H0,FC=2.100846<Fα=3.2592,H0,

    展开全文
  • 现在老板想考察不同机型以及不同操作工人对产品的影响,为此他简单设计了一个小实验,让甲、乙、丙、丁四个工人操作机器Ⅰ、Ⅱ、Ⅲ各三天,其产品产量如下表所示,试分析工人和机器对产品产量是否有显著影响?...
  • ####双因素方差分析,可进行有交互作用与无交互作用 def f_twoway(df_c,col_fac1,col_fac2,col_sta,interaction=False): df=df_c.copy() list_fac1=df[col_fac1].unique() list_fac2=df[col_fac2].unique() r=...
  • 【数据分析双因素方差分析

    千次阅读 2020-03-15 18:49:41
    0.双因素方差分析的分类 无交互作用的方差分析 假定因素AAA和因素BBB的效应之间是相互独立的,不存在相互关系。 有交互作用的方差分析 假定因素AAA和因素BBB的结合会产生出一种新的效应。 无交互作用的双因素方差...
  • 基于双因素方差分析的推荐算法,陈健,庄瑜文,传统的协作过滤推荐系统分为基于用户的方法和基于项目的方法。基于用户的方法使用了依赖内存的最近邻查询算法,因此体现出可扩展
  • 本篇主要是用python实现无重复双因素方差分析,并用案例解析。代码可以直接调用。
  • 前面我们说了方差分析中的单因素方差分析,但是在...今天来看一下双因素方差分析。 PART 01 双因素方差分析 如果将汽车颜色看成是影响销量的A因素,不同地区看成是影响销量的B因素,同时对A因素和B因素进行分析...
  • 一、方差分析是什么? 方差分析(analysis of variance,ANOVA)是分析各类别变量(如区位)对数值变量(如销售额)的影响的一种统计方法。 二、方差分析的原理是什么? 方差分析是通过分析数据误差来检验类别...
  • 双因素A、B为例,A有5个水平,B有4个水平。 根据公式:总变异=A引发的变异+B引发的变异+AB交叉引发的变异+随机误差引发的变异(这个是修正后的模型) 所以自由度也满足上述关系,如果只有20个样本,df总=20-1=19,...
  • 双因素实验回归分析方差分析的转化,李晓燕,,本文简要介绍了回归分析方差分析的基本原理,并根据实际问题中的双因素无重复实验的具体实施情况分别采用回归分析法和方差分析
  • 双因素方差分析和单因素方差分析

    千次阅读 2018-04-12 15:29:00
    双因素方差分析(Double factor variance analysis) 有两种类型:一个是无交互作用的双因素方差分析,它假定因素A和因素B的效应之间是相互独立的,不存在相互关系;另一个是有交互作用的双因素方差分析,它假定因素A...
  • R语言双因素方差分析

    2021-08-08 13:50:27
    R语言双因素方差分析 条件: 各个样本是相互独立的随机; 各个样本来自正态总体; 具有方差齐性; 用途: 检验两个或多样本均数间的差异有无统计学意义;注:本均数的比较可以采用 t检验或 F检验,两个...
  • 由于方差分析的原理基本在所有概率论与数理统计的书中都可以找到,那么这里就直接以图片的形式呈现了。关于方差齐次性检验以后会补充。 简介 方差分析(Analysis of Variance,简称ANOVA),又称“变异数分析”,是R.A...
  • %双因素方差分析 clc,clear x0=[14,10 11,11 13,9 10,12 9,7 10,8 7,11 6,10 5,11 13,14 12,13 14,10];%测试样例 r=3;s=4;k=2;n=r*s*k;%A因素3个水平,B因素4个水平 s1=0;%用于计算总的平方和 f...
  • 7.2 双因素方差分析 7.2.2 双因素方差分析的数据结构 7.2.3 因素方差分析模型 1. 无交互作用的双因素方差分析模型 2. 有交互作用的双因素方差分析模型 7.3 一元线性回归分析 相关关系的类型 7.3.2 一元线性回归模型 ...
  • 作于: 2020-12-4 1:51
  • 作于: 2020-12-4 修改于: 2020-12-11 14:47
  • R语言中的双因素方差分析

    万次阅读 2016-02-24 10:34:20
    双因素方差分析中,受试者被分配到两因子的交叉类别组中。以基础安装中的Tooth- Growth数据集为例,随机分配60只豚鼠,分别采用两种喂食方法(橙汁或维生素C),各喂食方法中抗坏血酸含量有三种水平(0.5 mg、1...
  • 提出一种新的基于双因素方差分析的推荐算法DFAR。该方法基于成熟的统计学模型,简单易理解,具有很好的鲁棒性。实验结果证明,该算法相比传统的项目协作过滤算法取得了更好的推荐效果,并大大节省了算法所需要的空间...
  • 本篇主要是用python实现可重复双因素方差分析,并用案例解析。代码可以直接调用。
  • 双因素方差分析SPSS实现流程

    万次阅读 2016-01-04 20:39:04
    假定数据来自方差相等的正态分布。问:1)工人之间的差异是否显著?2)机器之间的差异是否显著?3)交互作用是否显著?(α=0.05) 使用SPSS进行数据输入(A1、A2、A3、A4表示四台机器,B1、B2、B3表示三个工人,A...
  • ''' ...#双因素方差分析 import pandas as pd import numpy as np from statsmodels.formula.api import ols from statsmodels.stats.anova import anova_lm data = pd.DataFrame([[1, 1, 32], ...
  • 统计学简介之十七——双因素方差分析

    万次阅读 多人点赞 2017-09-27 15:32:24
    统计学简介之十七——双因素方差分析

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,010
精华内容 6,804
关键字:

双因素方差分析