R语言

R语言回归分析-异常观测值

放肆的年华 提交于 2020-02-21 02:10:53
R语言回归分析 回归分析可以说是统计学的核心,它其实是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量、效标变量或结果变量)的方法。通常,回归分析可以用来挑选与响应变量相关的解释变量,可以描述两者的关系,也可以生成一个等式,通过解释变量来预测响应变量。 最小二乘法回归是通过预测变量的加权和来预测量化的因变量,其中权重是通过数据估计而得的参数,目标是通过减少响应变量的真实值与预测值的差值来获得模型参数(截距项和斜率),具体而言,即使得残差平方和最小。下面将通过几篇博客介绍回归分析,这是第二篇:异常观测值。 8.4.1 离群点 离群点是指那些模型预测效果不佳的观测点。它们通常有很大的、或正或负的残差(Y[i] –Ŷ[i] 。 正的残差说明模型低估了响应值,负的残差则说明高估了响应值。下面是查看离群点的两种方法: QQ图:在之前通过QQ图,落在置信区间带外的点即可被认为是离群点 标准化残差:另外一个粗糙的判断方法是:标准化残差值大于2或者小于–2的点可能是离群点,需要特别关注。 这里介绍的是 car 包里面的 outlierTest() 函数,该函数可以求得最大标准化残差绝对值Bonferroni调整后的p值,注意,该函数只是根据单个最大(或正或负)残差值的显著性来判断是否有离群点。若不显著,则说明数据集中没有离群点;若显著

R语言入门(1)-初识R语言

北慕城南 提交于 2020-02-19 01:52:38
设置R语言环境为英文环境 其实不设置也行...就是报错提示的内容是中文的话, 会不太好理解.. 1. 首先在用户根目录下cat查看一下, 发现没有.Renviron文件, 这个是R语言的环境配置文件. 2. 那么就用echo语句追加一句"LANGUAGE=en" 到 .Renviron文件, 如果没有这个文件, echo语句会自动创建. 3. 然后再cat查看一下, 确认一下. R语言运行方式 1. 在 R 的 console中 , 以一行一行用户交互的方式来进行 2. 在R 的console中可以用source('xxx.R') 来运行xxx.R的代码 3. 在终端中 Rscript 命令来运行 R语言工作空间与工作内存 工作空间 getwd()来查看当前工作空间 setwd()来设置工作空间 查看工作内存变量 定义的变量都是在内存里,通过ls()可以查看 删除工作内存变量 可以通过rm(obj)来删除工作内存里的变量. 保存工作内存变量 可以通过save方法, 将变量持久化到工作空间中. save(obj,file="myfile")是保存特定变量到"myfile"文件中, save.image("file-name")是保存当前工作内存中所有内容到"file-name"文件中. 例如: 保存y变量到y.rda文件中, 保存当前工作内存中的所有内容到"save-all.rda

R语言循环和判断语句

爱⌒轻易说出口 提交于 2020-02-17 14:41:30
相信大家对于循环和判断语句都比较熟悉,所以这里只是给出了R语言的语法结构以及再简单不过的例子。 重复和循环 1、for结构 语句结构为: for (var in seq) statement sum = 0 for ( i in 1 : 10 ) { sum = sum + i } sum 2、while语句 while 循环重复地执行一个语句,直到条件不为真为止。语法为: while (cond) statement sum = 0 i = 1 while ( i <= 10 ) { sum = sum + i i = i + 1 } sum 条件执行 1、if-else语句 控制结构 if-else 在某个给定条件为真时执行语句,也可以同时在条件为假时执行另外的语 句。语法为: if (cond) statement 或者 if (cond) statement1 else statement2 a < - c ( "this" , "is" , "a" , "banana" ) if ( "banana" % in % a ) { print ( "banana is found" ) } else { #需要放在一行写 print ( "banana is not found" ) } 2、else if结构 else if 结构相当于将多个if 重复使用,使用方法和if

R语言数据集的合并

妖精的绣舞 提交于 2020-02-17 06:20:26
R语言数据集的合并 如果数据分散在不同的集合中,则在处理数据之前需要对其进行合并,下面分成向数据框中添加行和列来分别进行展示: 数据框加入列。使用 merge() 函数,这时两个数据框通常是根据一个或者多个共同的变量进行合并处理,指定的共同列不会再次被合并,只出现一次。 数据框加入列。如果要直接横向合并两个矩阵或数据框,并且不需要指定一个公共索引,那么可以直接使用 cbind() 函数,此时即使有相同的列,也会再次被显示。 数据框加入行。使用 rbind() 函数。 #数据框中加入列,merge函数 per1 < - data . frame ( name = c ( "张三" , "李四" , "王五" , "赵六" ) , q1 = c ( 23 , 45 , 34 , 1000 ) ) per2 < - data . frame ( name = c ( "张三" , "李四" , "王五" , "赵六" ) , q2 = c ( 34 , 56 , 34 , 43 ) ) per < - merge ( per1 , per2 , by = "name" ) #根据name列进行合并 per #加入列:cbind函数 per1 < - data . frame ( name = c ( "张三" , "李四" , "王五" , "赵六" ) , q1 = c ( 23 ,

R语言创建新变量方法

拥有回忆 提交于 2020-02-16 12:07:02
R语言创建新变量方法 在数据分析中,可能需要对数据进行求和、求均值等处理,并且将处理后的数据重新保存到原来的数据框中,这里提供三种可供解决的方法: 数据框$变量名 <- 表达式。若原数据框中含有该变量,则做修改,否则加入新变量。 使用 attach() 函数。该函数可以将数据框锁定,从而不需要每次使用都输入数据框名,只需直接输入变量名即可,取消锁定使用 detach() 函数即可。 使用 transform() 函数。格式为`transfor(data,…) mydata < - data . frame ( x1 = c ( 2 , 2 , 6 , 4 ) , x2 = c ( 3 , 4 , 2 , 8 ) ) #方法一 mydata $sum < - mydata $x1 + mydata $x2 mydata $mean < - ( mydata $x1 + mydata $x2 ) / 2 mydata #方法二 mydata < - data . frame ( x1 = c ( 2 , 2 , 6 , 4 ) , x2 = c ( 3 , 4 , 2 , 8 ) ) attach ( mydata ) mydata $sum < - x1 + x2 mydata $mean < - ( x1 + x2 ) / 2 mydata #方法三 mydata < - data

R语言中的横向数据合并merge及纵向数据合并rbind的使用

落爺英雄遲暮 提交于 2020-02-16 05:26:01
R语言中的横向数据合并merge及纵向数据合并rbind的使用 我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同。处理的办法就是使用 merge(x, y ,by.x = ,by.y = ,all = ) 函数。 #合并 ID<-c(1,2,3,4) name<-c("A","B","C","D") score<-c(60,70,80,90) student1<-data.frame(ID,name) student2<-data.frame(ID,score) total_student1<-merge(student1,student2,by="ID") total_student1 #横向追加 ID<-c(1,2,3,4) name<-c("A","B","C","D") score<-c(60,70,80,90) sex<-c("M","F","M","M") student1<-data.frame(ID,name) student2<-data.frame(score,sex) total_student2<-cbind(student1,student2) total_student2 #纵向追加 ID<-c(1,2,3,4) name<-c("A","B","C","D") student1<-data.frame(ID,name) ID<-c(5

R语言常用的矩阵操作

陌路散爱 提交于 2020-02-14 23:36:53
R语言是一门非常方便的数据分析语言,它内置了许多处理矩阵的方法。下面列出一些常用的矩阵操作方法示例。 矩阵的生成 > mat <- matrix(1:16, ncol = 4, nrow = 4, byrow=TRUE, dimnames=list(c(paste("x", 1:4, sep = ".")), c(paste("y", 1:4, sep = ".")))) > mat y.1 y.2 y.3 y.4 x.1 1 2 3 4 x.2 5 6 7 8 x.3 9 10 11 12 x.4 13 14 15 16# 矩阵的行列名还可以使用rownames或者colnames进行修改 > rownames(mat) <- paste("row", 1:4, sep=".") > colnames(mat) <- paste("col", 1:4, sep=".")> mat col.1 col.2 col.3 col.4 row.1 1 2 3 4 row.2 5 6 7 8 row.3 9 10 11 12 row.4 13 14 15 16 矩阵的维度 # 表示这是一个4行4列的矩阵> dim(mat) [1] 4 4 矩阵的加减 > mat.2 <- matrix(51:66, nrow = 4) > mat.2 [,1] [,2] [,3] [,4] [1,] 51

R语言与医学统计图形-【27】ggplot2图形组合、字体、保存

帅比萌擦擦* 提交于 2020-02-14 17:27:46
ggplot2绘图系统——图形组合、字体选择、保存输出 1.图形组合 一页多图在基础包中利用par和layout函数来切分画布。 ggplot2是先铺好网格背景,再进行绘图,所以要通过切分网格背景来实现一页多图。 gridExtra包(grid扩展包)可用于图形排列组合、表格对象排列组合、规则多边形及椭圆的排列组合。 library(grid) #在画布上画8图(列表) gs <- lapply(1:8, function(i)grobTree(rectGrob(gp=gpar(fill=i,alpha=0.5)),textGrob(i))) #按一定顺序均分画布 grid.arrange(grobs=gs, ncol=4, top='top label', bottom='bottom\nlabel', left='left label', right='right label') #自由切分画布(layout_matrix参数) layout <- rbind(c(1,1,1,2,3), c(1,1,1,4,5), c(6,7,7,8,8)) grid.arrange(grobs=gs,layout_matrix=layout) #按矩阵切分 #使用长宽比来排列组合 grid.arrange(grobs=gs[1:3],ncol=2,widths=1:2,#定义宽度比

R语言与医学统计图形-【9】过渡函数qplot

倖福魔咒の 提交于 2020-02-14 17:05:33
ggplot2绘图系统 基础绘图包向ggplot2过渡——qplot 绘图理念的不同: 基础绘图包是先铺好画布,再在这张画布上作图(常规思维); ggplot2打破常规,采用图层叠加的方法。 qplot函数既有plot特点,又体现了ggplot2的特征,是一个过渡函数。 library(ggplot2) data("diamonds") qplot(x=carat, y=price, data=diamonds, geom = 'point', color=color) #geom几何对象:smooth/boxplot/path/line/freqpoly/density/jitter/bar #color映射变量 set.seed(2020) dsmall <- diamonds[sample(nrow(diamonds),1000),] qplot(x=carat, #qplot中x/y不能省 y=price, data=dsmall, geom='point', color=color, shape=cut) #映射形状 qplot(x=color, data=dsmall, geom = 'bar', fill='green', #填充色 color='red') #边框色 #此处green和red都视为了一个变量 qplot(x=color, data=dsmall,

R语言:常用函数【转】

橙三吉。 提交于 2020-02-11 09:48:40
数据结构 一、数据管理 vector:向量 numeric:数值型向量 logical:逻辑型向量 character;字符型向量 list:列表 data.frame:数据框 c:连接为向量或列表 length:求长度 subset:求子集 seq,from:to,sequence:等差序列 rep:重复 NA:缺失值 NULL:空对象 sort,order,unique,rev:排序 unlist:展平列表 attr,attributes:对象属性 mode,typeof:对象存储模式与类型 names:对象的名字属性 二、字符串处理 character:字符型向量 nchar:字符数 substr:取子串 format,format C:把对象用格式转换为字符串 paste,strsplit:连接或拆分 charmatch,pmatch:字符串匹配 grep,sub,gsub:模式匹配与替换 三、复数 complex,Re,Im,Mod,Arg,Conj:复数函数 四、因子 factor:因子 codes:因子的编码 levels:因子的各水平的名字 nlevels:因子的水平个数 cut:把数值型对象分区间转换为因子 table:交叉频数表 split:按因子分组 aggregate:计算各数据子集的概括统计量 tapply:对“不规则”数组应用函数 数学相关计算 一、计算