統計學基礎與R語言----1(簡介與一些R函式介紹)
最近在看一些機器學習的書,想起自己以前學的R和統計學,感覺以前都是囫圇吞棗,沒有搞清楚。現在重新把以前的書拿出來讀一讀,並把程式碼再敲一遍,感覺收穫還是蠻多的。
1.1 我的參考書籍
R語言學習書籍:資料探勘與R語言
統計學:R語言與統計分析
1.2 程式設計環境
win10 + R-64位 + RStudio
1.3 R的簡介與入門
R是一種解釋性語言,而不是編譯語言,R裡面有豐富的函式與包(類似python中的模組)。
R中所有的函式後都帶有圓括號以區別於物件(object). 當R執行時,所有變數、資料、函式及結果都以物件的形式存入計算機的活 動記憶體中,並冠有相應的名字代號. 我們可以通過一些運算(如算術、邏輯、比較等)和一些函式(其本 身也是物件)來對這些物件進 行操作。
如:
n <- 10 #列出記憶體中的 ls() #刪除原有記憶體中的 rm(list = ls()) #列出系統給R的記憶體限制 memory.limit() #列出系統當前佔用的記憶體 memory.size(F) #列出當前系統分配的記憶體(動態調整的) memory.size(T) #R中的幫助文件 # ? 獲得memory.limit的相關資訊 # 注意函式名要加雙引號當做引數使用 ?memory.limit help('ls') example("mean") help("help") #apropos 獲得所有名字中含有指定字串“fun”的函式,但只會在被載入 # 記憶體中的程式包中進行搜尋. apropos("fun") #獲取ls函式的引數 args('ls')
1.4載入資料並進行簡單的統計分析
?mtcars #控制檯顯示mtcars資料 mtcars #顯示mtcars 資料前七條資料 head(mtcars) #顯示mycars的 變數 names(mtcars) #修改mtcars中的資料 data.entry 或者直接edit()/fix() #命令data.entry( )和edit( )都可用於編輯向量、矩陣、資料 #框和列表,前者啟用的都是R的資料編輯器, 後者有所不同: 對於向量、 #列表和陣列edit( )啟用的是R Editor. data.entry(mtcars) edit(mtcars) mtcars #mtcars fix(mtcars) MTcars <- edit(mtcars) MTcars mtcars mtcars$cyl data.entry(mtcars) mtcars$cyl # 貼上資料到R搜尋區 不然只能使用mtcars$cyl訪問 attach(mtcars) cyl #變數cyl取3個值:4,6,8,相應的頻數為11, 7, 14 table(cyl) #cyl的頻數直方圖 barplot 僅適用於數值變數 barplot(table(cyl),xlab = '汽缸數') #畫莖葉圖(stem-and-leaf plot), stem(mpg) #畫直方圖 hist(mpg) #畫箱體圖 boxplot(mpg) #計算均值 mean(mpg) #計算截去10%的平均值 mean(mpg,trim = 0.1) #按分組變數cyl計算mpg的分組平均值 tapply(mpg,cyl,sum) ?tapply #四分位數的極差(interquartile range) IQR(mpg) #樣本常用的分位數: 極小、極大、中位數及兩個四分位數 quantile(mpg) #得到給定概率的樣本分位數 probs = c(0.1,0.5,99.5)/100 quantile(mpg,probs = probs) ?quantile probs = c(25,50,75)/100 quantile(mpg,probs = probs) #計算常用的描述性統計量, 它們分別是最小值(Min.)、第一四分位數(1st #Qu.)、中位數(Median)、平均值(Mean)、第三分位數(3rd Qu.)和最大 #值(Max.) summary(mpg) #計算標準差 sd(mpg) #計算中位絕對離差(median absolute deviation) # mad(mpg) #尋找二元關係 ?legend #按照cyl分組 畫出散點圖 plot(mpg~hp,col = 'blue' ,pch=cyl) #新增圖例(x,y) 表示位置 pch散點圖中點的symbol legend(230,20,pch=c(4,6,8), legend=c("4 cylinders","6 cylinders","8 cylinders")) model <- lm(mpg~hp) abline(model,lty=3) #殘差分析 res = resid(model) plot(res) hist(res) qqnorm(res) #分析擬合結果 # 一些統計名詞: # 相關係數:自變數X和因變數Y的協方差/標準差的乘積。 # 協方差:兩個變數變化是同方向的還是異方向的。X高Y也高,協方差就是正,相反,則是負。 # 為什麼要除標準差:標準化。即消除了X和Y自身變化的影響,只討論兩者之間關係。 # 因此,相關係數是一種特殊的協方差。 # cor(mpg,hp) # R平方:R2=SSR/SST=1-SSE/SST # SST (total sum of squares):總平方和 # SSR (regression sum of squares):迴歸平方和 # SSE (error sum of squares) :殘差平方和。 # 殘差(residual):實際值與觀察值之間的差異 # 標準差:表示個體間變異大小的指標,反映了整個樣本對樣本平均數的離散程度, # 是資料精密度的衡量指標 # sd(mpg) # 標準誤:在抽樣試驗(或重複的等精度測量) 中, 常用到樣本平均數的標準差, # 亦稱樣本平均數的標準誤或簡稱標準誤( standard error of mean) 。 # 因為樣本標準差s 不能直接反映樣本平均數x 與總體平均數μ究竟誤差多少, # 所以, 平均數的誤差實質上是樣本平均數與總體平均數之間的相對誤。 # 反映樣本平均數對總體平均數的變異程度,從而反映抽樣誤差的大小 , # 是量度結果精密度的指標 #參考別人寫的類似於qqnorm my.qqnorm <- function(x){ op <- par(mfrow = c(1, 1)) n <- seq(1, length(x)) qqnorm(x) xais <- qnorm((n -0.5)/ length(x)) # xais <- qnorm((n - (.5*length(x)) /length(x))/ length(x)) cbind(xais, x) par(mfrow = c(2, 1)) qqnorm(x) plot(sort(x) ~ xais, main = 'my qqnorm') par(op) } x <- rnorm(30, mean = 20, s = 50) my.qqnorm(x) detach(mtcars)
1.5筆記
1.qqplot & qqnorm & qqline Quantile-Quantile Plot
QQplot的橫座標是theoretical quantilies,縱座標是sample quantilies
sample quantilies是你的樣本原始的資料(sort之後的),theoretical quantilies 參考(http://onlinestatbook.com/2/advanced_graphs/q-q_plots.html)計算。
解釋:
假設你有100個數據,那麼每個資料都看做一個分位點,sample quantilies就是100個數據本身(1%的分為點就是100個數中最小的那個數,2%的分為點就是100個數中 第二小的那個數,依次類推),theoretical quantilies是什麼呢?他是標準正態 分佈的分位數100個數取哪些分為點呢?具體的計算方法是這樣的,(1:100-0.5)/100 你可以得到0.005 0.015 0.025 ...0.995,然後分別計算在0.005 0.015 0.025 ...0.995的面積下,標準正態分佈的分位數。
2.一些統計名詞
# 相關係數:自變數X和因變數Y的協方差/標準差的乘積。
# 協方差:兩個變數變化是同方向的還是異方向的。X高Y也高,協方差就是正,相反,則是負。
# 為什麼要除標準差:標準化。即消除了X和Y自身變化的影響,只討論兩者之間關係。
# 因此,相關係數是一種特殊的協方差。
# cor(mpg,hp)
# R平方:R2=SSR/SST=1-SSE/SST
# SST (total sum of squares):總平方和
# SSR (regression sum of squares):迴歸平方和
# SSE (error sum of squares) :殘差平方和。
# 殘差(residual):實際值與觀察值之間的差異
# 標準差:表示個體間變異大小的指標,反映了整個樣本對樣本平均數的離散程度,
# 是資料精密度的衡量指標
# sd(mpg)
# 標準誤:在抽樣試驗(或重複的等精度測量) 中, 常用到樣本平均數的標準差,
# 亦稱樣本平均數的標準誤或簡稱標準誤( standard error of mean) 。
# 因為樣本標準差s 不能直接反映樣本平均數x 與總體平均數μ究竟誤差多少,
# 所以, 平均數的誤差實質上是樣本平均數與總體平均數之間的相對誤。
# 反映樣本平均數對總體平均數的變異程度,從而反映抽樣誤差的大小 ,
# 是量度結果精密度的指標
3.理解rbinom中的引數
for (n in c(10,20,50)) {
x = rbinom(100,n,p)
hist(x,probability = T,main = paste("n = ",n))
xvals = 0: n
points(xvals,dbinom(xvals,n,p),type = 'h',lwd = 3)
}
rbinom(100,10,0.5)
隨機進行100次分佈為(10,0.5)的二項式分佈
dbinom(1,10,0.5)
成功進行一次在分佈為(10,0.5)的概率
pbinom(1,10,0.5) = dbinom(0,10,0.5)+dbinom(1,10,0.5)
根據次數得到小於等於該次數的概率值
qbinom(0.01,10,0.5)
根據概率得到分位線
dnorm gives the density, pnorm gives the distribution function, qnorm gives the quantile function, and rnorm generates random deviates
相關推薦
統計學基礎與R語言----1(簡介與一些R函式介紹)
最近在看一些機器學習的書,想起自己以前學的R和統計學,感覺以前都是囫圇吞棗,沒有搞清楚。現在重新把以前的書拿出來讀一讀,並把程式碼再敲一遍,感覺收穫還是蠻多的。 1.1 我的參考書籍 R語言學習書籍:資料探勘與R語言 統計學:R語言與統計分析 1.2 程式設計環境
R語言︱H2o深度學習的一些R語言實踐——H2o包
每每以為攀得眾山小,可、每每又切實來到起點,大牛們,緩緩腳步來俺筆記葩分享一下吧,please~———————————————————————————R語言H2o包的幾個應用案例 筆者寄語:受啟
libgo 原始碼剖析(1. libgo簡介與排程淺談)
閒談 協程是一個很早的概念了,早些年的遊戲行業中已經大規模地在使用,像lua、go這些語言中的協程原語已經相對比較完善了,一般來說直接使用就好,但是在系統後臺開發上,出現的時間並不長。我是做C++方向的後臺開發,目前國內一些公司也開源了一些C++協程庫,但目前來說,還是在逐步完善的階段。最早接觸的C++協程
libgo 源碼剖析(1. libgo簡介與調度淺談)
也會 win todo nag 自旋鎖 階段 上下文切換 環境 src 閑談 協程是一個很早的概念了,早些年的遊戲行業中已經大規模地在使用,像lua、go這些語言中的協程原語已經相對比較完善了,一般來說直接使用就好,但是在系統後臺開發上,出現的時間並不長。我是做C++方向的
PBFT概念與Go語言入門(Tendermint基礎)
Tendermint作為當前最知名且實用的PBFT框架,網上資料並不很多,而實現Tendermint的Go語言,由於相對小眾,也存在資料匱乏和模糊錯漏的問題。本文簡單介紹PBFT概念和Go語言[&開發環境]關鍵知識點,其中大部分都可單獨成篇,限於篇幅,文中提供諸多連結
Python與自然語言處理(三):Tensorflow基礎學習
看了一段時間的TensorFlow,然而一直沒有思路,偶然看到一個講解TensorFlow的系列 視訊,通俗易懂,學到了不少,在此分享一下,也記錄下自己的學習過程。 教學視訊連結:點這裡 在機器學習中,常見的就是分類問題, 郵件分類,電影分類 等等 我這裡使用iris的
R語言︱文字(字串)處理與正則表示式
處理文字是每一種計算機語言都應該具備的功能,但不是每一種語言都側重於處理文字。R語言是統計的語言,處理文字不是它的強項,perl語言這方面的功能比R不知要強多少倍。幸運的是R語言的可擴充套件能力很強,DNA/RNA/AA等生物序列現在已經可以使用R來處理。nchar字元的個數
R語言筆記(一):R與Rstudio的安裝(Windows)
初學R語言,當然少不了這為程式設計設計的IDE:RStudio R的獲取與安裝 選擇download R for Windows,下載下來安裝即可(若是其他系統,按照要求安裝即可,這裡僅限於wi
1 python簡介與安裝
python安裝在學習一門語言之前,咱們先了解為什麽我們要學它。python是一個腳本語言,語言簡單,兼容各版本系統,學習這門語言將對以後的運維日常工作提供極大的便利。1.1 Linux 下 python 安裝首先從官網下載所需要的 python 版本,解壓後直接編譯安裝即可,[root@server /]#
bp神經網絡模型推導與c語言實現(轉載)
思路 包括 表示 現在 clas 兩個 通過 val c++ 轉載出處:http://www.cnblogs.com/jzhlin/archive/2012/07/28/bp.html BP 神經網絡中的 BP 為 Back Propagation
R語言學習(7)字符串和因子
const sprint 水平 tostring 大小 pow 個數 end paste 字符串和因子 1.字符串 創建字符串 > c("Hello","World")[1] "Hello" "World" paste( ) 函數連接字符串 >
[讀書筆記] R語言實戰 (四) 基本數據管理
mean 圖片 數值 函數 nbsp 一個 img order 分享 1. 創建新的變量 mydata<-data.frame(x1=c(2,2,6,4),x2=c(3,4,2,8)) #方法一 mydata$sumx<-mydata$x1+mydat
Linux服務管理1-1 課程簡介與系統運行級別
post 級別 .com mage div 分享圖片 inux 簡介 log Linux服務管理1-1 課程簡介與系統運行級別
《R語言實戰(第2版)》高清中文版PDF+高清英文版PDF+源代碼
英文版 高清 r語言 color pro mar ffffff text 技術分享 下載:https://pan.baidu.com/s/1DMDKWi9RPs4pYNbK1Kvc_A 《R語言實戰(第2版)》高清中文版PDF+高清英文版PDF+源代碼 高清中文版558頁,
學習筆記-C語言6(指標與動態記憶體分配)
1. 指標 指標的引入: 指標是C語言最強大的功能之一,使用指標可以儲存某個變數在記憶體中的地址,並且通過操作指標來對該片記憶體進行靈活的操作,例如改變原變數的值,或者構造複雜的資料結構。指標一般初始化為NULL(0)。& 是取地址運算,* 是間接運算子,通過 * 可以訪問與修改
學習筆記-C語言1(程式設計入門)
C語言和C++是作為一名程式設計師必備技能,非科班出身的我對這些語言一直是一知半解,後來更是直接使用簡單易上手的python,matlab語言。今天終於開始系統的學習了C了,記錄一些學習筆記,方便後面檢視,如有不妥,還請幫忙指正。 1. 檔案開頭 檔案開頭要加入:# include<
Go語言實現區塊鏈與加密貨幣-Part2(交易與地址,餘額翻倍漏洞)
準備工作: 安裝依賴包:$ go get golang.org/x/crypto/ripemd160 安裝失敗請檢視:https://blog.csdn.net/ak47000gb/article/details/79561358 交易 交易(transaction)是比特幣
◮ R語言筆記(六): 迴圈與R指令碼
前面幾部分介紹了向量、矩陣、陣列等的操作, 接下來就要講到迴圈輸出的內容,這就涉及了R語言中的迴圈語句的表達: for() 迴圈 while() 迴圈 接下來再介紹R指令碼的編寫與使用; ***********************************
Oracle教程(1)-Oracle簡介與最簡單的語句
Oracle11g資料庫的安裝swap建議要求不小於1G,也就是實體記憶體不小於2G 一,最簡單的查詢語句 【*】代表所有的列,它與select之後列出的所有的列名是一樣的 如果不用*,select後面加特定列,就可以查詢出特定列的資料 slect後面加多個特定名
Mac版R語言入門(三)資料的匯入
R語言(三)資料的匯入,包括以下幾個部分的內容: R語言問題討論交流,歡迎關注我的新浪微博:Jenny愛學習 1.資料型別介紹