零基础学R:常用命令总结_part2

来源:互联网 发布:南京禄口机场知询电话 编辑:程序博客网 时间:2024/05/29 13:08

31. 单样本t检验:help(t.test)

单样本T检验是检验某个样本和一个给定均数的差别。

例如,单侧检验看某样本的年龄均数是否大于8。那么无效假设为 mu<8,备择假设为mu≥8,置信区间为95%,则命令为:

t.test(Age,mu=8,alternative="less",conf.level=0.95)

可简写为t.test(Age,mu=8,alt="less",conf=0.95)

如果无效假设是mu>8,则命令里less 改为larger。


双侧检验则命令里less改为two.sided,或者去掉alt这个分句因为R默认为双侧检验,结果应该是一致的。

可将T检验的结果另存为一个新的变量。TEST <- t.test(Age, mu=8,conf=0.99),然后再从中只提取P值进行制表等操作。


32.两独立样本t检验:

建议在统计之前作图观察两样本的差别。

例如,双侧检验看男女的眼轴长度AL_od是否不同。无效假设是mu=0,备择假设为差异不等于0,置信区间95%,两组的变异度不等,非配对样本,则命令为:

t.test(AL_od~sex,mu=0,alt="two.sided",conf=0.95,var.eq=F, paired=F)

或t.test(AL_od[sex=="female"], AL_od[sex=="male"])

那么如何评估变异度一致性即var.eq呢?可以看boxplot,或两组分别计算变异度:var(AL_od[sex==“male”]), 

或者采用levene's test,其无效假设是两组的变异度是一致的。要用这个命令,首先得安装car packages.

install.packages("car")
library(car)

leveneTest(AL_od~sex)

如果P值小于0.05则说明两组的变异度不同。


33. Mann-Whitney U test: 两样本秩和检验:help(wilcox.test)

wilcox.test(AL_od~sex, mu=0, alt="two.sided",conf.int=T, conf=0.95, paired=F,,exact=T,correct=T)

//零假设是差异为0,双侧检验,置信区间为95%,非配对样本,计算确切P值和CI,校正连续值。


34. 配对样本t检验:

例如,看治疗前后的血压有无差异,零假设是无差异,双侧检验

t.test(Before, After, mu=0, alt="two.sided", paired=T,conf.level=0.99)


35. Wilconxon Signed Rank Test: help(wilcox.test)

两样本中位数的非参数检验,同样的先画箱型图对比。零假设是两组中位数差别为0,双侧检验

wilcox.test(Before, After, mu=0, alt="two.sided", paired=T,conf.int=T, conf.level=0.90, exact=F, correct=F)


35. ANOVA: 比较2组或以上的均数 help(aov)

boxplot(weight~diet), 零假设是所有饮食类型的体重相同。

ANOVA1 <- aov(weight~diet)


Kruskal Wallis是一个one-way变异度分析,是ANOVA的非参数形式。

kruskal.test(weight~diet)


36. 卡方检验和fisher's确切概率法:help(chisq.test)

先建立一个table看下两个变量的分布: TAB <- table(gender, smoking)

画图对比: barplot(TAB,beside=T, legend=T)

chisq.test(TAB, correct=T)

fisher.test(TAB, conf.int=T, conf.level=0.95)


37. RR,OR, attributes of risk: direction and strength of the association between two categorical variables.

 TAB <- table(gender, smoking)

barplot(TAB,beside=T, legend=T)

需要先安装一个packages: install.packages("epiR")

library (epiR)

help(packages="epiR")

假设是一个2x2的表格,epi.2by2(TAB, method="cohort.count", conf.level=0.95)可给出RR,OR值和95%CI。


38. correlation and linear regression:

先画散点图,如评估年龄和身高之间的关系:plot(age, height)

cor(age, height, method="pearson")   // pearson是R的默认设置,也可不写,或用spearman, kendall

cor.test(age, height, method="pearson")   //零假设是相关系数为0


相关系数矩阵: pairs(data1) 或pairs(data1[, 1:3])  //所有行,1-3列,其实就是1-3个变量的矩阵图

cor(data1[, 1:3]) //相关系数矩阵的数值表格

cov(age, height)  //age和height的相关系数


39. Simple linear regression:

先画散点图和计算相关系数(同上)

mod <- lm(height ~age)  //生成一个新变量,这里命名为mod,lm括号里面先写Y后写X

summary(mod)  //可以看到回归结果

可以进一步对该回归结果进行读取和更改,例如confint(mod,level=0.99)可以看到99%置信区间

coef(mod) 可以读取回归系数, anova(mod)可以看到回归表格


40. checking linear regression assumptions:

plot(age, height)之后同上生成mod,

abline(mod)  //在散点图上添加一条age和height的回归拟合曲线

plot(mod)  //可以看到评估回归的四个图,点击return键可以跳转查看

如果想同时显示四张图,则先分开屏幕,再画图

par(mfrow=c(2,2))

plot(mod)

par(mfrwo=c(1,1))  //回到原屏幕设置


41. multiple linear regression:

看身高与年龄和性别之间的关系:model1<- lm(height~age+sex)

summary(model1)

cor(age, sex,method="pearson")  //衡量自变量间的交互作用

confint(model1, conf.level=0.95)

plot(model1)

 

42. 数值型变量转成类别型变量:?cut

例如分年龄组:agegroup=cut(Age,breaks=c(0,20,40,100),labels = c("A","B","C"))  //默认区间是左开右闭,0和100是下限和上限

如果想左闭右开的话,加入一个命令right=FALSE。


agegroup=cut(Age,breaks=3,labels = c("A","B","C"), right=F) //让R自己选择cut-off分为3组


 43. 哑变量:k个分类的变量需要k-1个哑变量

如上agegroup是一个分类变量,mod<- lm(height~agegroup)  //R会自动让分类变量生成哑变量,以第一个变量为reference

summary(mod)


如果要改变reference category的话,help(relevel)

mod1<- lm(height~age+sex)  //其中sex是分类变量,参照是female

summary(mod1)

table(sex)  //假设看到的目前reference即第一列是female,如果想变成male

gender<- relevel(sex,ref="male")

table(gender)  //此时refrence变成了male

此时再mod2<-lm(height~age+gender)  //此时的性别参照就是male


44. R数据库合并

mm <- merge(data1,data2, all=T, by=c("v1"))     //data1和data2这两个数据库通过v1这个变量merge到一起,生成新数据库mm






0 0
原创粉丝点击