贾俊平《统计学基于R》(第三版)第八章方差分析习题答案
文章目录
前言
本文习题基于R语言,主要探讨R语言对于方差分析的运用,建议学习统计学的朋友,还是手动计算+查表求得答案,毕竟以后很少再会手算了。
课后习题答案,答案来自本人自做,如有错误欢迎联系我更正,先谢了。为方便大家处理数据,所有数据都已经手动录入,不需要载入任何csv或者其他文件。
提示:以下是本篇文章正文内容,下面案例可供参考
一、什么是方差分析?
方差分析,英文 analysis of variance,AN O VA,组合起来就叫做ANOVA,顾英文名思义,就是分析差异的一种分析。
方差分析分析的是类别变量对数值变量的影响,所以如果是单因子方差分析的话,就需要一个data.frame,一列是所有类别类型,另一列是类别类型对应的数值。通常这类数据都是宽表,我们需要做一些变换,将数据格式转化为长表,然后就可以开始分析了。
方差分析函数aov(数值变量名~类别变量名,dataframe名)
二、用到的R函数
1.data.frame数据框
2.aov()函数
3.kuskal.test
4.ks.test
5.shapiro.test
6.LSD,HSD
7.常用用于分析模型的summary函数
8.melt函数,用于宽表转化为长表
三、课后习题答案
习题8.1
#贾俊平-统计学基于R,第八章,练习题8.1
df8.1<-data.frame(c(4.05,4.01,4.02,4.04,4.00,4.03),c(3.99,4.02,4.01,3.99,4.00,4.05),c(3.97,3.98,
3.97,3.95,4.02,4.00),c(4.00,4.02,3.99,4.01,4.00,4.03))
colnames(df8.1)<-c('机器1','机器2','机器3','机器4');df8.1
library(reshape2)
a <- melt(df8.1);a
colnames(a)=c('机器','value')
attach(a)
mode1<-aov(value~机器)
mode1$coefficients
mode1$fitted.values
summary(mode1)
#输出以下:
# Df Sum Sq Mean Sq F value Pr(>F)
# 机器 3 0.005846 0.0019486 4.576 0.0135 *
# Residuals 20 0.008517 0.0004258
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#由于问题是在0.01上是否显著,由于p值0.0135>0.01所有接受原假设,(原假设是没有差异)
#所以结论是机器对装填量没有显著影响。(如果是0.05那就有显著影响了)
library(agricolae)
lsdmode<-LSD.test(mode1,'机器')
lsdmode#通过group分组,不同字母间有显著差异,相同字母没有显著差异
library(DescTools)
PostHocTest(mode1,method = 'lsd')#通过两辆比较,p值很小说明有显著差异
# Posthoc multiple comparisons of means : Fisher LSD
# 95% family-wise confidence level
# $机器
# diff lwr.ci upr.ci pval
# 机器2-机器1 -0.015000000 -0.039852260 0.009852260 0.2225
# 机器3-机器1 -0.043333333 -0.068185594 -0.018481073 0.0016 **
# 机器4-机器1 -0.016666667 -0.041518927 0.008185594 0.1772
# 机器3-机器2 -0.028333333 -0.053185594 -0.003481073 0.0275 *
# 机器4-机器2 -0.001666667 -0.026518927 0.023185594 0.8901
# 机器4-机器3 0.026666667 0.001814406 0.051518927 0.0367 *
#
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
library(agricolae)
HSD <- HSD.test(mode1,'机器');HSD
hsdtukey<-TukeyHSD(mode1