このパッケージは多変量分析の結果を見やすく作図するためのパッケージです。 とりあえず、このパッケージはまだまだ開発中です。 バグは残っているでしょうし、足りない機能もたくさんあると思います。 一応注意はしていますが、もしかすると、研究をめちゃめちゃするような間違いがあるかもしれません。 今使えている機能が将来のバージョンで削除されることもあるかもしれませんし、使い方が変わるかもしれません。 と、いうことで、ご利用の際には注意してお使い下さい。 もしバグを見つけたり、こういう機能が欲しい、と思うことがあったりしたら、メール(アドレスは以下のコードをRにペースト:「rawToChar(as.raw(c(109, 111, 103, 64, 102, 102, 112, 114, 105, 46, 97, 102, 102, 114, 99, 46, 103, 111, 46, 106, 112)))」)もしくはGitHubにご連絡下さい。
以下のコマンドをRにコピー&ペーストすれば 必要なパッケージ一式をインストールできるはずです。
```{R, message = FALSE, warning = FALSE, eval = FALSE} install.packages( c("model.adapter", "partial.plot"), type = "source", repos = c( "http://florivory.net/R/repos", options()$repos ) )
-------------------------------------------------------------------------------- # クイックスタート(R魔法使い用) まー、魔法使いの人は見ればわかるでしょう。 [実例集](visual.test.html)も参考にしてください。 ```{R, echo = FALSE, message = FALSE} library(partial.plot)
# データの読み込み。 data(iris) # 予測モデルの作成。 model <- glm( Petal.Length ~ (Sepal.Length + Petal.Width) * Species, data = iris ) # ライブラリの読み込み。 library(partial.plot) # 萼片の長さと花弁の長さとの関係を作図。 info <- partial.plot(model, c("Sepal.Length", "Species"), pch = 16) # 凡例を追加。 pp.legend(info, "topleft") # 三次元プロット。 info <- partial.plot( model, c("Sepal.Length", "Petal.Width"), col = terrain.colors, theta = 20 )
今回はテスト用のデータにお約束のFisherのIrisデータを使います。 このデータは3種のアヤメ(setosa, versicolor, virginica)の萼片の長さ(Sepal.Length)、萼片の幅(Sepal.Width)、花弁の長さ(Petal.Length)、花弁の幅(Petal.Width)のデータが含まれています。
# データの読み込み。 data(iris) # データの構造を見てみる。 str(iris)
さらに、種ごとに花弁の長さと萼片の長さ、萼片の幅、花弁の幅をプロットしてみます。
# データの可視化。 par(mfrow = c(2, 2)) plot( Petal.Length ~ Sepal.Length, data = iris, pch = as.numeric(Species) + 14, col = as.numeric(Species) + 1 ) plot( Petal.Length ~ Sepal.Width, data = iris, pch = as.numeric(Species) + 14, col = as.numeric(Species) + 1 ) plot( Petal.Length ~ Petal.Width, data = iris, pch = as.numeric(Species) + 14, col = as.numeric(Species) + 1 )
グラフを見ると、萼片の長さと花弁の長さの関係、萼片の幅と花弁の長さとの関係は種によって違いそうです。
このデータを用いて、花弁の長さを予測するモデルを作ることにします。 とりあえずモデルにはお約束の一般化線形混合モデル(GLM)を使い、説明変数には萼片の長さ、花弁の幅、種を用いることにします。 また、モデルに種と萼片の長さ、種と花弁の幅の交互作用を組み込んで、萼片の長さと花弁の長さ、花弁の幅と花弁の長さとの関係が種によって変わるかもしれない、ということを仮定します。
# 予測モデルの作成。 model <- glm( Petal.Length ~ (Sepal.Length + Petal.Width) * Species, data = iris ) # 結果を確認します。 summary(model)
予測結果を見ると、Sepal.Length:Speciesversicolor、Sepal.Length:Speciesvirginica、Petal.Width:Speciesversicolorの推定値のP値が0.05以下なので、どうやら種によって萼片の長さと花弁の長さの関係、花弁の幅と花弁の長さの関係が異なっているようです。
上の結果を眺めていても、予測結果がどのような感じなのか、なかなかわかりません。 そこで、できあがったモデルを使ってモデルの予測結果を作図してみます。 基本的な使い方は以下の通りです。 以下の例ではモデルによって予測された種ごとの萼片の長さと花弁の長さとの関係を作図しています。
# ライブラリの読み込み。 library(partial.plot) # 萼片の長さと花弁の長さとの関係を作図。 partial.plot(model, c("Sepal.Length", "Species"), pch = 16)
partial.plot()
関数はまず一番目の引数にモデルの結果を入力します。
この場合はGLMの結果のオブジェクトmodel
を使っています。
2番目の引数には結果を可視化する説明変数名を指定します。
この場合、萼片の長さを表す"Sepal.Length"
と種を表す"Species"
を指定しています。
因子型の変数は複数指定することができます。
以上の2つの引数は必ず指定する必要があります。
また、今回はグラフを見やすくするため、pch = 16
を追加で指定し、
グラフのシンボルを変えています。
図に表された線はモデルによって予測された萼片の長さと花弁の長さの関係式、線の後ろの色の付いた部分は予測された関係式の信頼区間を、点は偏残差を表します。 偏残差は他の変数(この場合は花弁の長さ)で説明できなかった説明変数のばらつきを表します。
もし、花弁の幅と花弁の長さとの関係を作図したい場合、以下のように引数を指定します。
# 花弁の幅と花弁の長さとの関係を作図する。 partial.plot(model, c("Petal.Width", "Species"), pch = 16)
この場合、線は種ごとの花弁の幅と花弁の長さの関係式を、色の付いた部分は関係式の信頼区間を、点は偏残差を表します。
ただ線や信頼区間、偏残差をプロットするだけでは色と種の対応関係がわかりません。
partial.plot
の凡例追加機能を使って、凡例を追加することができます。
partial.plot()
関数は図の設定などの情報を返します。例えば、
```{R, eval = FALSE}
info <- partial.plot(model, c("Sepal.Length", "Species"), pch = 16)
というプログラムを書くと、図の情報が`info`変数に代入されます。 これを以下の例のように`pp.legend()`関数に渡すと、できあがった図に凡例を追加することができます。 ```{R} # 凡例を追加。 info <- partial.plot(model, c("Sepal.Length", "Species"), pch = 16) pp.legend(info, "topleft")
pp.legend()
関数の使い方はlegend()
関数とほとんど同じです。
1番目の引数にはpartial.plot()
の結果を指定します。
2番目以降に入力した引数は全てlegend()
関数にそのまま渡されます。
partial.plot()
を使って、もう少し複雑なグラフを書くこともできます。
今度はRに含まれているCO2
データセットを使います。
このデータセットはケベックとミシシッピからとってきた植物を使って低温処理実験を行い、その後、様々なCO2濃度でCO2吸収速度を測定したデータが入っています。
conc
が測定したCO2吸収速度、uptake
がCO2吸収速度、Treatment
が低温処理のありなし(あり:chilled、なし:nonchilled)、Typeが植物の由来(QuebecとMississippi)を表しています。
# CO2データを読み込む data(CO2) # データフレームに変換 class(CO2) <- "data.frame" # データの傾向を見てみる。 plot( uptake ~ conc, data = CO2, col = c("blue3", "red3")[as.numeric(CO2$Type)], pch = c(16, 17)[as.numeric(CO2$Treatment)], ylim = c(0, 50) ) legend( "bottomright", legend = c( "Mississippi - Chilled", "Mississippi - Non-Chilled", "Quebec - Chilled", "Quebec - Non-Chilled" ), col = rep(c("blue3", "red3"), each = 2), pch = c(16, 17, 16, 17) )
この関係をglmでモデル化してみます。モデルの応答変数はCO2吸収速度(upteke
)です。
上の図を見ると、CO2濃度とCO2吸収の関係は線形ではなさそうなので、説明変数にCO2濃度(conc
)と二次の項( I(conc ^ 2)
)を加えることで二次式の当てはめを行います。
さらに、Type * Treatment
の項を加えることで、由来と低温処理の交互作用を見ることにします。
model <- glm(uptake ~ conc + I(conc^2) + Type * Treatment, data = CO2) summary(model)
どうやらモデル構築に使った変数全てがCO2吸収速度に影響していそうです。
ということで、例によって得られた関係式をpartial.plot()
で可視化してみます。
このモデルで得られた関係性を可視化するには、以下のようにpartial.plot()
を呼び出します。
2番目の引数にc("conc", "Treatment", "Type")
の3つを指定することでCO2濃度、処理、由来の3つの効果を同時に可視化することが可能です。
info <- partial.plot( model, c("conc", "Treatment", "Type"), data = CO2 ) pp.legend(info, "bottomright")
partial.plot()
は複数の因子型によりグループごとの作図に対応しています。
ここではTreatmentとType、2つの因子型変数の組み合わせの4グループごとに作図を行いましたが、さらにたくさんの因子型引数でグループ分けすることも可能です。
これまでの例ではモデルの予測結果を二次元に表していましたが、partial.plot()
は三次元のプロットを描画することも可能です。
ここでも先ほどのFisherのIrisデータを使います。
今回は(テスト用に)種の違いを無視して花弁の長さを萼片の長さと花弁の幅で説明してみます。
# データの読み込み。 data(iris) # 予測モデルの作成。 model <- glm( Petal.Length ~ Sepal.Length + Petal.Width, data = iris ) # 予測結果を見る。 summary(model)
予測結果を見ると萼片の長さも花弁の花弁の長さに有意な影響を与えているようです。
そこで、partial.plot()
を使って予測結果を可視化してみます。
partial.plot( model, c("Sepal.Length", "Petal.Width"), col = terrain.colors, theta = 20 )
デフォルトでは花弁の長さと萼片の長さ、花弁の幅の関係がpersp()
関数を使って描画されます。
三次元プロットに使う関数を変えるにはpartial.plotのfun.3d
引数に使いたい関数を指定します。
現在、persp()
, image()
、contour()
での描画に対応しています。
partial.plot( model, c("Sepal.Length", "Petal.Width"), fun.3d = image, col = terrain.colors ) partial.plot( model, c("Sepal.Length", "Petal.Width"), fun.3d = contour, col = "black" )
もし、お使いのパソコンにrgl
パッケージがインストールしてあるなら、persp3d()
関数も使うことができます。
ブラウザによっては結果が表示できないので、試してみたい場合にはrgl
パッケージをインストールして、お使いのRで試してみて下さい。
```{R, message = FALSE, warning = FALSE, eval = FALSE}
install.packages("rgl")
partial.plot( model, c("Sepal.Length", "Petal.Width"), fun.3d = persp3d, col = terrain.colors )
-------------------------------------------------------------------------------- # グラフの見た目の変更 いくつかの設定を変えることで、グラフの見た目を変えることができます。 ## 作図する要素の変更 `draw.residual`引数を`FALSE`にすると、残差のシンボルを描画しないことができます。 ```{R, message = FALSE, echo = FALSE} # 予測モデルの作成。 model <- glm( Petal.Length ~ (Sepal.Length + Petal.Width) * Species, data = iris )
info <- partial.plot( model, c("Sepal.Length", "Species"), draw.residual = FALSE ) pp.legend(info, "topleft")
また、draw.relationship
引数をFALSE
にすると、モデルによって予測された関係を描画しないことができます。
info <- partial.plot( model, c("Sepal.Length", "Species"), draw.relationship = FALSE, pch = 16 ) pp.legend(info, "topleft")
さらに、draw.interval
引数をFALSE
にすると、予測された関係の信頼区間を描画しないこともできます。
info <- partial.plot( model, c("Sepal.Length", "Species"), draw.interval = FALSE, pch = 16 ) pp.legend(info, "topleft")
extrapolate
引数をTRUE
にすると、説明変数の範囲外の値も含めた予測範囲を描画します。
info <- partial.plot( model, c("Sepal.Length", "Species"), pch = 16, extrapolate = TRUE ) pp.legend(info, "topleft")
rainbow()
関数やheat.colors()
関数など、一番目の引数に色の数を渡すと色を返す関数を使ってグラフの色を変えることができます。
?rainbowで出てくるヘルプに載っている関数などが使えます。
個人的にはviridis
パッケージのviridis()
関数で精製される色がおすすめです。
# グラフの色を変える。 info <- partial.plot( model, c("Sepal.Length", "Species"), pch = 16, col = rainbow ) # 凡例の色も自動調節される。 pp.legend(info, "topleft")
また、名前付きの色ベクトルを作ることで、個別に色を指定することもできます。
以下の例のようにc()
関数を用いてグループ名 = 色
という形式で色ベクトルを作り、それをcol
引数に渡すことで各グループ(この場合は種)の色を指定することができます。
# 色ベクトルを用意。 col <- c( setosa = "darkgreen", versicolor = "blue", virginica = "orange2" ) # 作図 info <- partial.plot( model, c("Sepal.Length", "Species"), pch = 16, col = col ) pp.legend(info, "topleft")
色の指定と同じ方法で、プロットのシンボル、線の種類、線の太さを変更することができます。
info <- partial.plot( model, c("Sepal.Length", "Species"), pch = 16:18, col = rainbow ) pp.legend(info, "topleft")
info <- partial.plot( model, c("Sepal.Length", "Species"), lty = c("solid", "dashed", "dotted"), col = "black" ) pp.legend(info, "topleft")
info <- partial.plot( model, c("Sepal.Length", "Species"), lwd = c(1, 4, 8), col = "black" ) pp.legend(info, "topleft")
add = TRUE
を指定すると、既存のグラフの上にグラフを上書きすることができます。
model <- glm( Petal.Length ~ (Sepal.Length + Petal.Width) * Species, data = iris ) plot(Petal.Length ~ Sepal.Length, data = iris, pch = 16) partial.plot(model, c("Sepal.Length", "Species"), add = TRUE)
複数の因子型説明変数を描画するとき、レジェンドで因子名の間を区切る文字を変えることができます。
model <- glm(uptake ~ conc + I(conc^2) + Type * Treatment, data = CO2) info <- partial.plot( model, c("conc", "Treatment", "Type"), data = CO2, sep = "/" ) pp.legend(info, "bottomright")
線の周りに描画される信頼区間はデフォルトでは95%信頼区間になっています。
interval.levels
引数に0から1の値を与えることで、この値も変更することが可能です。
par(mfrow = c(2, 2)) model <- glm(uptake ~ conc + I(conc^2) + Type * Treatment, data = CO2) # 95%(デフォルト) info <- partial.plot( model, c("conc", "Treatment", "Type"), data = CO2, main = "interval.levels = 0.95" ) # 80% info <- partial.plot( model, c("conc", "Treatment", "Type"), data = CO2, interval.levels = 0.8, main = "interval.levels = 0.8" ) # 70% info <- partial.plot( model, c("conc", "Treatment", "Type"), data = CO2, interval.levels = 0.7, main = "interval.levels = 0.7" ) # 60% info <- partial.plot( model, c("conc", "Treatment", "Type"), data = CO2, interval.levels = 0.6, main = "interval.levels = 0.6" ) par(mfrow = c(1, 1))
GLMやGLMMなどのモデルを用いると、リンク関数が適用された応答変数に対して、線形モデルの当てはめが行われます。
GLM全般を説明するのは大変なので、詳細はGoogle先生に聞いてみて下さい。
例えば、下の例のように分布にガンマ分布、リンク関数にlog
を用いると、GLMは
$$
Petal.Length = exp(切片 + 係数1 \times Sepal.Length + 係数2 \times Petal.Width)
$$
という関係式を推定します。
model <- glm( Petal.Length ~ (Sepal.Length + Petal.Width), data = iris, family = Gamma(log) ) summary(model)
モデルの推定結果で切片に対応するのはsummary(model)
の結果の(Intercept)のEstimate(-0.19569)、係数1に対応するのはSepal.LengthのEstimate(0.10529)、係数2に対応するのはPetal.WidthのEstimate(0.64334)です。
partial.plot()
は作図の際、応答変数と同じ単位(普通の単位)・線形予測子の単位(リンク関数を適用したあとの単位)、両方の単位で作図を行うことができます。
作図の単位を制御するにはtype
引数を用い、type
引数に"response"
を指定すると応答変数の単位で、type
引数にlink
を指定すると線形予測子の単位で作図を行います。
partial.plot( model, c("Sepal.Length", "Petal.Width"), type = "response", col = terrain.colors, main = "response" ) partial.plot( model, c("Sepal.Length", "Petal.Width"), type = "link", col = terrain.colors, main = "link" )
partial.plot
を用いると、応答変数が連続値の回帰モデルだけではなく、識別モデルの予測確率も作図することができます。
識別モデルの予測値を計算するには、今のところtype = "prob"
を指定する必要があります。
将来的には自動でモデルの種類を判定して作図するようにする予定です。
また、識別モデルでは残差の作図はサポートされていません。
library(randomForest) model <- randomForest(Species ~ ., data = iris) partial.plot( model, "Petal.Length", positive.class = "setosa", type = "prob", col = "red", resolution = 20, draw.residual = FALSE ) partial.plot( model, "Petal.Length", positive.class = "versicolor", add = TRUE, type = "prob", col = "blue", resolution = 20, draw.residual = FALSE ) partial.plot( model, "Petal.Length", positive.class = "virginica", add = TRUE, type = "prob", col = "green", resolution = 20, draw.residual = FALSE )
試験的に説明変数のヒストグラムを描く機能を追加してあります。
model <- glm(Petal.Length ~ ., data = iris) info <- partial.plot( model, c("Sepal.Length", "Species"), draw.hist = TRUE )
partial.plot()
関数は普通のplot()
関数と同じように、グラフィックパラメーターを変えて、グラフの見た目を変えることができます。
# モデル作成 model <- glm( Petal.Length ~ (Sepal.Length + Petal.Width) * Species, data = iris ) # シンボルのサイズ、軸ラベルも変えてみる。 info <- partial.plot( model, c("Sepal.Length", "Species"), cex = 1.5, xlab = "Sepal length (mm)", ylab = "Petal Length" ) pp.legend(info, "topleft")
モデルによっては予測値を計算するのに計算時間がかかることがあります。
partial.plot()
は結果に計算済みの関係式や偏残差情報を記憶しているので描画の設定だけを変えて、グラフを書き直すことができます。
par(mfrow = c(2, 2)) # 最初のpartial.plotを実行。 info <- partial.plot(model, c("Sepal.Length", "Species"), pch = 16) pp.legend(info, "topleft", cex = 0.5) # 結果を再利用して、シンボルと関係式描画の設定を変える。 info <- partial.plot(info, pch = 6, draw.relationship = FALSE) pp.legend(info, "topleft", cex = 0.5) # 結果を再利用して、シンボル、色、信頼区間描画の設定を変える。 info <- partial.plot(info, col = rainbow, draw.interval = FALSE) pp.legend(info, "topleft", cex = 0.5) # 結果を再利用して、シンボル、色、偏残差描画の設定を変える。 info <- partial.plot(info, col = heat.colors, draw.residual = FALSE) pp.legend(info, "topleft", cex = 0.5) par(mfrow = c(1, 1))
現在、書き換えることのできる設定はfun.3d
, draw.residual
,
draw.relationship
, draw.interval
, col
, xlab
, ylab
, zlab
,
その他のグラフィックパラメーターです。
レジェンドの複数因子間の区切り文字sep
は実装上の都合により変更することができません。
要望があれば、そのうち修正するかもしれません。
また、予測された関係式の信頼区間を指定するinterval.levels
も同様の理由により変更できません。
こちらはどうしても再計算が必要なので、修正が難しいと思います。
今のところ、lm()
、glm()
、glm.nb()
、lme()
、lmer()
、glmer()
、glmer.nb()
、glmmadmb()
、MCMCglmm()
、cforest()
、ctree()
、svm()
、randomForest()
、ranger()
、rpart()
、tree()
に対応しています(たぶん)。
各モデルへの対応はmodel.adapter
パッケージに依存しているので、
将来的にはmodel.adapter
パッケージが対応する他のモデルにも対応する予定です。
partial.plot
では説明変数と応答変数の関係の推定にemmeans
パッケージを使用しています。
もし対象のモデルにemmeans
パッケージが対応している場合、説明変数と応答変数の関係はemmeans
で計算されます。
今のところ、lm
、glm
、glm.nb
、lme
、lmer
、glmer
、glmer.nb
、glmmTMB
、glmmadmb
、MCMCglmm
の計算にemmeans
が使われます。
モデルにemmeans
が対応している場合、対象の説明変数以外の変数は平均値に固定され、予測値が計算されます。
対象のモデルにemmeans
が対応していない場合、計算はpartial.plot
によって行われます。
この場合、対象の説明変数以外の説明変数の値には元のデータセット全体の値が使われ、予測値の平均値を用いて説明変数と応答変数の関係が描画されます。
2021-06-23現在、モデル作成時にデータをscale
関数で標準化すると、データフレーム内の列がmatrixになるため、predict
関数がエラーになり、partial.plot
の実行が止まるようです。
このエラーを回避するため、データを標準化するときには
```{R eval=FALSE, echo=TRUE} data$column1 <- c(scale(data$column1))
のような感じで標準化した結果をベクトルに変換してください。 ## glmer.nb モデル式に関数('offset()'や'log()'など)が含まれていると、データの取得がうまくいかないため、作図を行うことができないようです。 このようなモデル式を用いた`glmer.nb`で作図を行う時には、`data`引数に解析に使ったデータを指定してください。 ```{R, eval = FALSE} # 例 model <- glmer.nb(y ~ log(x) + (1 | random), data = dat) partial.plot(model, "x", data = dat)
partial.plot
ではoffset項は以下のように扱われます。
予測値と信頼区間 : 他の説明変数と同様、offset項に使われた変数も平均値が予測値の計算には使われます。例えば応答変数が個体数、offset項が調査面積の場合、予測値と信頼区間は調査面積の平均値を使って計算されます。
偏残差 : offset項に指定された変数の値には、モデル作成に使われた値をそのまま用いて予測値を計算し、実際の応答変数の値との差分から偏残差を計算します。
このため、そのまま作図を行うと、偏残差と予測値が対応しないことがあります。対応方法は2つあり、1つはdraw.residual = FALSE
オプションを用いて偏残差を描画しない、という方法です。もう1つは以下の例のようにあらかじめoffset項あたりの応答変数のデータを準備し、partial.plot
を実行する方法です。
現在、以下のモデルはオフセット項のある予測に対応していません。
glmmADMB::glmmadmb
#----------------------------------------------------------------------------- # データとモデルの準備 #----------------------------------------------------------------------------- # MASSパッケージから車の保険請求データを準備。 utils::data(Insurance, package="MASS") # 年齢をカテゴリーから数値データに変換。 Insurance$Age.numeric <- c(25, 27, 32.5, 35)[as.numeric(Insurance$Age)] # 保険請求数を地区・車の種類・年齢でモデル化。 # offset項は契約者数。 model <- glm( Claims ~ District + Group + Age.numeric + offset(log(Holders)), data = Insurance, family = poisson ) #----------------------------------------------------------------------------- # 作図1:失敗例 #----------------------------------------------------------------------------- # 平均の契約者数を使ってpartial.plotを描画。 # そのまま描画すると偏残差と予測値が対応しない。 pp <- partial.plot(model, c("Age.numeric", "Group")) pp.legend(pp, "topright") #----------------------------------------------------------------------------- # 対策1:偏残差を描画しない # この場合は平均契約者数あたりの請求数が描画される。 #----------------------------------------------------------------------------- pp <- partial.plot(model, c("Age.numeric", "Group"), draw.residual = FALSE) pp.legend(pp, "topright") #----------------------------------------------------------------------------- # 対策2:offset項あたりの応答変数を用いる # この場合は契約者数あたりの請求数を先に計算し、 # 契約者数を1に固定したデータを用いる。 #----------------------------------------------------------------------------- # 描画用にデータのコピーを作成。 Insurance2 <- Insurance # 応答変数を契約者あたりの請求数に変換。 Insurance2$Claims <- Insurance2$Claims / Insurance2$Holders # 契約者数を1に固定。 Insurance2$Holders <- 1 # 契約者数あたりの請求数に対してモデルの予測値を描画。 pp <- partial.plot(model, c("Age.numeric", "District"), data = Insurance2) pp.legend(pp, "topright")
今のところ、以下の問題があることがわかっています。
作図に使っている以下の関数も何かの役立つかもしれません。
color.ramp()
関数は因子型変数から色を表す文字列ベクトルを生成します。
以下の例のように使います。
library(partial.plot) plot( Petal.Length ~ Sepal.Length, col = color.ramp(Species), data = iris, pch = 16 )
partial.plot
と同じように色を変えることができます。
plot( Petal.Length ~ Sepal.Length, col = color.ramp(Species, rainbow), data = iris, pch = 16 )
col <- c( setosa = "darkgreen", versicolor = "blue", virginica = "orange2" ) plot( Petal.Length ~ Sepal.Length, col = color.ramp(Species, col), data = iris, pch = 16 )
color.ramp()
と同じようにグラフィックパラメーターを変更することができます。
plot(Petal.Length~Sepal.Length, data = iris, pch = switch.par(Species, 16:18))
ggplot()
と似たような色を生成します。
barplot(1:10, col = gg.colors(10))
extraporate
引数をextrapolate
に変更した。coda
パッケージを利用して、事後分布の平均や信用区間を使うようにした。glm.nb
、glmer.nb
に対応していることを確認した。lsmeans
パッケージの開発が止まったので、emmeans
パッケージを使うように変更。lmer()
、glmer()
、glmmadmb()
、glmmML()
、ranger()
、rpart()
、tree()
への対応。add
オプションの追加。lty
、lwd
、pch
を変えられるようにした。color.ramp.data.frame()
メソッドの削除。color.ramp.numeric()
メソッドの追加。cforest()
、ctree()
、randomForest()
、svm()
へ対応。sep
オプションをpartial.plot()
関数に追加。partial.plot.legend()
関数をpp.legend()
関数にリネーム。pp.legend()
関数の引数の順番を変更。partial.plot()
関数がグラフィックパラメーターlog
をサポートするようにした。partial.plot.legend()
関数がレジェンドのタイトルを描画するように修正。Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.