2014-09-02 62 views
0

您是否知道使用R來做我自己的靈敏度分析結果圖的方法?使用R進行靈敏度分析:如何製作我自己的地圖

例如(使用fast99()和玩具模型):

> library(sensitivity) 
> x <- fast99(model = ishigami.fun, factors = 3, n = 1000, 
       q = "qunif", q.arg = list(min = -pi, max = pi)) 
> print(x) 
> Call: 
> fast99(model = ishigami.fun, factors = 3, n = 1000, q = "qunif", 
     q.arg = list(min = -pi, max = pi)) 
> Model runs: 3000 
> Estimations of the indices: 
> first order  total order 
> X1 3.076874e-01 0.5506015 
> X2 4.419659e-01 0.4697538 
> X3 3.431342e-29 0.2391275 

我只是想挑指數(X1X2X3)的估計數據,把它們放在一個矩陣。 .. 任何想法?

+0

你到底要繪製什麼? x和y值是多少? – MrFlick 2014-09-02 16:43:59

+0

X值:X1,X2,X3和Y值:fisrt訂單和總訂單值 – Nane 2014-09-02 17:01:18

回答

1

也許像這樣的東西可以工作。首先,一個輔助函數打開fast99數據轉換成data.frame

as.data.frame.fast99 <- function(x, ...) { 
    if (!is.null(x$y)) { 
     S <- data.frame(X=colnames(x$X), x$D1/x$V, 1 - x$Dt/x$V) 
     colnames(S)[-1] <- c("first.order", "total.order") 
     S 
    } 
} 

現在我們繪製數據。 (這裏我用的是ggplot庫,但你可以很容易地使用他人)

dd<-as.data.frame(x) 
library(ggplot2) 
ggplot(dd, aes(x=X)) + 
    geom_point(aes(y=first.order, color="first")) + 
    geom_point(aes(y=total.order, color="total")) + 
    scale_color_manual(values=c(first="red",total="blue"), name="order") 

enter image description here

+0

完美!非常感謝! – Nane 2014-09-02 18:23:34