【数据分析】双因素方差分析
0.双因素方差分析的分类
- 无交互作用的方差分析
假定因素AAA和因素BBB的效应之间是相互独立的,不存在相互关系。 - 有交互作用的方差分析
假定因素AAA和因素BBB的结合会产生出一种新的效应。
无交互作用的双因素方差分析
1.形式
假定要考察两个因素A,BA,BA,B对某项指标的影响,因素AAA取sss个水平A1,A2,…,AsA_{1}, A_{2}, \dots, A_{s}A1,A2,…,As,因素BBB取rrr个水平B1,B2,…,BrB_{1}, B_{2}, \dots, B_{r}B1,B2,…,Br,在A,BA,BA,B的每队组合水平(Ai,Bj)\left(A_{i}, B_{j}\right)(Ai,Bj)上作一次试验,试验结果为Xij,i=1,…,s;j=1,…,rX_{i j}, i=1, \dots, s ;\space j=1, \dots, rXij,i=1,…,s; j=1,…,r。所有XijX_{ij}Xij独立,数据列于下表:
因素 | B1B_1B1 | B2B_2B2 | … | BsB_sBs |
---|---|---|---|---|
A1A_1A1 | X11X_{11}X11 | X12X_{12}X12 | … | X1sX_{1s}X1s |
A2A_2A2 | X21X_{21}X21 | X22X_{22}X22 | … | X2sX_{2s}X2s |
… | … | … | … | … |
ArA_rAr | Xr1X_{r1}Xr1 | Xr2X_{r2}Xr2 | … | XrsX_{rs}Xrs |
2.前期工作
- 作出假设
设搭配(Ai,Bj)\left(A_{i}, B_{j}\right)(Ai,Bj)下的试验结果为XijX_{ij}Xij,假定Xij∼N(aij,σ2)X_{i j} \sim N\left(a_{i j}, \sigma^{2}\right)Xij∼N(aij,σ2),则问题归结为检验假设:
H0A:a1j=a2j=⋯=ajj,j=1,2,⋯,sH0B:ai1=ai2=⋯=air,i=1,2,⋯,r\begin{aligned} &H_{0 A}: a_{1 j}=a_{2 j}=\cdots=a_{j j}, j=1,2, \cdots, s\\ &H_{0 B}: a_{i 1}=a_{i 2}=\cdots=a_{i r}, i=1,2, \cdots, r \end{aligned} H0A:a1j=a2j=⋯=ajj,j=1,2,⋯,sH0B:ai1=ai2=⋯=air,i=1,2,⋯,r - 平方和分解
与单因素方差分析类似地:
SAS_ASA是由因素AAA的不同效应和随机误差引起的偏差
SBS_BSB是由因素BBB的不同效应和随机误差引起的偏差
SeS_eSe是由随机误差引起的偏差
记:
n=rs,Xˉi=1s∑j=1sXij,Xˉ⋅j=1r∑i=1rXijTi⋅=∑j=1sXij,T⋅j=∑i=1rXijXˉ=1rs∑i=1r∑j=1sXij,T=∑i=1r∑j=1sXiji=1,2,⋯,r;j=1,2,⋯,sn=r s, \bar{X}_{i}=\frac{1}{s} \sum_{j=1}^{s} X_{i j}, \bar{X}_{\cdot j}=\frac{1}{r} \sum_{i=1}^{r} X_{i j}\\ T_{i \cdot}=\sum_{j=1}^{s} X_{i j}, T_{\cdot j}=\sum_{i=1}^{r} X_{i j}\\ \bar{X}=\frac{1}{r s} \sum_{i=1}^{r} \sum_{j=1}^{s} X_{i j}, T=\sum_{i=1}^{r} \sum_{j=1}^{s} X_{i j}\\ i=1,2, \cdots, r ; j=1,2, \cdots, s n=rs,Xˉi=s1j=1∑sXij,Xˉ⋅j=r1i=1∑rXijTi⋅=j=1∑sXij,T⋅j=i=1∑rXijXˉ=rs1i=1∑rj=1∑sXij,T=i=1∑rj=1∑sXiji=1,2,⋯,r;j=1,2,⋯,s
于是:
ST=∑i=1r∑j=1sXij2−T2rs,SA=1s∑i=1rTi⋅2−T2rsSB=1r∑j=1sT⋅j2−T2rs,Se=ST−SA−SBS_{T}=\sum_{i=1}^{r} \sum_{j=1}^{s} X_{i j}^{2}-\frac{T^{2}}{r s}, S_{A}=\frac{1}{s} \sum_{i=1}^{r} T_{i \cdot}^{2}-\frac{T^{2}}{r s}\\ S_{B}=\frac{1}{r} \sum_{j=1}^{s} T_{\cdot j}^{2}-\frac{T^{2}}{r s},S_{e}=S_{T}-S_{A}-S_{B} ST=i=1∑rj=1∑sXij2−rsT2,SA=s1i=1∑rTi⋅2−rsT2SB=r1j=1∑sT⋅j2−rsT2,Se=ST−SA−SB
3.检验假设
比较SAS_ASA与SES_ESE的值来检验假设H0AH_{0A}H0A
比较SBS_BSB与SES_ESE的值来检验假设H0BH_{0B}H0B
- 定理
ST,SA,SBS_T,S_A,S_BST,SA,SB相互独立,且1σ2Se∼χ2((s−1)(r−1))\frac{1}{\sigma^{2}} S_{e} \sim \chi^{2}((s-1)(r-1))σ21Se∼χ2((s−1)(r−1))
当H0AH_{0A}H0A成立时,有:
FA=SA/σ2r−1/Se/σ2(r−1)(s−1)=(s−1)SASe∼F(r−1,(r−1)(s−1))F_{A}=\frac{S_{A} / \sigma^{2}}{r-1} / \frac{S_{e} / \sigma^{2}}{(r-1)(s-1)}=\frac{(s-1) S_{A}}{S_{e}} \sim F(r-1,(r-1)(s-1))FA=r−1SA/σ2/(r−1)(s−1)Se/σ2=Se(s−1)SA∼F(r−1,(r−1)(s−1))
当H0BH_{0B}H0B成立时,有:
FB=SB/σ2s−1/Se/σ2(r−1)(s−1)=(r−1)SASe∼F(s−1,(r−1)(s−1))F_{B}=\frac{S_{B} / \sigma^{2}}{s-1} / \frac{S_{e} / \sigma^{2}}{(r-1)(s-1)}=\frac{(r-1) S_{A}}{S_{e}} \sim F(s-1,(r-1)(s-1))FB=s−1SB/σ2/(r−1)(s−1)Se/σ2=Se(r−1)SA∼F(s−1,(r−1)(s−1)) - 拒绝域
H0AH_{0A}H0A的拒绝域为:
FA≥Fα(s−1,(s−1)(r−1))F_{A} \geq F_{\alpha}(s-1,(s-1)(r-1))FA≥Fα(s−1,(s−1)(r−1))
H0BH_{0B}H0B的拒绝域为:
FB≥Fα(r−1,(s−1)(r−1))F_{B} \geq F_{\alpha}(r-1,(s-1)(r-1))FB≥Fα(r−1,(s−1)(r−1)) - 方差分析表
|方差来源 |平方和 |自由度 |FFF值 |临界值 |
| :------------: | :------------: | :------------: | :------------: | :------------: |
|因素AAA |SAS_ASA |r−1r-1r−1 |FA=(s−1)SASeF_{A}=\frac{(s-1) S_{A}}{S_{e}}FA=Se(s−1)SA |FAαF_{A\alpha}FAα |
|因素BBB |SBS_BSB |s−1s-1s−1 |FB=(r−1)SBSeF_{B}=\frac{(r-1) S_{B}}{S_{e}}FB=Se(r−1)SB |FBαF_{B\alpha}FBα |
|试验误差 |SeS_eSe |(r−1)(s−1)(r-1)(s-1)(r−1)(s−1) | | |
|总和 |STS_TST |n−1n-1n−1 | | |
4.实现
- 例题
为了研究不同地点,不同季节大气飘尘含量的差异性,对地点AAA取三个不同水平,对季节BBB取四个不同水平,在不同组合(A_i,B_j)下各测一次大气飘尘含量,结果建下表,请问研究地点间的差异和季节间的差异对大气飘尘含量有无影响? (α=0.05)(\alpha=0.05)(α=0.05)
因素 | B1B_1B1 | B2B_2B2 | B3B_3B3 | B4B_4B4 |
---|---|---|---|---|
A1A_1A1 | 1.150 | 0.614 | 0.475 | 0.667 |
A2A_2A2 | 1.200 | 0.620 | 0.420 | 0.880 |
A3A_3A3 | 0.940 | 0.379 | 0.200 | 0.540 |
Excel求解
录入数据:
在方差分析选项中选择“无重复双因素方差分析”,选中分析区域,α\alphaα设为0.05,单击“确定”:
可在新工作表中看到结果:
MATLAB求解
function annova_solve()x = [1.150, 0.614, 0.475, 0.667;1.200, 0.620, 0.420, 0.880;0.940, 0.379, 0.200, 0.540];p = anova2(x);
end
运行结果:
- Python求解
import pandas as pd
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lmdf = pd.read_csv('D:\Data\ex_2way_annova.csv')
print(df)
model = ols('content ~ season + location', data = df).fit()
table = anova_lm(model)
print(table)
运行结果:
- 结论
FA=23.848>FAα=10.92,FB=88.848>FBα=9.78F_{A}=23.848>F_{A \alpha}=10.92, F_{B}=88.848>F_{B \alpha}=9.78FA=23.848>FAα=10.92,FB=88.848>FBα=9.78,拒绝H0A,H0BH_{0A},H_{0B}H0A,H0B,认为两个因素都有影响。
有交互作用的双因素方差分析
1.形式
假定要考察两个因素A,BA,BA,B对某项指标的影响,因素AAA取sss个水平A1,A2,…,AsA_{1}, A_{2}, \dots, A_{s}A1,A2,…,As,因素BBB取rrr个水平B1,B2,…,BrB_{1}, B_{2}, \dots, B_{r}B1,B2,…,Br,在A,BA,BA,B的每队组合水平(Ai,Bj)\left(A_{i}, B_{j}\right)(Ai,Bj)上尸检结果独立地服从N(μij,σ2)N\left(\mu_{i j}, \sigma^{2}\right)N(μij,σ2)分布,如下表:
因素 | B1B_1B1 | B2B_2B2 | … | BsB_sBs |
---|---|---|---|---|
A1A_1A1 | X111,...,X11tX_{111},...,X_{11t}X111,...,X11t | X121,...,X12tX_{121},...,X_{12t}X121,...,X12t | … | X1s1,...,X1stX_{1s1},...,X_{1st}X1s1,...,X1st |
A2A_2A2 | X211,...,X21tX_{211},...,X_{21t}X211,...,X21t | X221,...,X22tX_{221},...,X_{22t}X221,...,X22t | … | X2s1,...,X2stX_{2s1},...,X_{2st}X2s1,...,X2st |
… | … | … | … | … |
ArA_rAr | Xr11,...,Xr1tX_{r11},...,X_{r1t}Xr11,...,Xr1t | Xr21,...,Xr2tX_{r21},...,X_{r2t}Xr21,...,Xr2t | … | Xrs1,...,XrstX_{rs1},...,X_{rst}Xrs1,...,Xrst |
2.参数
为了方便研究,令:
μ=1rs∑i=1r∑j=1sμijμi.=1s∑j=1sμijαi=μi.−μi=1,2,…,rμ.j=1r∑i=1rμijβj=μ.j−μj=1,2,…,s\begin{aligned} &\mu=\frac{1}{r s} \sum_{i=1}^{r} \sum_{j=1}^{s} \mu_{i j}\\ &\mu_{i .}=\frac{1}{s} \sum_{j=1}^{s} \mu_{i j} \quad \alpha_{i}=\mu_{i .}-\mu \quad i=1,2, \ldots, r\\ &\mu_{. j}=\frac{1}{r} \sum_{i=1}^{r} \mu_{i j} \quad \beta_{j}=\mu_{. j}-\mu \quad j=1,2, \ldots, s \end{aligned}μ=rs1i=1∑rj=1∑sμijμi.=s1j=1∑sμijαi=μi.−μi=1,2,…,rμ.j=r1i=1∑rμijβj=μ.j−μj=1,2,…,s
称μ\muμ为一般平均值,αi\alpha_{i}αi为因素AAA的第iii个水平的效应,有如下关系式:
∑i=1rαi=0∑j=1sβj=0\sum_{i=1}^{r} \alpha_{i}=0 \quad \sum_{j=1}^{s} \beta_{j}=0i=1∑rαi=0j=1∑sβj=0
若μij≠μ+αi+βj\mu_{i j} \neq \mu+\alpha_{i}+\beta_{j}μij=μ+αi+βj,则称γij=μij−μ−αi−βj\gamma_{i j}=\mu_{i j}-\mu-\alpha_{i}-\beta_{j}γij=μij−μ−αi−βj为因素AAA的第iii个水平与因素BBB的第jjj个水平的交互效应,它们满足关系式:
∑i=1rγij=0,j=1,2,…,s∑j=1sγij=0,i=1,2,…,r\begin{aligned} &\sum_{i=1}^{r} \gamma_{i j}=0, \quad j=1,2, \ldots, s\\ &\sum_{j=1}^{s} \gamma_{i j}=0, \quad i=1,2, \ldots, r \end{aligned}i=1∑rγij=0,j=1,2,…,sj=1∑sγij=0,i=1,2,…,r
3.模型与假设
- 有交互的双因素方差分析模型
Xijk=μ+αi+βj+γij+εijk∑i=1rαi=0,∑j=1sβj=0∑i=1rγij=0,∑j=1sγij=0εijk∼N(0,σ2),且相互独立i=1,2,…,r;j=1,2,…,s;k=1,2,…,t\begin{aligned} &X_{i j k}=\mu+\alpha_{i}+\beta_{j}+\gamma_{i j}+\varepsilon_{i j k}\\ &\sum_{i=1}^{r} \alpha_{i}=0, \quad \sum_{j=1}^{s} \beta_{j}=0\\ &\sum_{i=1}^{r} \gamma_{i j}=0, \quad \sum_{j=1}^{s} \gamma_{i j}=0\\ &\varepsilon_{i j k} \sim N\left(0, \sigma^{2}\right),且相互独立 \end{aligned}\\ i=1,2, \ldots, r ; \quad j=1,2, \ldots, s ; \quad k=1,2, \ldots, t Xijk=μ+αi+βj+γij+εijki=1∑rαi=0,j=1∑sβj=0i=1∑rγij=0,j=1∑sγij=0εijk∼N(0,σ2),且相互独立i=1,2,…,r;j=1,2,…,s;k=1,2,…,t - 需要检验的假设
H01:α1=α2=…=αr=0H02:β1=β2=…=βs=0H03:γyˉ=0,∀i,j\begin{aligned} &H_{01}: \alpha_{1}=\alpha_{2}=\ldots=\alpha_{r}=0\\ &H_{02}: \beta_{1}=\beta_{2}=\ldots=\beta_{s}=0\\ &H_{03}: \gamma_{\bar{y}}=0, \quad \forall i, j \end{aligned}H01:α1=α2=…=αr=0H02:β1=β2=…=βs=0H03:γyˉ=0,∀i,j
4.平方和分解
- 记号引入
X=1rst∑i=1r∑j=1s∑k=1tXijkXij⋅=∑k=1tXijk,Xˉij⋅=1tXij⋅,i=1,2,…,r;j=1,2,…,sXi⋅⋅=∑j=1s∑k=1tXijk,Xˉi⋅⋅=1stXi⋅⋅,i=1,2,…,rX⋅j⋅=∑j=1r∑k=1tXijk,Xˉ⋅j⋅=1rtXi⋅⋅,j=1,2,…,sX=\frac{1}{rst} \sum_{i=1}^{r} \sum_{j=1}^{s} \sum_{k=1}^{t} X_{i j k}\\ \begin{aligned} &X_{ij\cdot} =\sum_{k=1}^{t} X_{i j k}, \quad \bar{X}_{i j\cdot} =\frac{1}{t} X_{i j\cdot} , \quad i=1,2, \ldots, r ; \quad j=1,2, \ldots, s\\ &X_{i\cdot\cdot} =\sum_{j=1}^{s} \sum_{k=1}^{t} X_{i j k}, \quad \bar{X}_{i \cdot \cdot}=\frac{1}{s t} X_{i\cdot\cdot}, \quad i=1,2, \ldots, r\\ &X_{\cdot j\cdot}=\sum_{j=1}^{r} \sum_{k=1}^{t} X_{i j k}, \quad \bar{X}_{\cdot j\cdot}=\frac{1}{r t} X_{i\cdot\cdot}, \quad j=1,2, \ldots, s \end{aligned}X=rst1i=1∑rj=1∑sk=1∑tXijkXij⋅=k=1∑tXijk,Xˉij⋅=t1Xij⋅,i=1,2,…,r;j=1,2,…,sXi⋅⋅=j=1∑sk=1∑tXijk,Xˉi⋅⋅=st1Xi⋅⋅,i=1,2,…,rX⋅j⋅=j=1∑rk=1∑tXijk,Xˉ⋅j⋅=rt1Xi⋅⋅,j=1,2,…,s
由此可得:
Xˉ=μ+sˉXˉij⋅=μ+αi+βj+γij+εˉij⋅Xˉi⋅⋅=μ+αj+εˉi⋅⋅Xˉ⋅j⋅=μ+βj+εˉ⋅j⋅\begin{aligned} &\bar{X}=\mu+\bar{s}\\ &\bar{X}_{i j\cdot}=\mu+\alpha_{i}+\beta_{j}+\gamma_{i j}+\bar{\varepsilon}_{i j\cdot}\\ &\bar{X}_{i\cdot\cdot}=\mu+\alpha_{j}+\bar{\varepsilon}_{i\cdot\cdot}\\ &\bar{X}_{\cdot j \cdot}=\mu+\beta_{j}+\bar{\varepsilon}_{\cdot j\cdot} \end{aligned}Xˉ=μ+sˉXˉij⋅=μ+αi+βj+γij+εˉij⋅Xˉi⋅⋅=μ+αj+εˉi⋅⋅Xˉ⋅j⋅=μ+βj+εˉ⋅j⋅ - 平方和分解
ST=∑i=1r∑j=1s∑k=1t(Xijk−Xˉ)2=SE+SA+SB+SA×B\begin{aligned} &S_{T}=\sum_{i=1}^{r} \sum_{j=1}^{s} \sum_{k=1}^{t}\left(X_{i j k}-\bar{X}\right)^{2}\\ &=S_{E}+S_{A}+S_{B}+S_{A \times B} \end{aligned}ST=i=1∑rj=1∑sk=1∑t(Xijk−Xˉ)2=SE+SA+SB+SA×B - 误差平方和
试验的随机波动引起的误差。
SE=∑i=1r∑j=1s∑k=1t(Xijk−Xˉij⋅)2S_{E}=\sum_{i=1}^{r} \sum_{j=1}^{s} \sum_{k=1}^{t}\left(X_{i j k}-\bar{X}_{i j\cdot} \right)^{2}SE=i=1∑rj=1∑sk=1∑t(Xijk−Xˉij⋅)2 - 因子AAA的偏差平方和
除了反映了试验的随机波动引起的误差外,还反映了因子A的效应间的差异。
SA=∑i=1rst(Xˉi⋅⋅−Xˉ)2S_{A}=\sum_{i=1}^{r} s t\left(\bar{X}_{i\cdot\cdot}-\bar{X}\right)^{2}SA=i=1∑rst(Xˉi⋅⋅−Xˉ)2 - 因子BBB的偏差平方和
除了反映了试验的随机波动引起的误差外,还反映了因子B的效应间的差异。
SB=∑j=1srt(Xˉ⋅j⋅−Xˉ)2S_{B}=\sum_{j=1}^{s} r t\left(\bar{X}_{\cdot j\cdot}-\bar{X}\right)^{2}SB=j=1∑srt(Xˉ⋅j⋅−Xˉ)2 - 交互作用的偏差平方和
除了反映了试验的随机波动引起的误差外,还反映了交互效应的差异所引起的波动。
SA×B=∑i=1r∑j=1st(Xˉij⋅−Xˉi⋅⋅−Xˉ⋅j⋅+Xˉ)2S_{A \times B}=\sum_{i=1}^{r} \sum_{j=1}^{s} t\left(\bar{X}_{i j\cdot}-\bar{X}_{i \cdot \cdot}-\bar{X}_{\cdot j \cdot}+\bar{X}\right)^{2}SA×B=i=1∑rj=1∑st(Xˉij⋅−Xˉi⋅⋅−Xˉ⋅j⋅+Xˉ)2 - 计算公式
ST=∑i=1r∑j=1s∑k=1tXijk2−nXˉ2fT=rst−1SA=1st∑i=1rXi..2−nXˉ2fA=r−1SB=1rt∑i=1rX.j.2−nXˉ2fB=s−1SA×B=1t∑i=1r∑j=1sXij.2−nXˉ2−SA−SBfA×B=(r−1)(s−1)SE=ST−SA−SB−SAXBfE=rs(t−1)\begin{aligned} &S_{T}=\sum_{i=1}^{r} \sum_{j=1}^{s} \sum_{k=1}^{t} X_{i j k}^{2}-n \bar{X}^{2} \quad f_{T}=r s t-1\\ &S_{A}=\frac{1}{s t} \sum_{i=1}^{r} X_{i . .}^{2}-n \bar{X}^{2} \quad \quad f_{A}=r-1\\ &S_{B}=\frac{1}{r t} \sum_{i=1}^{r} X_{. j .}^{2}-n \bar{X}^{2} \quad f_{B}=s-1\\ &S_{A \times B}=\frac{1}{t} \sum_{i=1}^{r} \sum_{j=1}^{s} X_{i j .}^{2}-n \bar{X}^{2}-S_{A}-S_{B} \quad f_{A \times B}=(r-1)(s-1)\\ &S_{E}=S_{T}-S_{A}-S_{B}-S_{A X B} \quad f_{E}=r s(t-1) \end{aligned}ST=i=1∑rj=1∑sk=1∑tXijk2−nXˉ2fT=rst−1SA=st1i=1∑rXi..2−nXˉ2fA=r−1SB=rt1i=1∑rX.j.2−nXˉ2fB=s−1SA×B=t1i=1∑rj=1∑sXij.2−nXˉ2−SA−SBfA×B=(r−1)(s−1)SE=ST−SA−SB−SAXBfE=rs(t−1)
5.假设检验
- 检验统计量
当H01H_{01}H01为真时:
FA=SA/(r−1)SE/rs(t−1)∼F(r−1,rs(t−1))F_{A}=\frac{S_{A} /(r-1)}{S_{E} / r s(t-1)} \sim F(r-1, r s(t-1))FA=SE/rs(t−1)SA/(r−1)∼F(r−1,rs(t−1))
当H02H_{02}H02为真时:
FB=SB/(s−1)SE/rs(t−1)∼F(s−1,rs(t−1))F_{B}=\frac{S_{B} /(s-1)}{S_{E} / r s(t-1)} \sim F(s-1, r s(t-1))FB=SE/rs(t−1)SB/(s−1)∼F(s−1,rs(t−1))
当H03H_{03}H03为真时:
FA×B=SA×B/(r−1)(s−1)SE/rs(t−1)∼F((r−1)(s−1),rs(t−1))F_{A \times B}=\frac{S_{A \times B} /(r-1)(s-1)}{S_{E} / r s(t-1)} \sim F((r-1)(s-1), r s(t-1))FA×B=SE/rs(t−1)SA×B/(r−1)(s−1)∼F((r−1)(s−1),rs(t−1)) - 假设的拒绝
对给定的显著性水平α\alphaα:
当FA>F1−α(r−1,rs(t−1))F_A>F_{1-\alpha}(r-1,rs(t-1))FA>F1−α(r−1,rs(t−1))时拒绝H01H_{01}H01
当FB>F1−α(s−1,rs(t−1))F_B>F_{1-\alpha}(s-1,rs(t-1))FB>F1−α(s−1,rs(t−1))时拒绝H02H_{02}H02
当FA×B>F1−α((r−1)(s−1),rs(t−1))F_{A\times B}>F_{1-\alpha}((r-1)(s-1),rs(t-1))FA×B>F1−α((r−1)(s−1),rs(t−1))时拒绝H03H_{03}H03 - 方差分析表
来源 | 平方和 | 自由度 | 均方和 | FFF值 | 显著性 |
---|---|---|---|---|---|
因子AAA | SAS_ASA | r−1r-1r−1 | SA/(r−1)S_A/(r-1)SA/(r−1) | FAF_AFA | |
因子BBB | SBS_BSB | s−1s-1s−1 | SB/(s−1)S_B/(s-1)SB/(s−1) | FBF_BFB | |
A×BA\times BA×B | SA×BS_{A\times B}SA×B | (r−1)(s−1)(r-1)(s-1)(r−1)(s−1) | SA×B(r−1)(s−1)\frac{S_{A\times B}}{(r-1)(s-1)}(r−1)(s−1)SA×B | FA×BF_{A \times B}FA×B | |
误差 | SES_ESE | rs(t−1)rs(t-1)rs(t−1) | SE/rs(t−1)S_E/rs(t-1)SE/rs(t−1) | ||
总和 | STS_TST | rst−1rst-1rst−1 |
一般,当F>F0.99F>F_{0.99}F>F0.99时,称因子的影响高度显著,记为“**”;当F0.99>F≥F0.95F_{0.99}>F≥F_{0.95}F0.99>F≥F0.95时,称因子的影响显著,记为“*”;当F<F0.95F<F_{0.95}F<F0.95时, 称因子无显著影响,即认为因子各水平间无差异。
6.实现
- 例题
在某化工生产中为了提高收率,选了三种不同浓度AAA,四种不同温度BBB做试验。在同一浓度与同一温度组合下各做二次试验,其收率数据如下而计算表所列(数据均已减去75)。试检验不同浓度,不同温度以及它们间的交互作用对收率有无显著影响。
因素 | B1B_1B1 | B2B_2B2 | B3B_3B3 | B4B_4B4 | Xi⋅⋅X_{i\cdot \cdot}Xi⋅⋅ | Xi⋅⋅2X^2_{i\cdot \cdot}Xi⋅⋅2 |
---|---|---|---|---|---|---|
A1A_1A1 | 14,10 | 11,11 | 13,9 | 10,12 | 90 | 8100 |
A2A_2A2 | 9,7 | 10,8 | 7,11 | 6,10 | 68 | 4624 |
A3A_3A3 | 5,11 | 13,14 | 12,13 | 14,10 | 92 | 8464 |
X⋅j⋅X_{\cdot j\cdot}X⋅j⋅ | 56 | 67 | 65 | 62 | 250 | 21188 |
X⋅j⋅2X^2_{\cdot j\cdot}X⋅j⋅2 | 3136 | 4489 | 4225 | 3844 | 15694 |
- C++求解
#include<bits/stdc++.h>
using namespace std;int main()
{int r = 3, s = 4, t = 2;double x[10][10][10]= {{{14,10},{11,11},{13, 9},{10,12}}, //data{{ 9, 7},{10, 8},{ 7,11},{ 6,10}},{{ 5,11},{13,14},{12,13},{14,10}}};double n_sq_x_bar = 0;double sq_x = 0;double x_ijdot = 0;double tmp = 0, tmp1 = 0, tmp2 = 0;double x_dot_j_dot[10];memset(x_dot_j_dot, 0, sizeof(x_dot_j_dot));double x_i_dot_dot[10];memset(x_i_dot_dot, 0, sizeof(x_i_dot_dot));for(int i = 0; i < r; ++i){for(int j = 0; j < s; ++j){for(int k = 0; k < t; ++k){x_dot_j_dot[j] += x[i][j][k];x_i_dot_dot[i] += x[i][j][k];tmp += x[i][j][k];n_sq_x_bar += x[i][j][k];sq_x += x[i][j][k] * x[i][j][k];}x_ijdot += tmp * tmp;tmp = 0;}}double sum_x_dot_j_dot = 0;for(int i = 0; i < s; ++i){sum_x_dot_j_dot += x_dot_j_dot[i] * x_dot_j_dot[i];}double sum_x_i_dot_dot = 0;for(int i = 0; i < r; ++i){sum_x_i_dot_dot += x_i_dot_dot[i] * x_i_dot_dot[i];}// cout << sum_x_dot_j_dot << " " << sum_x_i_dot_dot << endl;n_sq_x_bar /= 24;n_sq_x_bar *= n_sq_x_bar;n_sq_x_bar *= 24;// cout << n_sq_x_bar << " " << sq_x << " " << x_ijdot << endl;double S_T = sq_x - n_sq_x_bar;double S_A = sum_x_i_dot_dot / (s * t) - n_sq_x_bar;double S_B = sum_x_dot_j_dot / (r * t) - n_sq_x_bar;double S_AB = (1.0 / t) * x_ijdot - n_sq_x_bar - S_A - S_B;double S_E = S_T - S_A - S_B - S_AB;// cout << S_T << " " << S_A << " " << S_B << " " << S_AB << endl;double F_A = (S_A / (r - 1)) / (S_E / (r * s * (t - 1)));double F_B = (S_B / (s - 1)) / (S_E / (r * s * (t - 1)));double F_AB = (S_AB / ((r - 1) * (s - 1))) / (S_E / (r * s * (t - 1)));// cout << "F_A = " << F_A << "\nF_B = " << F_B << "\nF_AB = " << F_AB << endl;cout << "source\tdf\tSS\tMS\t\F" << endl;cout << "A\t" << r - 1 << "\t" << S_A << "\t" << S_A/(r - 1) << "\t" << F_A << endl;cout << "B\t" << s - 1 << "\t" << S_B << "\t" << S_B/(s - 1) << "\t" << F_B << endl;cout << "AXB\t" << (r - 1) * (s - 1) << "\t" << S_AB << "\t" << S_AB / ((r - 1) * (s - 1)) << "\t" << F_AB << endl;cout << "error\t" << r * s * (t - 1) << "\t" << S_E << "\t" << S_E/(r * s * (t - 1)) << endl;cout << "total\t" << r * s * t - 1 << "\t" << S_T << endl;return 0;
}
运行结果:
- MATLAB求解
function annova_solve()x = [14, 11, 13, 10;10, 11, 9, 12;9, 10, 7, 6;7, 8, 11, 10;5, 13, 12, 14;11, 14, 13, 10];p = anova2(x,2);
end
运行结果:
- Excel求解
录入数据如下:
在“数据分析”中选择“可重复双因素分析”,选择区域,单击“确定”:
结果如下:
- 结论
查表可知,F0.05<FA<F0.01F_{0.05}<F_{A}<F_{0.01}F0.05<FA<F0.01,FB,FA×B<F0.05F_{B},F_{A\times B}<F_{0.05}FB,FA×B<F0.05。故认为浓度影响较为显著,温度与交互作用影响不显著。
查看原文(我的博客)
【数据分析】双因素方差分析相关推荐
- Python玩转数据分析——双因素方差分析
概念 方差分析(Analysis of Variance,简称ANOVA),又称"变异数分析"或"F检验",用于两个及两个以上样本均数差别的显著性检验.双因素方 ...
- R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、使用HH包中的interaction2wt函数为任何阶的双因素方差分析可视化主效应和交互作用图、箱图显示主效应
R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA).使用HH包中的interaction2wt函数为任何阶的双因素方差分析可视化主效应和交互作用图(Main ef ...
- R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、在双因素方差分析中,受试者被分配到由两个因素交叉分类形成的组(Two-way factorial ANOVA)
R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA).在双因素方差分析中,受试者被分配到由两个因素交叉分类形成的组(Two-way factorial ANOVA) ...
- R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、使用interaction.plot函数在双因素方差分析中可视化交互作用(Interaction)
R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA).使用interaction.plot函数在双因素方差分析中显示(可视化)交互作用(Interaction) 目 ...
- R语言双因素方差分析
R语言双因素方差分析 条件: 各个样本是相互独立的随机: 各个样本来自正态总体: 具有方差齐性: 用途: 检验两个或多样本均数间的差异有无统计学意义:注:本均数的比较可以采用 t检验或 F检验,两个以 ...
- 双因素方差分析_多因素方差分析
总第173篇/张俊红 01.前言 在前面我们讲过简单的单因素方差分析,这一篇我们讲讲双因素方差分析以及多因素方差分析,双因素方差分析是最简单的多因素方差分析. 单因素分析就是只考虑一个因素会对要比较的 ...
- 第13章重复测量和双因素方差分析
第1章统计学入门 第2章频数分布略 第3章集中趋势的测量 第4章变异性 第5章分数的位置及标准化分布 第6章概率和正态分布 第7章概率和样本:样本均值的分布 第8章假设检验介绍 第9章t检验介绍 第1 ...
- R语言统计篇:双因素方差分析
今天介绍双因素方差分析(Two-way ANOVA). 此方法用于检验两个分类变量(自变量)与一个连续变量(因变量)之间的关系. 比方说,如果一个分类变量有两个组别,另外一个分类变量有三个组别,那么一 ...
- 双因素方差分析全流程汇总
方差分析就是通过检验各总体的均值是否相等来判断分类型自变量(定类变量)对数据型因变量(定量变量)是否有显著影响.方差分析一般分为单因素方差分析.双因素方差分析.三因素方差分析以及多因素方差分析.如下说 ...
最新文章
- 判定两棵二叉树是否相似以及左右子树交换、层次编号
- LinkedHashMap
- C#正则表达式MatchCollection类浅析
- 使用Spring AOP中MethodInterceptor记录日志
- AT2370-[AGC013D]Piling Up【dp】
- Mybatis主线流程源码解析
- 构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(下前篇)—简单的优化...
- mysql-安装包模式的安装过程-旧版
- time_t 和 struct tm 及时间戳的正确用法
- Cent OS 6/7 中通过yum安装软件时提示cannot find a valid baseurl...的解决方法
- MySQL反斜杠 ‘\\‘ 插入数据库丢失
- 学计算机的学后感,计算机学习心得体会(通用10篇)
- 简单步骤Centos7安装Tomcat 8 (yum安装)(ZT)
- 深入浅出Go Runtime
- 华硕主板怎么刷bios
- Axure 9 简介【原型工具】
- 题解 - 只能吃土豆的牛牛(C++)
- 如何在单片机中用汇编优雅的点灯
- BootStrap 图标修改
- 互联网寒冬?软件测试行业饱和了?为何每年还会增加40万测试员?