2016-07-17 10 views
0

推定OLS回帰直線に対する外れ値の影響を対話的に表示したいとします。このためには、データフレームのy値を1つだけ更新するスライダーが必要です。例えば、df$y[10] + 1df$y[10] + 2などです。どうすればこれを達成できますか?特定のy値のみを入力スライダで変更する

でarroundの再生するいくつかのデータ:

set.seed(123) 
x  <- sort(runif(15, min = 30, max = 70)) 
y  <- rnorm(15 , mean = 200, sd = 50) 
df <- data.frame(x, y) 

私の現在の静的ggvisコード:

Library(ggvis) 
df %>% 
ggvis(x = ~x, y = ~y) %>% 
layer_points() %>% 
layer_model_predictions(model = "lm", formula = y ~ x) 

答えて

0

ggvisでdplyr機能を組み合わせることが可能です。 次のリンクは、それがどのように動作するかを説明します。ggvisオブジェクトにdplyr動詞を適用

dplyr verbs for ggvis

は、反応性 変換を作成します。基礎となるデータは 変換が再計算されます変更するたびに。

これで私は自分自身で書かれた関数outlierを使って突然変異を使用しました。 重要な点は、反応性スライダ入力をeval()にラップすることです。私はまだ改善の余地があると確信していますが、これは良い出発点かもしれません。

library(ggvis) 
library(dplyr) 

set.seed(123) 
x  <- sort(runif(15, min = 30, max = 70)) 
y  <- rnorm(15 , mean = 200, sd = 50) 
df <- data.frame(y, x) 

v  <- input_slider(0, 250, value = 0, step = 25, animate = TRUE) 
outlier <- function(y, v) y + c(rep(0, 14), v) 

df %>% 
    ggvis(x = ~x, y = ~y) %>% 
    mutate(y = outlier(y, eval(v))) %>% 
    layer_points() %>% 
    layer_model_predictions(model = "lm", formula = y ~ x) 
関連する問題