指令 用法簡介

20  Download (0)

全文

(1)

R commands(11.09.13)

(Jah Tsai since 2011.01.21 jah_tsai@hotmail.com) 參考來源:R Help & R 軟體 應用統計方法(修訂版) 陳景祥

統計計算與模擬 余清祥(NCCU Stat.) & 多變量分析 洪英超(NCCU Stat.)

使用時機:已對 R 指令有基本了解,但對於不常用的指令還未完全熟記,或遇到問題時想知道 R 有哪些指令可用,所以整理此表以供簡單查詢,詳細用法請見參考資料。

指令 用法簡介

基本操作

source("路徑") 載入外部程式

sink("路徑")+sink() 紀錄程式執行結果

demo(套件) 展示套件的示範功能

example(函數) 執行範例程式

library(套件) 載入套件

require(套件) 在自訂函數中使用以載入套件

detach(package:套件) 卸載以載入的套件

install.packages(套件) 安裝套件

data(資料檔) 載入資料檔

head(資料檔,n);tail(資料檔,n) 查看前(後)n 列資料

attach(資料檔) 使用後可直接使用變數名稱操作

with(資料檔,{程式…}) 與 attach 同,但效力限制在{}範圍 update.packages(checkBuilt=T,ask=F) 安裝新版 R 後,用以更新套件

getwd() 查詢目前工作目錄

setwd("路徑") 改變工作目錄

objects() 列出目前用過的所有變數,指定物件則列出可呼叫名稱

rm(物件) 清除物件,(list=ls())清除所有

.First=function{} 設定啟動 R 前所執行的程式

.Last=function{} 設定結束 R 前所執行的程式

 基本運算

%/% 整除

%% 餘數計算

& 可用於向量的 and

| 可用於向量的 or

seq(,,by) 產生以 by 為遞增值的數列

length() 計算元素個數

sum() 元素相加

cumsum() 累積相加

prod() 元素相乘

cumprod() 累積相乘

(2)

變數與資料

 向量變數

x[-i] 刪除第 i 個元素,其後遞補

matrix(x,r,c,byrow) 將 x 轉成 r×c 矩陣,(byrow=T)以列排序

names() 查詢或建立向量的元素名稱

 陣列變數

array(x,dim=c()) 依照 dim 維度建立 array 變數

dimnames()[[k]] 第 k 維度的名稱

aperm(A,perm=c()) 依照 perm 順序轉換 A 矩陣

 矩陣變數

t() 轉置矩陣

diag() 對角線函數

det() 矩陣行列式值

solve() 反矩陣

solve(A,b) 計算 Ax=b 的 x 解

eigen() 計算矩陣特徵值和特徵向量

outer(x,y,"*") 將 x 和 y 依照"*"的方法運算

chol(A) 將正定對稱方陣 A 執行 Cholesky 上三角分解

qr(A);qr.Q(qr(A));qr.R(qr(A)) 執行 QR 分解

svd(A) 執行 SVD 分解

 因子變數

factor(x,levels=c()) 依照 levels 排列建立 factor 變數

levels() 查詢或設定分類資料

ordered(x,levels=c()) 依照 levels 由小到大順序建立有序 factor 變數

 串列變數

list(name1=value1,…) 建立 list 變數

unlist() 將 list 變數轉成 table 變數

attributes() 查看個元素的名稱

 資料框架變數

data.frame() 建立資料框架變數

 時間數列變數

ts(x,start,end,frequency) 建立時間數列變數

 與變數有關的工具函數

attr(物件,"屬性名稱") 查詢個別的屬性內容

class(物件);str() 查詢物件的類別;結構

abbreviate(,minlength=n) 將變數名稱縮寫,最小長度為 n

which(,arr.ind) 找出符合條件的元素,(arr.ind=T)則傳回指標 which.max();which.min() 找出向量第一個找到的最大值;最小值

car::which.names() 找出符合指定元素名稱的指標

match(x1,x2,nomatch=T) 從 x1 中找出 x2 的值

(3)

 資料輸入與輸出

file.choose() 以視窗選取來替代路徑,搭配輸入函數

list,files(,full.name=T) 將路徑底下所有檔案和目錄存成文字向量 scan(file,what,sep,skip,nlines) 資料輸入

write() 資料輸出(輸出矩陣前先轉置)

read.table(header,na.strings,skip) 輸入多變數資料檔

read.csv() 輸入逗號分隔的 CSV 格式檔案

read.csv2() 輸入分號分隔的 CSV 格式檔案

read.delim() 輸入 TAB 鍵分隔的檔案

read.fwf() 輸入固定寬度格式檔案

write.table() 輸出多變數資料檔

write.csv() 輸出逗號分隔的 CSV 格式檔案

write.csv2() 輸出分號分隔的 CSV 格式檔案

save() 將部分物件儲存為 Rdata 格式

save.image() 將所有物件儲存為 Rdata 格式

load() 載入 Rdata 檔內的所有物件

 存取其他軟體的資料檔

gdata::read.xls 載入 xls 檔

xlsx::read.xlsx 載入 xlsx 檔

xlsReadWrite::write.xls 輸出 xls 檔

xlsx::write.xlsx 輸出 xlsx 檔

foreign::write.foreign() 輸出資料給 SAS、SPSS、Stata foreign::data.restore() 讀入 S-Plus 以 data.dump 輸出的檔案

foreign::read.S() 讀入 S-Plus 二進為資料檔 foreign::read.xport() 讀入 SAS Transport 資料檔

foreign::read.ssd() 讀入 SAS .ssd 與.sas7bdat 資料檔 foreign::read.spss() 讀入 SPSS 以 save 或 export 輸出的資料檔

foreign::read.mtp() 讀入 Minitab Portable 格式檔(.mtp)

 資料傳換

%in% 判斷是否在某個集合內

cut(,break) 根據 break 的切割點將資料轉換為 factor 變數 car::recode(,recodes) 以 recodes 規則將資料重新編排(lo 代表 min、hi 代表 max)

 資料排序

sort(,decreasing=F) 將向量元素依照大小順序排列

rank() 傳回向量元素的排序等級

order(,dec=F) 傳回排序後元素在原向量的指標

rev() 將整個向量倒過來排

 資料切割

split(x,f) 將 x 元素各對應的分類變數 f 分割資料

subset(,subset,select) 以 subset 的邏輯判斷和 select 之選擇來篩選變數

(4)

 資料合併

union() 聯集兩個變數

rbind() 逐列合併

cbind() 逐行合併

merge() 合併擁有一列以上相同的兩資料框架

 資料轉換

as. 改變變數或元素的型態

stack()、unstack() 將 data.frame 各直行推疊在一起(unstack 作還原動作)

reshape() 做長型資料和寬型資料之間的轉換

melt() 將寬型資料轉換為長型資料

cast() 將 melt 處理後的變數彙整計算

edit() 以試算表介面編輯變數,僅供下次使用

fix() 以試算表介面編輯變數,改變後固定

View() 以試算表介面查看變數

view(x,n,last,random) 查看變數的 n 個元素

expand.grid() 將各變數交叉相乘排列

gtools::permutations(n,r,v,set,rep) 列出 v 向量前 n 個元素選 r 個排列的所有可能

format() 將資料轉成相同格式

(5)

常用函數與程式技巧

 數學函數

exp();log(x,base) 指數;對數函數

sin();cos();tan();asin()… 三角函數;反三角函數

abs() 絕對值函數

sqrt() 開根號函數

sign() 判斷正負號

ceiling(x) 大於等於 x 的最小整數

floor(x) 小於等於 x 的最大整數

round(x,n) 將 x 四捨五入到第 n 位

trunc(x) 傳回 x 的整數部分

signif(x,k) 顯示 x 的 k 為有效位數

max();min() 傳回元素最大值;最小值

pmax(x,y,…);pmin() 傳回指定向量各分量的最大值;最小值

choose(n,k);factorial(x) Ckn ; x!

integrate(f, lower, upper) 設定上下限對 f 函數積分,範圍可以是 Inf cubature::adaptIntegrate(f,

lowerLimit,upperLimit,tol) 多變數積分

 apply 系列函數

apply(x,MARGIN,f,...) 以 f 函數將矩陣或資料框架逐列、逐行(MA=1、2)計算 tapply(x,INDEX,f,...) 以 f 函數將向量依 INDEX 分類運算(...可設定 f 變數) sapply(x,f,...)、lapply(x,f,...) 用於向量、list、資料框架,lapply 只會回傳 list

 table 系列函數

tabulate(x,nbins) 彙整正整數次數或分類出現次數(nbins 設定項目個數) table(x1,x2,…,xk,dnn) x 為 factor、list、data frame,彙整分類組合發生次數 margin.table(X,margin) 對 table X 逐列、逐行(MA=1、2)加總

colSums();rowSums() 計算逐行(逐列)總和

colMeans();rowMeans() 計算逐行(逐列)平均

prop.table(X,margin) 計算逐列、逐行(MA=1、2)邊際比例 不設定 MA 則計算佔所有格子的比例

as.data.frame(X,responseName) 將 table X 各分類數值以 frame 顯示,res 設定數值名稱 xtabs(計數~分類 1+…,data=X,subset) 指定 X 內分類來彙整指定計數,用 subset 邏輯篩選

ftable() 依照其分類變數作成扁平 table

xtable::xtable +

print(xtable,type,file,append)

將 X 彙整的數值輸出美觀表格,type="html"輸出 HTML 格 式、type="latex"輸出 LaTex 格式,儲存在 file 路徑檔案

 遺失值函數

na.fail(x) 偵測 x 是否有遺失值,若有則出現錯誤訊息並停止

na.omit();na.exclude() 去除 NA 值

is.na() 判斷個元素是否為 NA

na.rm=T 在部分函數內使用,計算時可刪除遺失值

(6)

 optimization 系列函數

stats4::mle(minuslogl,start) minus 為計算(-1)*log-likelihood 自訂函數,以 stat 設 定參數起始 list 變數來計算最大概似估計值 optimize(f,interval,max=F) 計算一維函數 f 的最佳解

uniroot(f,interval) 計算一維函數 interval 內的根 polyroot(c(z0,z1,z2,…)) 求多項式之實根、虛根 zk 為 k 次方係數 optim(par,f,lower,upper) 以 par 起始值計算多維函數最佳解 nlmind(par,f,lower,upper);nlm(f,p) 以 par 起始值計算多維函數最佳解

constrOptim(theta,f,ui,ci) 以 theta 初值計算多維函數在限制式(ui*x≧ci)下最佳解 DEoptim::DEoptim(fn,lower,upper) Differential Evolution Optimization

 文字與字串處理

cat("字串或變數",file,sep) 在螢幕或外部檔案顯示一些計算結果或文字 sprintf("%",字串或變數) 依照%類型設定,精準控制計算輸出格式 print.data.frame(X,digits=k,

quote=F,right=T)

印出 data frame 變數內容,至少印出 k 位數 quote 設定是否加雙引號,right 設定是否靠右 paste(…,sep,collapse) 將各字串變數組合,可將所有元素用 collapse 連結一起 rep(x,time,length.out,each) 重複 x,time=x 重複次數,each=x 內元素重複次數 gl(n,k,length,labels,ordered=F) 以 n 個分類個數重複 k 次來設定 labels 分類 factor 變數

substr(x,start,stop) 在 x 中取出從 start 到 end 的子字串 strtrim(x,width) 以 width 決定取出 x 的寬度 strsplit(x,split) 依 split 字元將 x 分開

sub("舊字串","新字串",x);gsub() 將 x 中所有找到的舊字串,用新字串代替

grep(pattern,x,ignore.case=T) 輸出 x 內指定字串指標,ignore.case 設定是否忽略大小寫

 常見的 R 程式技巧

proc.time();system.time() 測量程式碼執行時間

Sys.time() 讀取時間

assign("變數名稱",運算式) 自動建立變數,並將運算式值存入 tutor::eval.string("字串") 將字串指令執行

 自訂函數

名稱=function(參數,...){}

參數可以有預設值、也可以是其他已定義之函數 內部變數不影響外部(除非使用<<-)

可用...代表其他需要傳入的參數 函數可以呼叫函數本身成為遞迴

invisible() 用在函數回傳值則函數不顯示計算結果

stop(op) 停止函數計算;並輸出 Error: op

warning(op) 執行函數計算;最後輸出 Warning message: op

args() 顯示函數的參數與預設值

formals() 顯示函數個參數特質

body() 顯示函數的內容

"%anything%"=function(a,b){} 自訂二元運算子

(7)

 流程控制

ifelse(,T,F) 用於二分類邏輯判斷、成立執行 T、否則執行 F

if(){ + }else if(){ + }else{} 用於多分類的邏輯判斷

switch(計算值,運算式 1, 運算式 2…) 依照計算值(整數或文字)決定要執行的運算式 for(k in seq){} 以 k 在範圍 seq 中逐步執行運算式

while(){} 依照(…)的判斷來執行運算式

repeat{} 重複執行運算式直到跳出(break)

break 終止並跳離迴圈

next 跳過其後的運算,直接執行下一次迴圈

(8)

繪圖功能

 par 圖形設定函數

mai=c(a,b,c,d) 設定邊界值(inch),順序為底左頂右

mar 與 mai 同,單位為文字行數

mfcol=c(a,b) 以 a×b矩陣將多張圖形畫在同一頁,依行排序

mfrow=c(a,b) 以 a×b矩陣將多張圖形畫在同一頁,依列排序

layout(M) 設定比較不對稱的多圖佈局,依照M矩陣設計位置

fig=(x1,x2,y1,y2) 依照座標將圖擺在設定位置上

 圖形基本設定參數

col=k or "顏色名稱"

設定顏色(0 白,1 紅,2 黑,3 綠,4 藍,5 天藍,6 紫,7 黃,8 灰) colors()可查詢顏色名稱

col.axis、col.lab、col.main、col.sub 改其他部分顏色

lty=k 設定線的種類(1 為實線、其他會各種虛線)

pch=k or "文字符號" 設定點的種類

font=k 1 為一般字體 2 為粗體字 3 斜體 4 粗斜體

font.axis…改其他部分的字體

lwd=k 設定 k 倍的線寬

cex=k 設定 k 倍的字型大小

cex.axis…改其他部分的字體

 高階繪圖函數

plot(x,y);plot(xy) 畫出 x,y 的散佈圖;畫出 xy(兩行的向量)的散佈圖

plot(f) f 為 factor,畫出 f 的長條圖

plot(f,y) 以 f 為分類畫出 y 數值的盒狀圖

plot(~x1+…+xk) 畫出 k 個變數配對的矩陣散佈圖

plot(y~x1+…+xk) 逐一畫出 y 對各變數的散佈圖(以 ENTER 切換)

curve() 畫出給定的函數曲線

pairs(X) X 為 data-frame、畫出 X 內行向量兩兩配對散佈圖

coplot(x~y|z) 以 z 為分類下的 x~y 散佈圖

qqnorm();qqline() 畫出常態機率圖(Normal Probability Plot); 畫最佳斜線

qqplot(x,y) 畫出 x、y 兩組資料間的 QQ 圖

hist(x) 畫出直方圖(以 breaks 設定分隔點、nclass 設定群數)

epicalc::dotplot() 畫出點狀圖

barplot() 畫出長條圖

boxplot() 畫出合鬚圖

pie(x,label) 以 label 為分類畫出 x 數值的圓餅圖

contour(x,y,z) 畫出等高線圖

image(x,y,z) 畫出有色彩的等高線圖

persp(x,y,z) 畫出三度空間透視圖(以 theta、phi 設定角度) misc3d::parametric3d() 畫出以兩個參數映射到 x、y、z 的 3D 圖形

matplot(x,y) 以 x 為橫軸,針對 y 的每一行畫圖

(9)

 高階繪圖函數共用的輔助參數

add=T 覆蓋在前一張圖形上

axes=F 不畫出座標軸

log="x";log="y";log="xy" 先將 x、y 的值取 log

type="" p 圓點、l 線、b 實心圓點和線、o 空心圓點和線、

s(S)階梯線、各點值在頂(底)端、h 垂直線、n 不畫圖 xlab="";ylab="" 設定軸的輔助說明文字

xlim=c(a,b);ylim=c(a,b) 將軸的範圍控制在(a,b) xaxt="n";yaxt="n" 不畫出座標軸格線 main="文字";sub="文字" 加上主標題、次標題

 附加圖形:低階繪圖函數

points(x,y) 加上圖點

lines(x,y) 加上直線

segments(x0,y0,x1,y1) 以設定座標加上線段

arrows(x0,y0,x1,y1,angle,code) 加上箭頭線段(angle 設定角度、code 設定箭頭位置)

text(x,y,labels) 在指定位置寫出指定文字

abline(a,b) 加上直線(y=ax+b)

abline(h=y);abline(v=x) 加上水平線或垂直線

polygon() 在指定位置畫出封閉多邊形、畫出陰影區域

legend(x,y,legend) 在指定位置畫出文字方塊

title(main,sub) 加上主標題或副標題

axis(side,at,tick,labels) 加上額外的座標軸

locator(n,type="n") 圖點座標位置查詢,最多點取 n 次

identify(x,y,n,label) 在指定點旁顯示其在原向量中的指標值,最多點取 n 次 expression(plotmath) 以 plotmath 撰寫規則畫出數學符號

 繪圖設備

windows() 圖行會顯示在視窗環境

postscript("路徑") 圖形輸出為.ps 檔

pdf("路徑") 圖形輸出為 pdf 格式

jpeg("路徑");png();bmp();tiff() 輸出各類圖檔格式

dev.off() 終止畫圖指令

(10)

機率統計

 機率分配

dnorm(x,mean,sd,log=F) 計算常態分配在 x 的機率密度函數值

pnorm(x,lower.tail=F,log.p=F) 常態分配累積到 x 機率值(lower=F 則機率從右尾算起) qnorm(p, lower.tail=F,log.p=F) 計算常態分配機率為 p 時的分為點

rnorm(n,mean,sd) 模擬常態分配 n 個隨機亂數

dbinom(size,prob) Binomial

dgeom(prod) Geometric

dhyper(x,m,n,k) Hypergeometric(Cxm *Ck-xn/ Ckm+n) dmultinom(size,prob) Multinomial

dnbinom(size,prob) Negative Binomial

dpois(lambda) Poisson

dbeta(shape1,shape2,ncp) Beta

dcauchy(location,scale) Cauchy

dchisq(df,ncp) Chi-Square

dexp(rate) Exponential

df(df1,df2,ncp) F

dgamma(shape,scale) Gamma(α,β)

MCMCpack::dinvgamma(shape,rate) Inverse Gamma dlnorm(meanlog,sdlog) Log-Normal dlogis(location,scale) Logistic mvtnorm::dmvnorm(mean,sigma) Multivariate Normal

dsignrank(n) Wilcoxon signed rank

dt(df,ncp) T

dunif(min,max) Uniform

i+floor((j-i+1)*dunif(x)) Discrete Uniform(i,j)

dweibull(shape,scale) Weibill

dwilcox(m,n) Wilcoxon

 機率計算

gamma(x);beta(a,b) Gamma function;Beta function

set.seed() 設定隨機種子

sample(x,size,re,pr) 從 x 中依照 pr 機率取出 size 個樣本(re=F 不放回) ecdf();plot.ecdf() 計算資料的經驗累積機率函數;畫出資料的經驗 CDF 圖形 density(x);plot(density(x)) 依資料計算密度函數;畫出 pdf 圖形

print();summary() 彙整計算結果

ConvergenceConcepts:: 提供函數以模擬的方式檢驗各種收斂狀況 qAnalyst::rapidFitFun() 對資料做各個分配的服從檢驗 MASS::fitdistr(x,"分配名稱") 做參數的估計

qAnalyst::andersonDarlingFun(x,

dis="",theta=c()) 檢定 x 是否與 theta 設定之參數下的 dis 相同分配

(11)

 敘述統計

mean(x,trim) 傳回 x 元素的算術平均,trim 決定去除資料比率

asbio::G.mean(x) 傳回 x 元素的幾何平均

median(x) 傳回 x 元素的中位數

var(x);sd(x) 傳回 x 元素的變異數、標準差

range(x) 傳回 x 的最大最小值

pracma::mode() 傳回 x 的眾數

quantile(x,pr) 計算第 pr*100 百分率下的值

IQR() 內四分位距

fivenum() 列出 min,Q1,median,Q3,max cor(X) X 為 data frame 時、傳回 X 的相關矩陣

cor(x,y) 計算 x、y 的相關係數

cov(x,y) 計算 x、y 的共變異數

TSA::skewness();kurtosis() 計算偏態;峰態係數

mad() 計算中位數絕對離差

stem() 莖葉圖

stats::scale(x, center,scale) 將 x 向量標準化

 單樣本推論

asbio::one.sample.z(x,null.mu, sigma,test)

單樣本 Z 檢定

(test="two.sided","lower","upper") asbio::power.z.test() 計算單樣本 Z 檢定的檢定力

t.test(x,mu,alternative,conf.level) t 檢定(alternative="two.sided","less","greater")

power.t.test() 計算 t 檢定的檢定力

binom.test(x,n,p,alt,conf) 母體比例 p 檢定(精確二項分配檢定) prop.test(x,n,p,alt,conf) 母體比例 p 檢定(比例檢定)

 雙樣本推論

t.test(x1,x2,alt,mu, paired=F,var.equal=T,conf)

雙樣本 t 檢定

(pair 設定是否為配對,var.eqal 設定變異數是否相等)

vat.test(x1,x2,alt) 檢定兩母體變異數是否相等

prop.test(c(x1,x2),c(n1,n2)) 雙樣本母體比例差異檢定 cor.test(x1,x2,alt,method,conf) 雙樣本相關係數檢

(meth="pearson","kendall","spearman")

 常態性檢定

shapiro.test() Shapiro-Wilk 檢定

nortest::ad.test() Anderson-Darling 檢定 nortest::sf.test() Shapiro-Francia 檢定 nortest::cvm.test() Cramer-von Mises 檢定 nortest::pearson.test() Pearson chi-square 檢定

nortest::lillie.test() Lilliefors(Kolmogorov-Smirnov) 檢定 tseries::jarque.bera.test() Jarque-Bera 檢定

(12)

 卡方檢定

chisq.test(x,p,rescale.p=F) 適合度檢定(檢定 x 是否服從 p 機率之分配) chisq.test(X,simulate.p.value=F) 齊一性檢定、獨立性檢定(X 為儲存列聯表之矩陣)

fisher.test() Fisher 精確獨立性檢定

 無母數檢定

UsingR::simple.median.test(x,mde) 單樣本中位數符號檢定

lawstat::runs.test() 隨機性檢定

tseries::runs.test() 二元資料隨機性檢定

wilcox.test(x,y,mu,paired=F) 兩樣本位置參數檢定(paired 設定是否獨立)

ks.test(x,y,...) 檢定是否為相同連續分配(y 可改成 p+分配, ...設定參數) kruskal.test(X); kruskal.test(x,g) 多樣本位置參數檢定(X 為 list;x 向量,g 分類)

BHH2::permtest() randomization test for small size samples coin::spearman_test(y~x) Spearman rank for test correlation psych::corr.test(x,y,use,method) Find and test the correlation

 其他

boot::boot(data,stat,r) Bootstrap Resampling

(13)

迴歸分析

lm(…,data,subset,x) 配置模型,x=T 回傳設計矩陣 predict(lm,newdata,

interval,level,se) 用模型對新資料做預測

anova(lm);aov(y~.) 對模型做 ANOVA 表

 羅吉斯迴歸

glm(…,data,family) Generalized Linear Models nnet::multinom(y~.) Fit Multinomial Log-linear Models

MASS::polr(y~.) Ordered Logistic or Probit Regression Design::lrm(y~.) Logistic Regression Model

epicalc::logistic.display(glm) 彙整 glm 計算結果 epicalc::mlogit.display(multinom) 彙整 multinom 計算結果 epicalc::ordinal.or.display(polr) 彙整 polr 計算結果

 結果擷取

deviance(lm) 擷取 SSE

residuals(lm);lm$residuals 擷取殘差

fitted(lm);lm$fitted.value 擷取配適值

coef(lm);lm$coef 擷取係數

effects(lm) 擷取正交效果估計值

vcov(lm) 擷取係數 Variance-Covariance 矩陣

formula(lm) 擷取原始模型

model.matrix(lm);lm$x 擷取設計矩陣

 模型檢測

lmtest::coeftest(lm) 係數顯著性檢定

car::durbinWatsonTest(lm) 殘差獨立性檢定

lmtest::dwtest(lm) 殘差獨立性檢定

car::ncvTest(lm) 殘差齊一性檢定

car::leveneTest(lm,data) 殘差齊一性檢定

lmtest::bptest(lm) 殘差齊一性檢定

Bartlett.test(y~.) 殘差齊一性檢定

cooks.distance(lm);car::cookd() Cook’s Distance

dfbetas(lm) DBETAS

dffits(lm) DFFITS

lm.influence(lm) 計算各類影響點的指標值

hat(X);hatvalues(lm) Hat matrix 的對角線元素(X 為設計矩陣) car::outlier.test(lm) Bonferroni Outlier Test

rstandard(lm) standardize residuals rstudent(lm) studentized residuals

car::vif(lm) 計算 VIF 值

covratio(lm) Covariance ratio

(14)

 變數篩選

step(lm,direction,k) 逐步迴歸(AIC:k=2,BIC:k=log(樣本數))

MASS::stepAIC() 逐步迴歸

lesps::leaps(X,y) All-Possible 選取(X 為自變數矩陣) lesps::regsubsets(X,y,nbest,

nvmax,method) 向前、向後、逐步、All-Possible

update(lm, .~. +x1-x2...) 新增或移除模型的解釋變數(第一個點為原始 y)

add1() 計算給定範圍內的單一變數加入模型的影響

drop1() 計算給定範圍內的單一變數離開模型的影響

offset() 強制加入係數為 1 的解釋變數項

AIC(lm,k) 計算 AIC、BIC

extractAIC(lm,k) 計算 AIC、BIC

BIC() 計算 BIC

maxadjr() 計算 Maximum Adjusted R-Square

 繪圖

plot(lm) 畫四種殘差分析圖

pairs(data);

car::scatterplotMatrix(data) 畫出所有變數中兩兩配對的矩陣散佈圖 faraway::Cpplot(leaps()) Cp plot

faraway::prplot(lm,i) Partial Residual Plot

car::regLine(lm) 附加畫上回歸線

car::crPlot(lm,x) Component+Residual Plots(x 為自變數名稱) car::avPlots(lm) Added-Variable Plots

car::influencePlot(lm) Regression Influence Plot car::leveragePlots(lm) Regression Leverage Plots

car::ceresPlots(lm) Ceres Plots car::spreadLevelPlot(lm) Spread-Level Plots

 進階指令

car::bcPower(x,lambda);yjPower() Box-Cox and Yeo-Johnson Power Transformations car::powerTransform(object) Finding Univariate or Multivariate Power

Transformations

car::boxTidwell(y) Box-Tidwell Transformations MASS::lm.ridge(y~.) Ridge Regression

nls(y~.) Nonlinear Least Squares MASS::rlm(y~.) Robust Fitting of Linear Models MASS::lqs(y~.) Resistant Regression

systemfit::systemfit(y~.) Linear Equation System Estimation

(15)

實驗設計

 ANOVA 基本分析模型

interaction.plot(x,y,Y) 因子變數 x,y 間的交互作用圖,Y 為觀察值 anova(lm(模型)) 依照指定模型,計算 ANOVA Table

aov(模型) 作用同上,輸出資料格式不同

model.matrix(模型) 輸出設計矩陣

model.tables(aov(模型),type="") type="effects"輸出影響估計量; ="means"輸出平均數

 ANOVA 殘差檢定函數

lmtest::dwtest(模型) 檢定殘差是否互相獨立

car::durbinWatsonTest(lm(模型),

method="normal") 算出 Durbin-Watson 檢定值與 P-value bartlett.test(lm(模型)$res,A) 檢定殘差變異數是否有明顯差異

ncvTest(lm(模型)) 檢定殘差變異數是否有明顯差異

car:: outlierTest(lm(模型)) 檢定資料是否含有極端值

 一因子模型

Y~A 一因子模型,Y 為觀察值向量,A 為因子變數

Y~A+x 一因子模型,x 為共變量變數

oneway.test(Y~A,var.equal=F) 當殘差變異數部為常數時,檢定一因子影響的顯著性 kruskal.test(Y~A) 不需要 Normal 分配假設下,檢定一因子影響的顯著性

 隨機集區設計

B=as.factor(paste("B",1:n,sep="")) 生成集區變數

Y~E+B 隨機集區設計模型,E 為因子變數,B 為集區變數

 拉丁方格設計

crossdes::MOLS(dim,k) 生成拉丁方格

T=toupper(letters[as.vector(M)]) 生成 Treat.變數(需再轉成 factor),M 為拉丁方格矩陣 B1=rep(paste("a",1:n,sep=""),e=n) 生成 Block1 變數(需再轉成 factor)

B2=rep(paste("b",1:n,sep=""),t=n) 生成 Block2 變數(需再轉成 factor)

Y~B1+B2+T 拉丁方格設計模型

 二因子設計

FA=rep(paste("A",1:n,sep=""),t=n) 生成 FactorA 變數(需再轉成 factor) FB=rep(paste("B",1:n,sep=""),e=n) 生成 FactorB 變數(需再轉成 factor)

Y~FA+FB;Y~FA+FB+FA:FB or Y~FA*FB 二因子設計模型(n=1;n>1),FA,FB 代表兩因子變數 Y~B%in$A;Y~A/B 巢壯模型(Nested Model),A 分類下細分出 B Y~A*B+Error(C) 二因子裂區設計,A,B 分配機制由 C 決定

 兩水準因子設計

Y~A*B*C 兩水準因子設計模型

Y~(A+B+C)^2 兩水準因子設計模型,不含三因子交互作用項

Y~A*B*C+Error(A/B/C) 三因子巢狀裂區設計(Split-Plot),影響區域由大而小 BsMD::DanielPlot(lm(模型),half=T) 畫出 Half-Normal 圖形

BsMD::LenthPlot(lm(模型)) 畫出 Lenth 篩選圖形

(16)

 多重比較

TukeyHSD(aov(模型)) 依照模型,計算多重比較

plot(TukeyHSD(aov(模型))) 畫出多重比較結果

multcomp::glht(aov(模型), linfct=mcp(A=""))

計算多重比較 (A="Tukey";"Dunnett")

multcomp::plot(cld(x)) 畫出多重比較結果,x 為 glht 之 output multcompView::multcompBoxplot(模型,

data=data.frame(Y,A)) 畫出多重比較圖

laercio::LDuncan(aov(模型),"A") 計算 Duncan 多重比較信賴區間 laercio::LTukey(aov(模型),"A") 計算 Tukey 多重比較信賴區間

asbio::LSD.test(Y,A) 計算 LSD 多重比較信賴區間(A 可為任何 factor 變數) asbio::BonferroniCI(Y,A) 計算 Bonferroni 多重比較信賴區間

asbio::TukeyCI(Y,A) 計算 Tukey 多重比較信賴區間 asbio::ScheffeCI(Y,A) 計算 Scheffe 多重比較信賴區間 asbio::Pairw.test(Y,A,

method="Scheffe") 計算配對多重比較信賴區間

(17)

品質管制

 qcc 套件

cause.and.effect(cause=list(),

effect="") effect 為主要結果,list()列出所有可能原因

pareto.chart() 繪製柏拉圖

qcc.options(bg.margin,bg.figure) 設定管制圖的顏色

qcc(data,type) 繪製管制圖(type="xbar","R","S","xbar.one") qcc(data,sizes,type) 繪製管制圖(type="p","np")

qcc(data,sizes=units,type="c") 繪製 c 管制圖

process.capability(xbar 物件,spec) 依照 spec 之規格上下限計算製程能力指標

oc.curves() 畫出 OC 曲線

qcc.groups(x,y) 將 x 資料依照 y 類別轉換成 qcc 可用的 data 矩陣

cusum() 繪製 CUSUM 管制圖

ewma(x,lambda) 繪製 EWMA 管制圖

 qAnalyst 套件

paretoChart() 繪製柏拉圖

plot(spc(x,sg,type)) 將 x 資料依照 sg 之類別繪製管制圖 (type="xbar","r","s",) plot(spc(x,sg=2,type="i",...)) 繪製單一觀察值 X 管制圖 plot(spc(x,sg=2,type="mr",...)) 繪製 MR 管制圖

(18)

多變量分析

 Principal Component Analysis

princomp(x) 執行主成分分析

stats::loadings(x) x 為分析結果變數,計算係數矩陣(B)

biplot(x) x 為分析結果變數,畫出分析結果

 Canonical Correlation Analysis

stats::cancor(X,Y) 依據 X,Y 矩陣計算相關係數 CCP::p.asym(cor,N,p,q,tstat) 檢定相關係數的顯著性

 Classification

rpart::rpart(Y~.,data,control) 執行 Classification Tree 分類(結合 plot;text 畫圖) rpart::printcp(X) check out the complexity,X 為 rpart 物件 rpart::prune.rpart(X,cp) 以 cp 值修剪分類樹

MASS::lda(Y~.,data) Linear discriminant analysis MASS::qda(Y~.,data) Quadratic Discriminant Analysis class::knn(X,X,Y,k,prob) k-Nearest Neighbour(X 為變數資料;Y 為分類) class::knn.cv(X,Y,k,prob) k-Nearest Neighbour Cross-Validatory Classification nnet:: multinom(Y~.,data,maxit) Fit Multinomial Log-linear Models

e1071::svm(X,Y) Support Vector Machines

 Cluster

MVA:: hclust() Hierarchical Clustering stats::kmeans() K-Means Clustering cluster:: agnes() Agglomerative Nesting

cluster::diana() DIvisive ANAlysis Clustering

cluster:: mona() MONothetic Analysis Clustering of Binary Variables cluster::pam() Partitioning Around Medoids

cluster::silhouette() Compute or Extract Silhouette Information cluster::clara() Clustering Large Applications

cluster::fanny() Fuzzy Analysis Clustering cluster::daisy() Dissimilarity Matrix Calculation

som::som() Function to train a Self-Organizing Map klaR::shardsplot() Plotting Eight Direction Arranged Maps

or Self-Organizing Maps

 Multidimensional Scaling

sweep(x, MARGIN, STATS) Sweep out Array Summaries

stats::cmdscale(x,k,eig) Classical (Metric) Multidimensional Scaling stats::dist() Distance Matrix Computation

MASS::isoMDS() Kruskal's Non-metric Multidimensional Scaling Description

 Factor Analysis

factanal(x,facrors) Factor Analysis

(19)

 Correspondence Analysis

MASS::corresp(x,nf) Simple Correspondence Analysis MSSS::mca(x,nf,abbrev) Multiple Correspondence Analysi

 Independent Component Analysis

fastICA:: fastICA(x, n.comp) FastICA algorithm

(20)

 其他重要指令

gtools::permute(x) 將 x 向量元素隨機排列

schoolmath::is.prim(x) 判斷 x 值是否為質數

unique(x) 唯一化 x 的元素

duplicated(x) 判斷 x 內元素之前是否已經出現

letters 小寫字母所組成之向量

toupper(x) 將英文小寫字母轉成大寫

date() 查詢現在日期時間

menu() 執行選擇程序

library(Rcmdr) 叫出 R Commander 介面

all(logical vector) 向量存在一個以上的 F 則回傳 F,否則回傳 T

rainbow();heat.colors() 顏色抓取

數據

Updating...

參考文獻

相關主題 :