Questions tagged «r»

对于(a)涉及“ R”作为问题的关键部分或预期答案的任何* on-topic *问题,请使用此标签;&(b)关于如何使用“ R”并非“正当”。

1
RandomForest和类权重
一句话问:有人知道如何为随机森林确定良好的班级权重吗? 说明:我正在研究不平衡的数据集。我想使用该R软件包randomForest来在非常偏斜的数据集上训练模型,该数据集只有很少的正例和许多负例。我知道,还有其他方法,最后我会使用它们,但是出于技术原因,建立随机森林是中间步骤。所以我玩弄了参数classwt。我在半径2的圆盘中建立了一个非常人工的数据集,包含5000个负样本,然后在半径1的圆盘中采样了100个正样本。 1)在没有类别加权的情况下,模型变得“退化”,即FALSE到处预测。 2)通过公平的类别权重,我将在中间看到一个“绿点”,即它将预测半径为1的圆盘,就像TRUE有负面的例子一样。 数据如下所示: 这是一个没有权重发生了什么:(电话是:randomForest(x = train[, .(x,y)],y = as.factor(train$z),ntree = 50)) 为了进行检查,我还尝试了当我通过对负类进行下采样来剧烈平衡数据集时发生什么情况,以使关系再次为1:1。这给了我预期的结果: 但是,当我用“ FALSE” = 1的类加权来计算模型时,“ TRUE” = 50(这是一个合理的加权,因为负数比正数多50倍),我得到了: 只有当我将权重设置为“ FALSE” = 0.05和“ TRUE” = 500000之类的怪异值时,我才得到有意义的结果: 这是非常不稳定的,即将“ FALSE”权重更改为0.01会使模型再次退化(即,它可以TRUE随处进行预测)。 问题:有人知道如何为随机森林确定良好的班级权重吗? R代码: library(plot3D) library(data.table) library(randomForest) set.seed(1234) amountPos = 100 amountNeg = 5000 # positives r = runif(amountPos, 0, 1) phi …
11 r  random-forest 

1
贝叶斯尖峰和平板与惩罚方法
我正在阅读Steven Scott关于BSTS R包的幻灯片(您可以在这里找到它们:slides)。 在某个时候,当谈到在结构时间序列模型中包括许多回归变量时,他介绍了回归系数的尖峰和板坯先验,并说与惩罚方法相比,它们更好。 斯科特(Scott)说,以一个具有100个预测变量的数据集为例: 惩罚方法对包含/排除哪些变量做出单一决定,这意味着它们决定了一个预测子集,即在可能变量中的一个模型。210021002^{100} “套索(和相关)先验不稀疏,它们在模式下而不是后验分布上引起稀疏” 在这一点上,他介绍了Spike和Slab先验。 我想我有直觉,但我想确定一下: 从根本上说,他们基本上使用蛮力方法测试要包括的每个回归变量子集是否更好? 这样做的缺点是计算时间吗? 当您说“套索(及相关)...但不在后验分布中”时,您认为他是什么意思?

1
Mclust模型选择
R软件包mclust使用BIC作为选择集群模型的标准。据我了解,应该选择BIC最低的模型而不是其他模型(如果您仅关心BIC)。但是,当BIC值均为负时,该Mclust功能默认为具有最高BIC值的模型。我的来自各种试验总体理解是mclust识别“最好”的模型作为那些具有。max{BICi}max{BICi}max\{BIC_i\} 我试图理解作者为什么做出这个决定。它在CRAN站点中进行了说明:https ://cran.r-project.org/web/packages/mclust/vignettes/mclust.html 另外,mclust软件包的作者在第5页的基于模型的分类方法:使用化学计量学中的mclust软件中对此进行了记录。 “最佳”模型被认为是拟合模型中BIC最高的模型。 谁能在这个问题上大放异彩?如果较低的BIC总是更好,那么为什么作者不选择具有最低BIC的模型,而是选择具有最小绝对BIC的模型?如果可能,请提供参考。

3
使用Ahrens和Dieter(1972)的方法而不是通过逆变换的指数随机发生器的优点是什么?
我的问题是受R的内置指数随机数生成器函数启发的rexp()。当尝试生成指数分布的随机数时,许多教科书建议使用此Wikipedia页面中概述的逆变换方法。我知道还有其他方法可以完成此任务。特别是,R的源代码使用Ahrens&Dieter(1972)在论文中概述的算法。 我已经说服自己,Ahrens-Dieter(AD)方法是正确的。不过,与逆变换(IT)方法相比,我看不出使用它们的方法的好处。AD不仅比IT实施更复杂。似乎也没有速度上的好处。这是我的R代码,用于对两种方法及其结果进行基准测试。 invTrans <- function(n) -log(runif(n)) print("For the inverse transform:") print(system.time(invTrans(1e8))) print("For the Ahrens-Dieter algorithm:") print(system.time(rexp(1e8))) 结果: [1] "For the inverse transform:" user system elapsed 4.227 0.266 4.597 [1] "For the Ahrens-Dieter algorithm:" user system elapsed 4.919 0.265 5.213 比较这两种方法的代码,AD至少绘制两个统一的随机数(使用C函数unif_rand())以获得一个指数随机数。IT只需要一个统一的随机数。大概是R核心团队决定不实施IT,因为它假设采用对数可能比生成更统一的随机数慢。我了解对数的获取速度可能与机器有关,但至少对我而言是相反的。也许IT的数值精度与对数为0的奇异性有关吗?但是然后,R 源代码sexp.c揭示了AD的实现也失去了一些数值精度,因为C代码的以下部分从统一随机数u中删除了前导位。 double u = unif_rand(); while(u <= 0. || u …

3
我的Poisson GLM应该使用偏移量吗?
我正在进行研究,以研究使用两种不同的水下视觉普查方法时鱼类密度和鱼类物种丰富度的差异。我的数据最初是计数数据,但通常将其更改为鱼的密度,但我仍然决定使用Poisson GLM,我希望它是正确的。 model1 <- glm(g_den ~ method + site + depth, poisson) 我输入的3个预测变量是方法,位置和深度,它们是我作为因素排序的。 我的反应变量是石斑鱼物种丰富度,石斑鱼密度,其他鱼类也一样。我知道密度不是整数,而是数字数据,例如1.34849。我现在却收到此错误: In dpois(y, mu, log = TRUE) : non-integer x = 0.037500 我一直在阅读,很多人建议使用偏移量,这是最明智的选择吗?

1
如何解释TBATS模型结果和模型诊断
我有一个半小时的需求数据,这是一个多个季节的时间序列。我在R的package中使用tbats过forecast,并得到如下结果: TBATS(1, {5,4}, 0.838, {<48,6>, <336,6>, <17520,5>}) 这是否意味着该序列不一定要使用Box-Cox变换,并且误差项是ARMA(5,4),而6、6和5项则用来解释季节性?阻尼参数0.8383表示什么,也用于转换吗? 以下是模型的分解图: 我想知道该怎么做level并slope讲述该模型。“坡度”告诉趋势,那又如何level呢?如何获得更清晰的情节session 1和session 2,它们分别是每天和每周的季节性。 tbats除了RMSE值,我还知道如何进行模型诊断以评估模型。正常方法是检查错误是否为白噪声,但此处的错误应该是ARMA系列的。我绘制了错误的'acf'和'pacf',但我认为它看起来不像ARMA(5,4)。这是否意味着我的模型不好? acf(resid(model1),lag.max = 1000) pacf(resid(model1),lag.max=1000) 最后一个问题RMSE是通过使用拟合值和真实值来计算的。如果我使用预测值fc1.week$mean和真实值来评估模型RMSE怎么办,它仍被称为?或者,还有这个名字吗? fc1.week <-forecast(model1,h=48*7) fc1.week.demand<-fc1.week$mean

2
在R中解释模型平均结果
我正在尝试了解和知道使用R中的模型平均对某些数据进行分析所报告的内容。 我正在使用以下脚本来分析给定变量的测量方法的效果:这是数据集:https : //www.dropbox.com/s/u9un273gzw9o30u/VMT4.csv?dl=0 适用车型: LM.1 <- gls(VMTf ~ turn+sex+method, na.action="na.fail", method = "ML",VMT4) 挖泥船全模型 require(MuMIn) d=dredge(LM.1) print(d) coefficients(d) 获取所有模型的摘要信息以获取参数估计 summary(model.avg(d)) 我知道可以对所有模型进行平均(完整模型平均),也可以对其中一部分进行条件平均。现在,我想知道:什么时候最好使用完全或条件平均进行推断。对于科学文章,我应该报告所有这些内容吗?对于模型平均情况,Z值和关联的p到底意味着什么? 为了使可视化我的问题更加容易。这是结果表, > summary(model.avg(d))# now, there are effects Call: model.avg(object = d) Component model call: gls(model = VMT ~ <8 unique rhs>, data = VMT4, method = ML, na.action …

1
GLM中有多少个分布?
我在教科书中确定了多个位置,其中用5种分布(即Gamma,Gaussian,Binomial,Inverse Gaussian和Poisson)描述了GLM。R中的族函数也对此进行了举例说明。 有时,我会遇到对GLM的引用,其中包括其他发行版(示例)。有人可以解释为什么这5个特殊或始终在GLM中出现,但有时其他情况如此吗? 根据我到目前为止的了解,指数族中的GLM分布都适合以下形式: 其中是色散参数,而是规范参数。φθf(y;θ,ϕ)=exp{yθ−b(θ)ϕ+c(y,ϕ)}f(y;θ,ϕ)=exp⁡{yθ−b(θ)ϕ+c(y,ϕ)}f(y;\theta,\phi)=\exp\left\{\frac{y\theta-b(\theta)}{\phi}+c(y,\phi)\right\}ϕϕ\phiθθ\theta 不能对任何发行版进行转换以使其适合GLM吗?

3
使用布朗桥模拟布朗旅行?
我想以模拟布朗偏移处理(即空调总是正的一个布朗运动时到在)。由于Brownian偏移过程是一个条件为始终为正的Brownian桥,因此我希望使用Brownian桥来模拟Brownian偏移的运动。0 t = 10<t<10<t<10 \lt t \lt 1000t=1t=1t=1 在R中,我正在使用“ e1017”包来模拟布朗桥过程。如何使用该布朗桥过程创建布朗漂移?

2
使用R的glmnet的Ridge回归和Python的scikit-learn有什么区别?
我正在阅读James,Witten,Hastie,Tibshirani(2013)写的《 R语言中的统计学习及其应用入门》一书中关于Ridge回归/套索的LAB部分§6.6 。 更具体地说,我尝试将scikit-learn Ridge模型应用于R包“ ISLR”中的“ Hitters”数据集。我已经创建了与R代码所示相同的一组功能。但是,我无法接近glmnet()模型的结果。我选择了一个L2调整参数进行比较。(scikit-learn中的“ alpha”参数)。 蟒蛇: regr = Ridge(alpha=11498) regr.fit(X, y) http://nbviewer.ipython.org/github/JWarmenhoven/ISL-python/blob/master/Notebooks/Chapter%206.ipynb R: 请注意,alpha=0in 参数glmnet()表示应采用L2惩罚(Ridge回归)。文档警告不要为输入单个值lambda,但结果与使用向量的ISL中的结果相同。 ridge.mod <- glmnet(x,y,alpha=0,lambda=11498) 是什么导致差异? 编辑:从R中的惩罚包 使用时penalized(),系数与scikit-learn相同。 ridge.mod2 <- penalized(y,x,lambda2=11498) 也许问题可能还会是:“ 进行Ridge回归glmnet()与penalized()进行回归时有什么区别? 用于R包glmnet中的实际Fortran代码的新python包装器 https://github.com/civisanalytics/python-glmnet

2
偏向引导程序:是否可以将CI置于观察到的统计数据的中心?
这类似于Bootstrap:估算值超出置信区间 我有一些数据可以代表人群中基因型的数量。我想使用Shannon指数来估算遗传多样性,并且还要使用自举法生成一个置信区间。但是,我已经注意到,通过自举进行的估算往往会产生极大的偏差,并导致置信区间超出我观察到的统计数据。 下面是一个例子。 # Shannon's index H <- function(x){ x <- x/sum(x) x <- -x * log(x, exp(1)) return(sum(x, na.rm = TRUE)) } # The version for bootstrapping H.boot <- function(x, i){ H(tabulate(x[i])) } 资料产生 set.seed(5000) X <- rmultinom(1, 100, prob = rep(1, 50))[, 1] 计算方式 H(X) ## [1] 3.67948 …

2
关于给定响应变量的最佳分箱
我正在寻找相对于给定响应(目标)二进制变量并以最大间隔数为参数的连续变量的最佳合并方法(离散化)。 示例:我对“身高”(数字连续)和“ has_back_pains”(二进制)变量的人有一组观察。我想将高低离散化为最多3个间隔(组),以不同比例的背部疼痛患者来做,这样算法就可以最大程度地使各组之间的差异最大化(例如,在给定限制的情况下,每个间隔至少有x个观察值)。 解决此问题的明显方法是使用决策树(一个简单的单变量模型),但我在R中找不到任何将“最大分支数”作为参数的函数-它们全部将变量除分成2块(<= x和> x)。SAS矿工具有“最大分支”参数,但我正在寻找非商业解决方案。 我的一些变量只有几个唯一值(可以视为离散变量),但我想将它们离散化为较小的间隔。 与我的问题最接近的解决方案是在R中的smbinning包中实现的(依赖于party包中的ctree函数),但是它有两个缺点:无法设置间隔数(但是,您可以通过更改间隔找到解决方法p参数),并且当数据向量的唯一值少于10个时无效。无论如何,您可以在此处看到示例输出(Cutpoint和Odds列至关重要): Cutpoint CntRec CntGood CntBad CntCumRec CntCumGood CntCumBad PctRec BadRate Odds LnOdds WoE IV 1 <= 272 9081 169 8912 9081 169 8912 0.1874 0.9814 0.0190 -3.9653 -0.6527 0.0596 2 <= 311 8541 246 8295 17622 415 17207 0.1762 0.9712 0.0297 -3.5181 -0.2055 …

1
具有采样变量的混合效应模型设计
我正在尝试lme4为实验设计指定线性混合效果模型(带有)的公式,但是不确定执行是否正确。 设计:基本上,我正在测量植物的响应参数。我有4种治疗水平和2种灌溉水平。将植物分为16个地块,在每个地块中,我对4个子图进行采样。在每个子图中,我进行15到30次观察(取决于发现的植物数量)。即,总共有1500行。 最初,子图级别只是出于采样目的,但是我想在模型中将其考虑在内(作为64级变量),因为我看到从一个子图到另一个子图有很多可变性,即使在同一图内(大于整个图之间的差异)。 我的第一个想法是写: library(lme4) fit <- lmer(y ~ treatment*irrigation + (1|subplot/plot), data=mydata) 要么 fit <- lmer(y ~ treatment*irrigation + (1|subplot) + (1|plot), data=mydata) 那是对的吗?我不确定是否必须在公式中同时保留两个图/子图级别。没有固定的影响是重要的,但随机的影响是非常重要的。

1
使用null和模型偏差测试GLM模型
我已经在R中建立了一个glm模型,并已经通过一个测试和培训小组对其进行了测试,因此确信它可以很好地工作。R的结果是: Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -2.781e+00 1.677e-02 -165.789 < 2e-16 *** Coeff_A 1.663e-05 5.438e-06 3.059 0.00222 ** log(Coeff_B) 8.925e-01 1.023e-02 87.245 < 2e-16 *** log(Coeff_C) -3.978e-01 7.695e-03 -51.689 < 2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 …

1
我如何解释lavaan输出?
我正在尝试使用进行验证性因素分析(CFA)lavaan。我很难解释产生的输出lavaan。 我有一个简单的模型-收集调查数据中的项目支持4个因素。这些因素与这些项目所测量的一致,在某种程度上看来它们可以用作有效的测量。 请帮我理解所产生的输出如下lavaan的cfa(): Number of observations 1730 Estimator ML Minimum Function Test Statistic 196.634 Degrees of freedom 21 P-value (Chi-square) 0.000 Model test baseline model: Minimum Function Test Statistic 3957.231 Degrees of freedom 36 P-value 0.000 User model versus baseline model: Comparative Fit Index (CFI) 0.955 Tucker-Lewis Index (TLI) 0.923 …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.