小编Mr.*_*cos的帖子

ggplot2 - 在保持顺序的同时对多个 data.frames 进行箱线图

如果这更多的是 SO 而不是 CV,我深表歉意。

我试图将第二个箱线图包含到现有箱线图中,该箱线图按绘制值的平均值排序。当我包含第二个 data.frame 中的箱线图(代表其他图的控制样本)时,原始图失去了顺序。

下面是一个例子:

x1 <- data.frame("V1" = runif(100, 0, 100), "siteno" = "X1") #mean = 50.3
x2 <- data.frame("V1" = runif(100, 200, 450), "siteno" = "X2") #mean = 322.4
x3 <- data.frame("V1" = runif(100, 50, 150), "siteno" = "X3") #mean = 97.8
xData <- rbind(x1,x2,x3)
xData$siteno <- with(xData, reorder(siteno, V1, mean))

zData <- data.frame("V1" = runif(300, 0, 450), "siteno" = "Z1") #mean = 224.2

#orders xData correctly 
ggplot(xData, aes(x = siteno , y = V1)) …
Run Code Online (Sandbox Code Playgroud)

r data-visualization ggplot2 boxplot

5
推荐指数
1
解决办法
1万
查看次数

使用 randomForest、Caret 和因子变量预测栅格时出错

我试图使用 randomForest 和插入符包预测栅格图层,但当我引入因子变量时失败。没有因素,一切正常,但一旦我引入因素,我就会收到错误:

Error in predict.randomForest(modelFit, newdata) : Type of predictors in new data do not match that of the training data.

我在下面创建了一些示例代码来演示该过程。为了提高透明度,我分几个步骤进行了介绍并提供了一个工作示例。

(要跳过设置代码,请从这里向下跳...)

首先是创建样本数据、拟合 RF 模型并预测不涉及任何因素的栅格。一切正常。

# simulate data
x1p <- runif(50, 10, 20) # presence
x2p <- runif(50, 100, 200)
x1a <- runif(50, 15, 25) # absence
x2a <- runif(50, 180, 400)
x1 <- c(x1p, x1a)
x2 <- c(x2p,x2a)
y <- c(rep(1,50), rep(0,50)) # presence/absence
d <- data.frame(x1 = x1, x2 = x2, y = y)

# RF …
Run Code Online (Sandbox Code Playgroud)

r raster spatial prediction random-forest

4
推荐指数
1
解决办法
3136
查看次数

"响应"与地球的预测(MARS)和R中的插入符号

我希望这不是一个天真的问题.我caret在R 中的包中使用不同的模型执行一系列二项式回归.除了地球(MARS)之外,所有这些都是有效的.通常,earth系列通过glm函数传递给earth函数glm=list(family=binomial).这似乎工作正常(如下所示).对于一般predict()功能,我会使用它type="response'来正确地缩放预测.以下示例显示了fit1使用正确预测的非插入符方法pred1. pred1a是没有的不正确的缩放预测type='response'. fit2与该方法caretpred2是预测; 它与非缩放预测相同pred1a.通过fit2对象挖掘,glm.list组件中存在正确拟合的值.因此,该earth()函数表现得如此.

问题是......因为caret prediction()函数只需要type='prob' or 'raw',我如何指示是根据响应的规模进行预测?

非常感谢你.

require(earth)
library(caret)
data(mtcars)

fit1 <- earth(am ~ cyl + mpg + wt + disp, data = mtcars,
        degree=1, glm=list(family=binomial))
pred1 <- predict(fit1, newdata = mtcars, type="response")
range(pred1)
[1] 0.0004665284 0.9979135993 # Correct …
Run Code Online (Sandbox Code Playgroud)

regression r r-caret

3
推荐指数
1
解决办法
3884
查看次数