我已经在 R 中安装了 mixdist 包来组合发行版。具体来说,我正在使用该mix()功能。请参阅文档。
基本上,我得到
Error in nlm(mixlike, lmixdat = mixdat, lmixpar = fitpar, ldist = dist, :
missing value in parameter
我用谷歌搜索了错误消息,但没有弹出任何有用的结果。
我的第一个参数mix()是一个名为 data.df 的数据框。它的格式与内置数据集 pike65 完全相同。我也这么做了data.df <- as.mixdata(data.df)。
我的第二个参数有两行。它是一个名为 datapar 的数据框,其格式与 pikepar 完全相同。我的pi值是0.5和0.5。我的mu值为 250 和 463(基于我的数据集)。我的sigma值是0.5和1。
我的电话mix()看起来像:
fitdata <- mix(data.df, datapar, "norm", constr = mixconstr(consigma="CCV"), emsteps = 3, print.level = 2)
打印显示我的pi值在第一次迭代后从 0.5 变为 NaN,并且我的梯度变为 0。
如果您能帮助解决此错误,我将不胜感激。
谢谢,
妮
我曾经使用下面的代码来计算lmer模型的标准化系数。但是,随着 lme 的新版本,返回对象的结构发生了变化。
如何调整功能stdCoef.lmer使其与新lme4版本兼容?
# Install old version of lme 4
install.packages("lme4.0", type="both",
repos=c("http://lme4.r-forge.r-project.org/repos",
getOption("repos")[["CRAN"]]))
# Load package
detach("package:lme4", unload=TRUE)
library(lme4.0)
# Define function to get standardized coefficients from an lmer
# See: https://github.com/jebyrnes/ext-meta/blob/master/r/lmerMetaPrep.R
stdCoef.lmer <- function(object) {
sdy <- sd(attr(object, "y"))
sdx <- apply(attr(object, "X"), 2, sd)
sc <- fixef(object)*sdx/sdy
#mimic se.ranef from pacakge "arm"
se.fixef <- function(obj) attr(summary(obj), "coefs")[,2]
se <- se.fixef(object)*sdx/sdy
return(list(stdcoef=sc, stdse=se))
}
# Run model
fm0 <- lmer(Reaction ~ …Run Code Online (Sandbox Code Playgroud) 这个问题是关于语法和语义的,因此请在Cross-Validated上找到一个(但尚未答复的)副本:https://stats.stackexchange.com/questions/113324/repeated-measures-anova-ezanova-vs-aov-vs -lme语法
在机器学习领域,我在相同的5个数据集上评估了4个分类器,即每个分类器返回数据集1,2,3,...和5的性能度量.现在我想知道分类器是否在它们的显着不同性能.这是一些玩具数据:
Performance<-c(2,3,3,2,3,1,2,2,1,1,3,1,3,2,3,2,1,2,1,2)
Dataset<-factor(c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5))
Classifier<-factor(c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4))
data<-data.frame(Classifier,Dataset,Performance)
Run Code Online (Sandbox Code Playgroud)
在教科书之后,我进行了重复测量的单因素方差分析.我将我的表现解释为因变量,将分类器解释为主体,将数据集解释为主体内因子.使用aov,我得到了:
model <- aov(Performance ~ Classifier + Error(factor(Dataset)), data=data)
summary(model)
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
Error: factor(Dataset)
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 4 2.5 0.625
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
Classifier 3 5.2 1.7333 4.837 0.0197 *
Residuals 12 4.3 0.3583
Run Code Online (Sandbox Code Playgroud)
使用线性混合效果模型时,我得到类似的结果:
model <- lme(Performance ~ Classifier, random = ~1|Dataset/Classifier,data=data)
result<-anova(model)
Run Code Online (Sandbox Code Playgroud)
然后,我尝试用ezANOVA重现结果,以便对Sphericity执行Mauchlys测试:
ezANOVA(data=data, dv=.(Performance), wid=.(Classifier), within=.(Dataset), detailed=TRUE, type=3)
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
Effect DFn DFd SSn SSd F …Run Code Online (Sandbox Code Playgroud) 我有一个包含 142 个数据条目的数据集:121 个人在两次测量(两年,治疗前后,年份 = 0 或 1),在第二年 46 个人在处理地块中,其余的在控制地块中(处理= 0 或 1)。以下是一些示例数据:
ID <- c("480", "480", "620", "620","712","712")
Year <- c("0", "1", "0", "1","0", "1")
Plot <- c("14", "14", "13", "13","20","20")
Treat <- c("0", "0", "0", "1", "0", "1")
Exp <- c("31", "43", "44", "36", "29", "71")
ExpSqrt <- c("5.567764", "6.557439", "6.633250", "6.000000", "5.385165", "8.426150")
Winter <- data.frame(ID, Year, Plot, Treat,
Exp, ExpSqrt,
stringsAsFactors = TRUE)
Run Code Online (Sandbox Code Playgroud)
情节和个人是随机因素,我试图拟合一个混合模型来确定年份、治疗和它们之间的相互作用的影响:
model_Exp <- lmer(ExpSqrt~Year+Treat+Year*Treat+(1|ID)+(1|Plot),data=Winter)
Run Code Online (Sandbox Code Playgroud)
但我不断收到警告信息:
"fixed-effect model matrix is rank deficient so dropping …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用glmer模型珊瑚招募并在重新调整变量后运行模型时出现错误"错误:无效的分组因子规范,站点".非常感谢
m1<-glmer(Tot~cs.Tile(Tile)+cs.Coral_T(Coral_T)+cs.Sponge(Sponge)+
cs.Turf(Turf)+cs.Acro(Acro)+cs.Por(Por)+cs.Poc(Poc)+
cs.Mer(Mer)+cs.Agar(Agar)+cs.Fav(Fav)+
cs.Den(Den)+cs.Sid(Sid)+cs.CCA(CCA)+cs.Soft(Soft)+
(1|Site),
family=poisson, data=data)
Run Code Online (Sandbox Code Playgroud)
我有16个变量和368个obs:
str(data)
'data.frame': 368 obs. of 16 variables:
$ Site : Factor w/ 25 levels "Eight","Eighteen",..: 10 10 10 10 10 10 10 10 10 10 ...
$ Tile : int 1 2 3 4 5 6 7 8 9 10 ...
$ Tot : int 28 24 17 13 29 19 6 13 14 4 ...
$ Coral_T: num 32.6 32.6 32.6 32.6 32.6 ...
$ Sponge : num …Run Code Online (Sandbox Code Playgroud) 我拥有多组鸟类超过 10 天的观察行为数据。我想调查某些行为是否存在时间模式(例如,配偶竞争是否会随着时间的推移而增加?)并且我被告知必须考虑数据的自相关性,因为行为不可能每天都是独立的。
不过我想知道两件事:
由于我对 y 之间的差异不感兴趣,而是对 y 随天变化的趋势感兴趣,所以我还需要校正自相关吗?
如果是,我如何控制自相关,以便只留下信号(当然还有噪声)?
对于第二个问题,请记住,我将使用 R 中的混合模型来分析时间对行为的影响(因为存在伪复制等随机效应),但我还没有找到任何纠正自相关的直接方法对响应进行建模时的数据。
我对系统发育回归模型比较陌生。过去,当我的树中每个物种只有 1 个条目时,我使用了 PGLS。现在我有一个包含总共 9 个物种的数千条记录的数据集,我想运行一个系统发育模型。我阅读了最常见软件包(例如 caper)的教程,但我不确定如何构建模型。
当我尝试为雀跃创建对象时,即使用:
obj <- comparative.data(phy = Tree, data = Data, names.col = species, vcv = TRUE, na.omit = FALSE, warn.dropped = TRUE)
Run Code Online (Sandbox Code Playgroud)
我收到消息:
row.names<-.data.frame(*tmp*, value = value) 中的错误:不允许重复的“row.names”此外:警告消息:设置“row.names”时的非唯一值:“Species1”、“Species2”、“Species3”、“Species4” '、'物种 5'、'物种 6'、'物种 7'、'物种 8'、'物种 9'
我知道我可以通过应用 MCMCglmm 模型来解决这个问题,但我不熟悉贝叶斯模型。
在此先感谢您的帮助。
使用方法“fREML”和“REML”拟合相同的模型bam给了我接近的结果,但解释的偏差与返回的相当不同summary.gam。
使用“fREML”时,数量约为 3.5%(不好),而使用“REML”时,数量约为 50%(还不错)。怎么可能?哪一个是正确的?
不幸的是,我无法提供一个简单的可重现的示例。
#######################################
## method = "fREML", discrete = TRUE ##
#######################################
Family: binomial
Link function: logit
Formula:
ObsOrRand ~ s(Var1, k = 3) + s(RandomVar, bs = "re")
Parametric coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.0026 0.2199 -22.75 <2e-16
Approximate significance of smooth terms:
edf Ref.df Chi.sq p-value
s(Var1) 1.00 1.001 17.54 2.82e-05
s(RandomVar) 16.39 19.000 145.03 < 2e-16
R-sq.(adj) = 0.00349 Deviance explained = 3.57%
fREML = 2.8927e+05 Scale …Run Code Online (Sandbox Code Playgroud) 我可以通过下面的代码得到两两比较的意义
m <- lmer(angle ~ recipe*temp + (1|replicate), data=cake)
emtrends(m, pairwise~recipe, var="temp")
$emtrends
recipe temp.trend SE df lower.CL upper.CL
A 0.1537143 0.02981898 250 0.09498586 0.2124427
B 0.1645714 0.02981898 250 0.10584300 0.2232999
C 0.1558095 0.02981898 250 0.09708110 0.2145379
$contrasts
contrast estimate SE df t.ratio p.value
A - B -0.010857143 0.0421704 250 -0.257 0.9641
A - C -0.002095238 0.0421704 250 -0.050 0.9986
B - C 0.008761905 0.0421704 250 0.208 0.9765
Run Code Online (Sandbox Code Playgroud)
但是,如果我对每个趋势recipe本身是否重要感兴趣怎么办?我怎样才能得到 的意义$emtrends?
我目前正在努力解决如何按照APA-6建议报告的结果rstanarm::stan_lmer().
首先,我将在频率论方法中使用混合模型,然后尝试使用贝叶斯框架进行相同的操作.
以下是获取数据的可重现代码:
library(tidyverse)
library(neuropsychology)
library(rstanarm)
library(lmerTest)
df <- neuropsychology::personality %>%
select(Study_Level, Sex, Negative_Affect) %>%
mutate(Study_Level=as.factor(Study_Level),
Negative_Affect=scale(Negative_Affect)) # I understood that scaling variables is important
Run Code Online (Sandbox Code Playgroud)
现在,让我们以"传统"的方式拟合线性混合模型来测试性别(男/女)对负面情绪(负面情绪)的影响,以及研究水平(教育年限)作为随机因素.
fit <- lmer(Negative_Affect ~ Sex + (1|Study_Level), df)
summary(fit)
Run Code Online (Sandbox Code Playgroud)
输出如下:
Linear mixed model fit by REML t-tests use Satterthwaite approximations to degrees of
freedom [lmerMod]
Formula: Negative_Affect ~ Sex + (1 | Study_Level)
Data: df
REML criterion at convergence: 3709
Scaled residuals:
Min 1Q Median 3Q Max
-2.58199 -0.72973 0.02254 0.68668 2.92841 …Run Code Online (Sandbox Code Playgroud) mixed-models ×10
r ×8
lme4 ×3
anova ×1
bayesian ×1
coefficients ×1
emmeans ×1
gam ×1
lmer ×1
longitudinal ×1
mgcv ×1
multi-level ×1
nlm ×1
nlme ×1
phylogeny ×1
rank ×1
regression ×1
rstan ×1
stan ×1
syntax ×1
temporal ×1
time-series ×1