R语言统计方法-我常用的
文章目录
- R语言统计方法-我常用的
- 一、数据与R
- 二、数据的描述统计量
- 三、方差分析
一、数据与R
①直接录入数据
names<-c(列名)
data<-c()
id = c(1,2,1,4,2)
year = c(1980, 1990, 2000, 2010, 2020)
salary = c(2000, 3000, 4000, 5000, 6000)
df = data.frame(id, year, salary)
R 里面的 NA, NULL, NaN到底有什么区别
NA: for missing or undefined data
NULL: for empty object (e.g. null / empty lists)
NaN: for results that cannot be reasonably defined
数据排序
data[order(data$column, decreasing = TRUE)]
修改数据
rice_yield[3,'wet_weight']
rice_yield[3,4] # 表示第三行第四列
二、数据的描述统计量
2.1描述水平的统计量
平均数、分位数(中位数、四分位数、百分位数)、众数、
2.2描述差异的统计量
极差、四分位差、方差、标准查、变异系数、标准分数
2.3描述分布形状的统计量
偏度系数、峰度系数
数据的综合描述
library(pastecs)
round(stat.desc(df),4)
三、方差分析
方差分析模型中,假定误差项是期望值为0,方差相等的正态独立随机变量。所以要先进行检验。
正态性检验。
Q-Q图和检验方法(Shapiro-Wilk和K-S检验)
qq图有两个作用:1、检验一组数据是否服从某一分布。2、检验两个分布是否服从同一分布。qq图全称是quantile-quantile plot,从名称中可以了解到是和分位数相关的图。
qqnorm(before_sow_zn_data$全锌,xlab="期望正态值",ylab="观察值",
datax=TRUE,main= "全锌Q-Q图")
qqline(before_sow_zn_data$全锌,datax = TRUE)
shapiro.test(before_sow_zn_data$全锌)
当p>0.05时,不拒绝H0,认为服从正态分布
ks.test(before_sow_zn_data$全锌,"pnorm",mean(before_sow_zn_data$全锌),
sd(before_sow_zn_data$全锌))
方差齐性检验
图示法
箱线图、残差图
model_1w = aov(全锌~depth,data=before_sow_zn_data)
plot(model_1w,which = 1)
plot(model_1w,which=2)
残差图:横坐标为模型拟合值,纵坐标为预测残差
若:
残差没有离群点,拟合值和残差的散点随机分布在一个水平带内,且离散程度基本一样,表示满足方差齐性的假定。
检验法:
Bartlett方差齐性检验——满足正态分布
bartlett.test(全锌~depth,data=before_sow_zn_data)
p若大于0.05,则不拒绝H0,认为满足方差齐。
Levene方差齐性检验——不满足正态分布
p若大于0.05,则不拒绝H0,认为满足方差齐。
误差来源 | 平方和SS | 自由度df | 均方MS | 检验统计量F |
处理效应 | SSA | I-1 | MSA | MSA/MSE |
误差 | SSE | n-I | MSE | |
总效应 | SST | n-1 |
单因素方差分析
只考虑一个因子对观测数据的影响
model1 = aov(zn~depth,data = after_zn)
summary(model1)
多重比较
Fisher的LSD
library(agricolae)
model = aov(chanlaing~pinzhong,data= data)
summary(model)
LSD = LSD.test(model,"pinzhong");LSD