日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R语言学习笔记

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目的通過數據分析信息。
數據挖掘
數據分析過程越準確,決策過程就越正確。
六步驟
1.數據采集2.數據存儲3.數據分析4.數據挖掘5.數據可視化化6.進行決策
1.數據采集
采集的數據稱為源數據
手工記錄,網絡爬蟲。
2.數據存儲
將數據存儲在數據倉庫中
將數據收集到計算機中。
如將數據存儲在excel,過多使用數據庫
3.數據統計
有的是不是線性的。、
合適的統計方法等
4.用數據挖掘 DataMining
又稱為資料勘探丶數據采礦。
計算科學有關,諸多方法。
同樣的數據不同的人得到不同的結果。
(挖掘機技術哪家強還是山東找藍翔)
5.數據可視化
維度在地圖上顯示
6.用統計結果進行決策。
數據與三個重大思維轉變
1、、。要分析與某事物相關的所有數據,而不是依靠分析少量的數據樣本;
2.我們熱于接受數據的紛繁復雜,而不再追求精確性。
3.不在探求難以捉摸的因果關系而轉而相關性。
尿布和啤酒。故意將需要東西放的很遠。
路遙知馬力,日久見人心。
微信朋友圈與人性格分析
一目了然數據可視化
R語言
為什么要學習R語言。
R語言免費。與S語言類似。基于S語言最開始做生物統計《bioconductor》包;
具有強大繪圖工具。
R的缺點。
1.R軟件不夠規范,不容易上手,需要付出較多的努力,付出大量的學習成本。
擴展包太多了,成本高。擴展包學習比R學習還比較困難
數據存儲

Getwd()獲得工作目錄路徑默認"C:/Users/LENOVO/Documents"默認生成文件放這里
Setwd()設置工作目錄setwd(dir = “C:/Users/LENOVO/Desktop/R”);注意Windows上使用的是\而R中使用的是/如果要用\則需要使用轉義字符.經常與R數據在同一目錄下
這樣的工作目錄就修改好了

list.files()可以查看目錄下的軟件

如果使用當前系統命令查看則需要退出R才能查看

Dir()命令也可以完成同樣的工作

變量無需進行申明變量名不能以數字開頭
<-賦值符號
X<-3
X=3也可以但是在假設檢驗中,會出現=沖突
5->x向右賦值
X<<-5強制賦值給全局變量
Sum(1,2,3,4,5)
Mean(1,2,3,4,5)
X其實是運用print函數
ls.str()是str和ls()共同結合
str(x)可以看值
ls.str()就可以看共同信息
ls(all.names = TRUE)
all.names查看隱藏選項TRUE大寫注意
rm(x)移除某個對象
不可恢復
R中提供list參數
List=ls())
用rm(list=ls())就可以刪除全部對象
Home end可以快速移動光標
快捷鍵ctrl+L

History函數可以查看歷史記錄 History(); ls(); getwd() setwd(dir = "C:/Users/LENOVO/Desktop/R") getwd() list.files() dir() 1+2 x<-3 x x=3 x 5->x x<-sum(1,2,3,4,5) x ls() ls.str() str(x) ls(all.names = TRUE) rm(x) rm(list=ls()) history() /

Save.image()可以保存工作空間
可以保存數據圖形函數而不是函數
q()退出系統函數;
ctrl+enter快速執行
R有5000個包
R包的學習比R本身還復雜
安裝包
install.packages(“vcd”)
.libPaths()看庫的路徑
library()可以顯示庫里面有哪些包
install.packages(c(“”,””,””))

要使用函數可以使用library()已經安裝好了不需要再安裝包了 也可以使用require()加載包使用包 help(package=””) data(package=””)可以查看包中擁有的數據集 detach(package:)刪除包 remove.package(“”)徹底刪除包

installed.packages()可以查看當前擁有包
Rcade<-installed.packages()[,1]第一列函數名稱

save(Rcade,file=”Rcade.rdata”) for(i in Rcade)install.packages(i) help(sum)也可以直接使用?包查看 args(plot) 直接查看函數的參數 example(函數) 可以直接查看函數的示例 demo()看圖的好像 vignette("")可以查看文檔,但不是每個包都有這種文檔

??qplot

help.search(“”)模糊搜索 apropos("sum",mod="function")查找 RSitesearch("")訪問官網搜索

內置數據集
就是一些數據給你用來練習
在安裝時默認安裝的包datasets中
help(package=“datasets”)
data()不加任何參數列出很多數據集

help(package="datasets") data() rivers rivers<-c(1,2,3) `` 將數據集river置換掉 要從新使用river data("rivers")從新加載 names(euro)看屬性 state<-data.frame(state.area,state.abb) state 數據框,一列一列的組合 heatmap(volcano) 直接使用內置矩陣繪制熱圖 data(package="MASS")可以看包中的數據集 注意咯這里DATA可能是函數重載。 data(package=.packages(all.available = TRUE))查看R中所有可用數據集 其中的數據集可以直接使用data(“”)函數進行加載只加載數據集而不是整個R包i data(Aids2,package="MASS") Aids2 加載包中的數據集 兩個加載有所不同,一個可用,一個需要加載包后才可用。```csharp x<-1:10 rm(list=ls()) x+1 x-3 x<-x+1 x y<-seq(1,100,length.out=10) y x+y x*y x y x**y x%%y y%/%x z<-c(1,2,3) x+z x>y c(1,2,3)%in%c(1,2,2,4,5,6) x==y x<--5:5 x abs(x) sqrt(x) sqrt(25) log(16,base=2) log(16) log10(16) exp(x) ceiling(c(-2.3,3.1415)) floor(c(-2.3,3.1415)) trunc(c(-2.3,3.1415)) round(c(-2.3,3.1415),digits = 2) signif(c(-2.3,3.1415),digits = 2) sin(x) cos(x) range(c(1:100)) var(c(1:100)) prod(c(1:100)) median(c(1:100)) quantile(c(1:100),c(0.4,0.6,0.8)) which.max(c(1:100)) which(c(1:100)==5) which(c(1:100)>5)

矩陣
matrix

?array dim1<-c("A1","A2") dim2<-c("B1","B2","B3") dim3<-c("C1","C2","C3","C4") x<-array(1:24,c(2,3,4),dimnames = list(dim1,dim2,dim3)) xTitanic m<-matrix(1:20,4,5,byrow=T) m m[1,2] m[1,c(2,3,4)] m[c(2:4),c(2,3)] m[2,] m[2] m[-1,2] dimnames(m)<-list(cnames,rnames) m rnames<-c("C1","C2","C3","C4","C5") cnames<-c("R1","R2","R3","R4") m["R1","C2"] head(state.x77) state.x77[,"Income"] m+1 m+m n<-matrix(1:20,5,4) m+n t<-m[1,] t sum(t) colSums(m) rowSums(m) colMeans(m) rowMeans(m) n*t n<-matrix(1:9,3,3) t<-matrix(2:10,3,3) n%*%t diag(n) t(m) m

列表

rm(list = ls()) state.center a<-1:20 b<-matrix(1:20,4) c<-mtcars d<-"This is a test list" a;b;c;d h<-c(1:20) mlist<-list(a,b,c,d) mlist mlist<-list(first=a,second=b,third=c,fourth=d) mlist[1] mlist[c(1,4)] state.center[c("x",'y')] mlist$first state.center$x mlist[[1]] class(mlist[[1]]) mlist[[5]]<-iris mlist mlist<-mlist[-5] mlist mlist[5]<-NULL

數據框

rm(list = ls()) state.center a<-1:20 b<-matrix(1:20,4) c<-mtcars d<-"This is a test list" a;b;c;d h<-c(1:20) mlist<-list(a,b,c,d) mlist mlist<-list(first=a,second=b,third=c,fourth=d) mlist[1] mlist[c(1,4)] state.center[c("x",'y')] mlist$first state.center$x mlist[[1]] class(mlist[[1]]) mlist[[5]]<-iris mlist mlist<-mlist[-5] mlist mlist[5]<-NULL state<-data.frame(state.name,state.abb,state.region,state.x77) state attach(state) state.name detach(state) with(state,{sum(state.name))

因子
變量的分類
1丶名義型變量
沒有關系
2丶有序型變量
抽象型
3丶連續型變量
百分率 人口數
R中名義型變量和有序性變量稱為因子factor這些分類變量的可能值稱為一個水平level
這些水平值構成的向量稱為因子

rm(list=ls()) table(mtcars$cyl) f<-factor(c("red","red","green","blue","green","blue","blue")) f fcy1<-factor(mtcars$cyl) plot(fcy1) plot(mtcars$cyl) num<-1:100 cut(num,c(seq(0,100,10))) state.division class(state.region) f<-factor(c("red","red","green"),ordered = T,levels = c("red","green")) f

缺失數據
完全隨機缺失,數據缺失于已觀測值和未觀測值都不相關,則數據為完全隨機缺失(MCAR)如果變量都是MCAR,那么可以將數據完整的實例看做是對更大數據集的一個簡單隨機抽樣
隨機缺失
與其他觀測變量相關,如你觀測體重較小的動物可能又做夢時長的缺失值(可能因為較小的動物較難觀察),“缺失”與做夢時長無關可以認為MAR
非隨機缺失,做夢時長越短的動物更有可能又做夢數據的缺失,可能由于難以測量較短的事件NMAR
NA代表缺失值,notavailable的簡稱,用來存儲缺失信息
NA不是0

rm(list = ls())1+NA NA==0 a<-c(NA,1:50) sum(a,na.rm = TRUE) is.na(a) install.packages(VIM) library(vIM) colSums(sleep) rowSums(sleep) ?na.omit d<-na.omit(a) d na.omit(sleep) 刪除行,如果超過一半會趙成影響有專門的包研究缺失值

NA是存在的值,但是不知道是多少
NAN是不存在的
Inf存在,是無窮大表示不可能的值
字符串

rm(list=ls()) nchar("hello,world") month.name nchar(month.name) length(month.name) nchar(c(12,2,3)) paste("everybody","love","stats") paste("everybody","love","stats",sep="-") names<-c("Moe","Larry","Curly") paste(names,"loves state") temp<-substr(x=month.name,start = 1,stop=3) toupper(temp) tolower(temp) gsub(正則表達式1,正則表達式2,perl=T) x<-c("b","A+","AC") grep(,,fixed = T) match("AC",x) %in%path<-"/user/local/bin/R" strsplit(path,"/") face<-1:13 suit<-c("spades","clubs","hearts","diamonds") outer(face,suit,FUN=paste)

日期和時間
1丶對時間序列的描述
2丶利用前面的結果進行預測

rm(list = ls()) sunspots class(presidents) a<-"2017-01-01" as.Date(a) class(a) as.Date(a,format="%Y-%m-%d") class(as.Date(a,format="%Y-%m-%d")) ?strftime seq(as.Date("2017-01-01"),as.Date("2017-07-05"),by=5) sales<-round(runif(48,min=50,max=100)) sales ts(sales,start = c(2010,5),end=c(2014,4),frequency=1) ts(sales,start = c(2010,5),end=c(2014,4),frequency=4) ts(sales,start = c(2010,5),end=c(2014,4),frequency=12)

獲取數據
1丶利用鍵盤來輸入數據
2丶通過讀取存儲在外部文件上的數據
3丶通過訪問數據庫系統來獲取數據
?edit
patienID<-c(1,2,3,4)
data2<-data.frame(patienID=character(0),b=character(0),c=numeric())
data2<-edit(data2)
fix(data2)
install.packages(“RODBC”)
讀入文件
read.table(“input.csv”)
setwd()
x<-read.table(“input.csv”)
head(x)
head(x,n=10)
tail(x)
x<-read.table("",sep=",")
head是否將第一行設置為名稱
skip=5可以從第六行讀取數據
nrows=100讀取前面100行
na.string替換缺失值
stringasfactor=false 是否將這個轉化為因子類型
read.csv 默認sep=,
read.csv2 默認為;
可以用絕對路徑讀取互聯網上的文件
library(XML)
?readHTMLTable
help(package=“foreign’)
x<-read.table(“clipboard”,header=T,sep=”\t")
readclipboard()
read.table(gzfile(“input.txt.gz”))
readLines(“input.csv”,n=5)
scan(“scan.txt”,what=list(character(3),numeric(2,numeric(2))))
懶得加注釋了!
寫入文件

?write ?write.table ?write.csv getwd() write.table(x,file=newfile.txt) write.table(x,file=newfile.csv,sep="\t") write.table(x,file=newfile.csv,sep="\t",quote = False,append=FALSE,na="NA") write.table(x,file=gzfile (newfile.csv.gz),sep="\t",quote=FALSE,append = FALSE,na="NA") library(foreign) write.arff() write.table(x,file="c:/Users/wangtong/Desktop/newfile.csv",sep=",",row.names = FALSE) #quto表示讀入時候不需要加“”append參數表示是否追加寫入,否則是覆蓋 讀寫Excel文件 ```go read.csv("input.csv",header = T) read.csv("clipboard",header = T,sep="\t") library(XLConnect) ex<-loadworkbook("data.xlsx") readWorksheet(ex,1,startRow=0,startCol=0,endrow=50,endcol=3,hearder=T) readworksheetfromfile("data.xlsx",sheet=1) wb<-loadWorkbook("file.xlsx",create=T) createsheet(wb,"sheet1") writeWorkbook(wb,data=mtcars,sheet="sheet1") saveworkbook(wb) writeworkbooktofile("file1.xlsx",data=iris,sheet="sheet1") library(xlsx) help() x<-read.xlsx("data.xlsx",1,startrow=1,endrow=100) write.xlsx(x,file="rdata.xlsx",sheetname="sheet1",append=F)

讀寫R格式文件

.rds保存單個文件對象 .rdata保存多個文件對象 iris head(iris) saveRDS(iris,file="iris.RDS") getwd() readRDS("iris.RDS") load("ch03.R") save(iris,iris3,file="") save.image()

數據轉換
轉換數據

library(xlsx) cars32<-read.xlsx("mtcars.xlsx",sheetIndex=1,head=T) is.data.frame(cars32) is.vactor() is.na() is.factor() is.data.frame(state.x77) dstate.x77<-as.data.frame(state.x77) is.data.frame(dstate.x77) as.matrix(data.frame(state.region,state.x77)) methods(is) x<-state.abb dim(x)<-c(5,10) x x<-state.abb x<-as.factor(state.abb) x as.list(x) state<-data.frame(x,state.region,state.x77) state$Income y<-state["Nevada",] unname(y) unlist(y)

截取所需行

who<-read.csv("who.csv",header=T) who1<who[c(1:50),c(1:10)] who4<-who[which(who$CountryID>50&who$CountryID<=100)] ?subset ?sample who4<-subset(who,who$CountryID>5&who$CountryID<=100) who4

合并所需行與去除重復行

sample(who$CountryID,30,replace = F) who[sample(who$CountryID,30,replace = F),] mtcars[-1:-5,] mtcars[,-1:-5] mtcars$mpg<-NULL head(mtcars) data.frame(USArrests,state.division) ?cbind cbind(USArrests,state.division)#同樣效果同樣適用于矩陣類型 data1<-head(USArrests,20) data2<-tail(USArrests,20) rbind(data1,data2)#不會取出重復項 duplicated(data4)#判斷重復行 data4[duplicated(data4),] data4[!duplicated(data4)] length(rownames(data4[!duplicated(data4),])) unique(data4)#直接去除重復行 rm(list = ls()) sractm<-t[mtcars] ?rev#reveser翻轉用于向量 letters rev(letters) rownames(women) rev(rownames(women)) women[rev(rownames(women)),] women$height women$height*2.54 data.frame(women$height*2.54,women$weight) data.frame(height=women$height*2.54,weight=women$weight) transform(women,height=height*2.54)#任意修改任意列的值 transform(women,cm=height*2.54) ?sort sort(rivers) sort(state.name) rev(sort(rivers)) order(rivers)#返回排序完對應值所在的索引 ?rank mtcars[order(mtcars$mpg,mtcars$disp),]#兩個條件 total<-cbind(WorldPhones,Total=rs) ?apply#apply函數 apply[WorldPhones,MARGIN=1,FUN=sum] apply[WorldPhones,MARGIN=2,FUN=mean]#apply函數,處理運用于數據框或者矩陣 ?lapply lapply(state.center,FUN=length)#運用于列表返回列表 sapply()#返回向量值 tapply#處理因子數據根據因子進行分組每組分別處理第二個參數是INDEX因子類型 state.name tapply(state.name,state.division,FUN=length)

去中心化 數據集中的各項數據減去數據集的均值
標準化 數據集中的各項數據減去數據集的均值除以標準差
添加刪選排序轉換

heatmap(state.x77) x<-c(1,2,3,6,3) mean(x) x-mean(x) sd(x) (x-mean(x))/sd(x) ?scale x<-scale(state.x77,center=T,scale=T)#去中心化和標準化 heatmap(x) 中心化的作用等比例縮小,是熱圖比較密切,

reshape2
reshape2包對數據格式進行轉換

x<-data.frame(k1=c(NA,NA,3,4,5),k2=c(1,NA,NA,4,5),data=1:5) y<-data.frame(k1=c(NA,2,NA,4,5),k2=c(NA,NA,3,4,5),data=1:5) merge(x,y,by="k1") merge(x,y,by="k2",incomparables = NA)#incomparables忽略什么選項 merge(x,y,by=c("k1","k2")) install.packages("reshape2")#強大的整合數據的工具 library(reshape2) help(reshape2) install.packages("reshape2") library(reshape2) rm(list = ls()) ?melt#寬字符寬字符變為長字符 melt(airquality) melt(airquality,id.vars=c("month","day")) aqw<-dcast(aql,month+day~variable) dcast(aql,month~variable,fun.aggregate=mean,na.rm=T) head() ?dcast#formula ?acast names(airquality)<-tolower(names(airquality)) head(airquality)

tidyr
dplyr
R函數

沒啥好說的不同類型使用不同函數,統計函數很多在這里不介紹了 選項參數 1丶輸入控制部分; file:接一個文件 data:一般指要輸入一個數據框; x:表示單獨的一個對象,一般都是向量,也可以是矩陣或者列表; x和y:函數需要兩個輸入變量; x,y,z:函數需要三個輸入變量 formula:公式; na.rm:刪除缺失值; ...:表示參數可傳遞;別問我問就是省略或者是多個參數啥的吧 2丶輸出控制部分 3丶調節部分 color 選項和明顯用來控制顏色 select與選擇有關 font 與字體有關 font.axis 就是坐標軸的字體 lty是linetype lwd是line width method 軟件算法 選項接受哪些參數 main:字符串,不能是向量 na.rm:TRUE或者FALSE axis:side參數只能是14 fig:包含四個元素的向量

數學統計函數
這部分要復習概率統計學
d表示概率密度函數
p表示分布函數
q表示分布函數的反函數
r 參數相同分布的隨機數
dnormal正態概率密度函數
pnormal正態分布函數
qnormal正態分位數函數
rnormal正態分布的隨機數函數

rnorm(n=100,mean=15,sd=2) round(rnorm(n=100,mean = 15,sd=2))

binom二項分布
hyper超幾何分布
geom幾何分布
pois泊松分布

runif(1)#生成0-1之間的隨機數 qqnorm(rnorm(n=100,mean=15,sd=2)) runif(50,min=1,max = 100) set.seed(666)#隨機種子將數據與種子綁定 runif(50) runif(50) set.seed(666) runif(50)

描述性統計函數

myvars<-mtcars[c("mpg","hp","wt","am")] myvars summary(myvars) fivenum(myvars$hp) install.packages("Hmisc") library(Hmisc) describe(myvars) library(pastecs) stat.desc(myvars) stat.desc(myvars,basic=T)#計算基礎值 stat.desc(myvars,desc=T)#計算描述值 中位數,中位數置信區間 stat.desc(myvars,norml=T)#計算一些統計值偏度和風度 library(psych) describe(mtcars[myvars],trim=0.1)#包括去掉頭尾的均值,表示前面百分之幾的數 Hmisc::describe(mtcars) library(MASS) Cars93 head(Cars93) aggregate(Cars93[c("Min.Price","Price","Max.Price","MPG.city")],by=list(Manufacturer=Cars93$Manufacturer),mean) aggregate(Cars93[c("Min.Price","Price","Max.Price","MPG.city")],by=list(Manufacturer=Cars93$Manufacturer),sd) aggregate(Cars93[c("Min.Price","Price","Max.Price","MPG.city")],by=list(Manufacturer=Cars93$Manufacturer,Manufacturer=Cars93$Type),mean) library(doBy) ?summaryBy summaryBy(mpg+hp+wt~am,data=myvars,FUN=c(mean,sd)) describe.by(myvars,list(am=mtcars$am))

頻數統計函數

mtcars$cyl<-as.factor(mtcars$cyl) mtcars mtcars$cyl split(mtcars,mtcars$cyl) num<-1:100 cut(num,c(seq(0,100,10))) ?table table(mtcars$cyl) table(cut(num,c(seq(0,100,10)))) prop.table(table(mtcars$cyl)) Arthritis library(grid) library(vcd) table(Arthritis$Treatment,Arthritis$Improved) with(data=Arthritis,table(Treatment,Improved)) ?xtabs x<-xtabs(~Treatment+Improved,data=Arthritis) margin.table(x) margin.table(x,1) margin.table(x,2) addmargins(x,1) addmargins(x,2) y<-xtabs(~Treatment+Improved+Sex,data=Arthritis) ftable(y)

獨立性檢驗函數
獨立性檢驗是根據頻數信息判斷兩類因子彼此相關或相互獨立的假設性檢驗。所謂獨立性就是指變量之間的獨立,沒有關系。
一種藥物單獨對男性起作用,單獨對女性起作用就是獨立性,否者就是相關性。
卡方檢驗
Fisher檢驗
Cocharan-Mantel-Haenszel檢驗

假設檢驗是數理統計學中根據一定假設條件由樣本推斷總體的一種方法。
原假設-沒有發生;
備擇假設——發生了;

具體做法是:
根據問題的需要對所研究的總體作某種假設,記作H0;
選取合適的統計量,這個統計量的選取藥使得在假設H0成立時,其分布為已知;
由實測的樣本,計算出統計量的值,并根據預先給定的顯著水平進行檢驗,作出拒絕或接受假設H0的判斷.
p-value就是Probability的值,它是一個通過計算得到的概率值,也就是在原假設為真時,得到最大的或者超出所得到的檢驗統計量值的概率。
一般將p值定位到0.05,當p<0.05拒絕原假設,p>0.05,不拒絕原假設。

library(grid) library(vcd) mytable<-table(Arthritis$Treatment,Arthritis$Improved) chisq.test(mytable)#卡方檢驗 fisher.test(mytable)#邊際固定的列聯表中行和列是相對獨立的 mytable<-xtabs(~Treatment+Improved+Sex,data=Arthritis) mantelhaen.test(mytable)#檢驗前兩個變量相對于第三個變量是否獨立

相關性分析函數

相關性分析是指對兩個或多個具備相關性的變量元素進行分析,從而衡量兩個變量因素的相關密切程度。相關性的元素之間需要存在一定的聯系或者概率才可以進行相關性分析。簡單來說就是變量之間是否有關系

相關系數指的是他們之間相互關聯的程度,例如Pearson相關系數丶Spearman相關系數丶Kendall相關系數丶偏相關系數丶多分格(polychoric)相關系數
和多系列(polyserial)相關系數
每種相關系數是如何被定義的有什么優點和使用范圍!

cor(state.x77,method = "spearman") cor(state.x77,method = "Pearson") cov(state.x77) x<-state.x77[,c(1,2,3,6)] y<-state.x77[,c(4,5)] x #use選項看怎么對待缺失項 cor(state.x77) cov()#計算協方差,計算兩個數的誤差使用偏相關的時候要使用協方差 cor(x,y)#計算x和y之間的相關性 library(ggm) pcor(c(1,5,2,3,6),cov(state.x77))#偏相關是指在控制一個或多個變量時,剩余其他多個變量的關系

相關性檢驗函數
用cor算出相關性還不夠,數值高不是統計學的指標,
還需要通過P值進行相關性的檢驗。
置信區間:confidence interval,指由樣本統計量所構造的總體參數的估計區間。
在統計學中,一個概率樣本的置信區間是對這個樣本的某個總體參數的區間估計。
置信區間展現的是這個參數的真實值又一定概率落在測量結果的周圍程度。
置信區間給出的是被測量參數的測量值的可信程度

cor(state.x77,method = "spearman") cor(state.x77,method = "Pearson") cov(state.x77) x<-state.x77[,c(1,2,3,6)] y<-state.x77[,c(4,5)] x #use選項看怎么對待缺失項 cor(state.x77) cov()#計算協方差,計算兩個數的誤差使用偏相關的時候要使用協方差 cor(x,y)#計算x和y之間的相關性 library(ggm) pcor(c(1,5,2,3,6),cov(state.x77))#偏相關是指在控制一個或多個變量時,剩余其他多個變量的關系 cor.test(state.x77[,3],state.x77[,5])#p遠小于0.05拒絕原假設,相關系數不為0為0.702 #cor.test有四個選項參數x,y是相關性的選項變量alternative選擇檢測相關性, #two.sided,greater less分別代表,檢測兩種,檢測正相關,檢測負相關 corr.test(state.x77) library(ggm) x<-pcor(c(1,5,2,3,6),cov(state.x77)) pcor.test(x,3,50)#要控制的變量數,樣本量 #t檢驗自由度df和pvalue cor(state.x77,method = "spearman") cor(state.x77,method = "Pearson") cov(state.x77) x<-state.x77[,c(1,2,3,6)] y<-state.x77[,c(4,5)] x #use選項看怎么對待缺失項 cor(state.x77) cov()#計算協方差,計算兩個數的誤差使用偏相關的時候要使用協方差 cor(x,y)#計算x和y之間的相關性 library(ggm) pcor(c(1,5,2,3,6),cov(state.x77))#偏相關是指在控制一個或多個變量時,剩余其他多個變量的關系 cor.test(state.x77[,3],state.x77[,5])#p遠小于0.05拒絕原假設,相關系數不為0為0.702 #cor.test有四個選項參數x,y是相關性的選項變量alternative選擇檢測相關性, #two.sided,greater less分別代表,檢測兩種,檢測正相關,檢測負相關 corr.test(state.x77) library(ggm) x<-pcor(c(1,5,2,3,6),cov(state.x77)) pcor.test(x,3,50)#要控制的變量數,樣本量 #t檢驗自由度df和pvaluef分組實驗的相關性檢驗, #藥物組合相關性組就是一個很好的對照 #t是student‘t-test #t檢驗是用t分布理論推論差異發生的概率 #從而比較兩個平均數的差異是否顯著 library(MASS) UScrime t.test(Prob~So,data=UScrime) #p<0.05可以拒絕相同概率的假設 #參數檢驗和非參數檢驗

非參數檢驗
非參數檢驗,稱為Nonparametric tests,在總體方差未知或知道甚少的情況
,利用樣本數據對總體分布形態等進行推斷的方法。由于非參數檢驗方法在推斷過程中不涉及有關總體分布的參數因此而得名的
參數檢驗
是在總體分布形式已知的情況下,對總體分布的參數入均值丶方差等進行推斷的方法。也就是數據分布已知,比如滿足正態分布。
繪圖函數
R語言四大作圖系統
1丶基礎繪圖系統
2丶lattice包
3丶ggplot2包
4丶grid包。
R 基礎繪圖系統
1丶高級繪圖
高級繪圖是一步到位,可以直接繪制出圖;
2丶低級繪圖
而低級繪圖,不能單獨使用,必須在高級繪圖產生圖形的基礎上,對圖形進行調整,比如加一條線,加上標題文字等
散點圖:x和y兩個坐標數據
直方圖
因子類型,
熱力圖
矩陣類型
S3系統,像是重載分配不同名字的函數。

plot(women$height,women$weight)#散點圖 plot(as.factor(women$height))#直方圖 plot(mtcars$cyl) plot(as.factor(mtcars$cyl)) plot(as.factor(mtcars$cyl),mtcars$carb)#箱型圖 plot(mtcars$carb,as.factor(mtcars$cyl))#散列圖 plot(as.factor(mtcars$cyl),as.factor(mtcars$carb))#脊柱圖 plot(women$height~women$weight)#關系圖 fit<-lm(height~weight,data=women) fit plot(fit)#生成四幅圖 ls("package:graphics") demo(graphics)plot(women$height,women$weight)#散點圖 plot(as.factor(women$height))#直方圖 plot(mtcars$cyl) plot(as.factor(mtcars$cyl)) plot(as.factor(mtcars$cyl),mtcars$carb)#箱型圖 plot(mtcars$carb,as.factor(mtcars$cyl))#散列圖 plot(as.factor(mtcars$cyl),as.factor(mtcars$carb))#脊柱圖 plot(women$height~women$weight)#關系圖 fit<-lm(height~weight,data=women) fit plot(fit)#生成四幅圖 par() plot(as.factor(mtcars$cyl),col=c("red","green","blue"))

自定義函數
偏度,是統計數據分布偏斜方向和程度的度量,是統計數據分布非對稱程度的數字特征。
峰度,又稱峰態系數。表征概率密度分布曲線在平均值出峰值高低的特征數

myfun<-function(x,na.omit=FALSE) {if(na.omit)x<-x[!is.na(x)];其他巴拉巴拉的省略 }

數據分析實戰
抽絲撥簡,
哪些有影響,哪些主要的哪些次要的哪些是,正影響,哪些是負影響。

線性回歸

summary() fit<-lm(weight~height,data = women) coefficients(fit)#截距和系數 confint(fit)#置信區間默認為95%的自信區間 confint(fit,level = 0.5)#設置為50%的置性區間 fitted(fit)#擬合模型的預測值 women$weight-fitted(fit) #殘差 residuals(fit) women women1<-women predict(fit,women1)#用擬合模型對新的進行預測 plot(fit) plot(women$height,women$weight) abline#繪制出擬合曲線 fit2<-lm(weight~height+I(height^2),data=women) fit2 summary(fit2) plot(women$height,women$weight) abline(fit) lines(women$height,fitted(fit2),col="red") fit3<-lm(weight~height+I(height^2)+I(height^3),data=women) fit3 lines(women$height,fitted(fit3),col="blue")

不能過度建模,這個是對于數據集的建模而不是實際數據的建模
多元線性回歸

summary() fit<-lm(weight~height,data = women) coefficients(fit)#截距和系數 confint(fit)#置信區間默認為95%的自信區間 confint(fit,level = 0.5)#設置為50%的置性區間 fitted(fit)#擬合模型的預測值 women$weight-fitted(fit) #殘差 residuals(fit) women women1<-women predict(fit,women1)#用擬合模型對新的進行預測 plot(fit) plot(women$height,women$weight) abline#繪制出擬合曲線 fit2<-lm(weight~height+I(height^2),data=women) fit2 summary(fit2) plot(women$height,women$weight) abline(fit) lines(women$height,fitted(fit2),col="red") fit3<-lm(weight~height+I(height^2)+I(height^3),data=women) fit3 lines(women$height,fitted(fit3),col="blue") states<-as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")]) fit<-lm(Murder~Population+Illiteracy+Income+Frost,data=states) summary(fit) coef(fit) options(digits = 4) coef(fit) mtcars fit<-lm(mpg~hp+wt+hp:wt,data = mtcars) summary(fit) ?AIC#赤則信息模型 fit1<-lm(Murder~Population+Income+Frost,data = states) fit2<-lm(Murder~Population+Income,data=states) AIC(fit1,fit2)#越小越好 #多了就不行 #用逐步回歸法向前逐步回歸向后逐步回歸或者 #全子集回歸法全部可能的模型取最佳的模型,如果變量太多了需要大量的機算 library(MASS) stepAIC(fit,direction = "backward")#逐步回歸法 library(leaps) regsubsets(Murder~Population+Illiteracy+Income+Frost,data=states,nbest=4) #全子集回歸

回歸診斷
這個模型是否是最佳模型?
模型多大程度滿足OLS模型的統計假設?
模型是否經得起更多數據的檢驗?
如果擬合出來的模型指標不好,該如何繼續下去?

要使用最小二乘法進行OLS模型統計假設
1丶正態性:對于固定的自變量值,因變量值成正態分布。
2丶獨立性:因變量之間相互獨立。
3丶線性:因變量與自變量之間為線性關系。
4丶同方差性:因變量的方差不隨自變量的水平不同而變化。也可稱作不變方差。
R系數安裝包
plot(fit)
生成的四符圖。
第一幅殘差擬合圖,表示因變量和自變量是否成線性關系。圖中的點為殘差值的分布,線為擬合曲線如果貼合度可以說明數據成線性分布
QQ圖用于描述正態性
第三幅圖為位置與尺寸圖,用來描述同方差性
最后一幅圖是殘差與杠桿圖,提供了對單個數據值的觀測,可以看到哪些點偏差較遠。較遠的點為離群點,還可以看到高杠桿點:異常變量的組合和強影響點:影響較大可以用Cook‘distance來鑒別。

模型是否經得起更多數據的驗證呢。
可以使用抽樣法驗證
1丶數據集中有1000個樣本,隨機抽取500個數據進行回歸分析;
2丶模型建好之后,利用predict函數,對剩余500個樣本進行預測,比較殘差值;
3丶如果預測準確,說明模型可以,否則就需要調整模型
方差分析
方差分析,稱為Analysis of Variance,簡稱ANOVA,也稱為“變異數分析”,用于兩個及兩個以上樣本均數差別顯著的性檢驗。從廣義上來講,方差分析也屬于回歸分析的一種。只不過現象回歸的因變量一般是連續變量。而當自變量是因子時,研究關注的重點通常會從預測轉向不同組之間差異的比較。這就是方差分析
R中的因子
計算頻數
獨立性檢驗
相關性檢驗
方差分析
主成分分析
因子分析

方差分析會大量用在科學研究中,例如實驗設計時,進行分組比較,例如藥物研究實驗,處理組與對照組進行比較
方差分析
1丶單因素方差分析ANOVA(組內,組間)
t檢驗和兩組方差分析等價
2丶雙因素方差分析 ANOVA
既含有組間又含有組內
3丶協方差分析 ANCOVA
協變量,方差分析中,包含協變量,就屬于協方差分析
協變量:協助變量?如抑郁癥對焦慮癥有影響
4丶多元方差分析 MANOVA
如果方差研究中包含了多個因變量,那么這種實驗設計就稱為多元方差分析
5丶多元方差分析 MANCOVA
如果多元方差變量中存在協變量

library(multcomp) attach(cholesterol) table(trt) aggregate(response,by=list(trt),FUN=mean) fit<-aov(response~trt,data=cholesterol) summary(fit) fit.lm<-lm(response~trt,data=cholesterol) #lm遇到變量是因子時就會將一系列對照變量來替換因子 ?litter litter table(litter$dose) #單因素的協方差公式y~x+A x是協變量 avo(,data=) manova(,data=)

功效分析
將數據集減小的分析方法。自己查自己找!
廣義線性模型
glm自己查去,就是改變回歸分析僅僅能在正態分布的時候使用的情況
Logistic回歸

主成分分析
就是將多個變量通過線性組合變成幾個比較少的變量來分析。建模自己查,函數自己查
因子分析
將每個變量分解為相同新定義參數的組合,建模自己查函數自己查
購物籃分析
r里面的內置函數集里面有
差不多就這樣

總結

以上是生活随笔為你收集整理的R语言学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。