2012年6月22日 星期五

R 敏感性分析



雖然在R中已經有sensitivity這個套件可以用來分析了,
但還是動手做出自己想要的比較有成就感。

2012年6月19日 星期二

R 平行運算 Rmpi

颱風天無聊在家搞R的平行運算,還滿難搞的XD

小小紀錄一下過程。


作業系統:Ubuntu 12.04 64Bit

R 版本 2.14.1


2012年6月17日 星期日

R PSO package 粒子群演算法套件

 R PSO(Particle Swarm Optimizer) package 粒子群演算法套件


R中已經有現成的粒子群演算法套件,可以直接網路下載安裝後使用,
避免重複造輪子之外也可以參考別人的寫法。

首先要安裝和載入PSO package
install.packages("pso")
library("pso")

之後就可以開心使用了,首先設定目標函數:
fit <- function(x) 100 * (x[2] - x[1]^2)^2 + (1 - x[1])^2

開始一個簡單的最佳化吧!

2012年6月15日 星期五

Ubuntu 12.04 光纖網路 P870H 改硬撥

在Ubuntu 12.04上把種花電信的光世代數據機改成硬體撥號。

如果你家的數據機長的跟下面這台一樣

2012年6月10日 星期日

LaTeX 讓排版出來的code變漂亮!(The Listings Package)

\documentclass{article}
\usepackage{listings}                                                                   %載入套件
\usepackage{relsize}                                                                    %重新設定字體大小會用到
\usepackage[usenames]{color}                                                    %設定顏色要用到

\lstset{language=R,                                                                      %可指定語言種類                                                          
basicstyle=\ttfamily,                                                       %基本風格
     %keywordstyle=\color{blue},                                               %關鍵字風格
emph={x,y,z},emphstyle=\color{Orange},                       %其他關鍵字風格(可設定多組)
emph={[2]a,b,c},emphstyle={[2]\color{blue}},

2012年6月7日 星期四

R apply家族函數

在R中有一堆apply, lapply, spply, tapply,...等等的函數,主要是避免使用迴圈函數。
因為R內建的函數都是經過編譯的,所以執行的效率會比自己寫迴圈還好。

apply(array, margin, function, ...) 將矩陣依據行或列把所有的元素代入運算


R 與 LaTeX - Sweave

Sweave是R語言的一個函數,其功能是將R的函數整合進Latex或Lyx中。從而可以生成動態報表,當數據或分析改變時,報表能自動得到更新。以下為一個簡單的範例:

R 使用GPU運算


測試環境:
作業系統:Ubuntu 11.04
顯示卡:GeForce 9800 GT


事前準備:
1、確認顯示卡是否支援 NVIDIA CUDA,參考:NVIDIA網站
2、安裝顯示卡驅動程式(系統->管理->額外驅動程式->安裝NVIDIA驅動程式)

R 機率分配表


常態分配表

library("xtable")
x<-matrix(pnorm(seq(0,3.59,0.01),0,1),36,10,T)
rownames(x)<-seq(0,3.5,0.1)
colnames(x)<-seq(0,0.09,0.01)
xtable(x,digits=5)


R 常態圖

x<-seq(-8,8,0.1)
y1<-dnorm(x,0,1)
x11()
plot(x,y1,type="l",lwd=2,col="blue")
y2<-dnorm(x,0,2)
lines(x,y2,type="l",lwd=2,col="red")
y3<-dnorm(x,0,3)
lines(x,y3,type="l",lwd=2,col="green")
legend("topright",c("sigma=1","sigma=2","sigma=3"),lty=c(1,1,1),col=c("blue","red","green"))


R 卡方檢定

適合度檢定(Goodness of fit test)

投擲一顆骰子一萬次,檢定六個面出現的機率是否相同

x<-c(sample.int(6,size=10000,replace=T)) #產生1~6的隨機整數一萬個
table(x) #計算次數
chisq.test(table(x)) #檢定出現的機率是否相同
chisq.test(table(x),p=c(1/6,1/6,1/6,1/6,1/6,1/6)) #結果跟上面一樣

529株豌豆分別有AA、Aa和aa各138、265、126株,檢定比例是否符合1:2:1

豌豆基因  AA  Aa   aa
    株數     138  256 126

x<-c(138,265,126)
chisq.test(x,p=c(1/4,1/2,1/4))



2012年6月6日 星期三

R 假設檢定

單一樣本T檢定(One sample t test)

檢定平均數是否為16

x<-c(16.3,16.2,15.8,15.4,16.0,15.6,15.5,16.1,15.9,16.1)
t.test(x,mu=16)




R 粒子群演算法 (PSO)

吃飽沒事做把戴老闆的Mathematica的PSO程式改成R