R语言 具有自润滑结构的膜

o75abkj4  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(360)

这是我的模型:

library (mvord)
roedores2 <- mvord(datos(IndicAD) ~ Trat + Tiempo + 
                    Trat:Tiempo+(1|Tiempo) + (1|Granja), data =  datos, 
                    error.structure = cor_ar1(~Tiempo), link = mvprobit(), 
                    control = mvord.control(solver = "BFGS"))

“IndicAD”是一个有序变量,0、1、2、3、4作为可能的响应
“Trat”是一个有3个水平的因子
“Tiempo”是一个因子(随时间重复测量),有11个水平(次数)
“Granja”是一个具有两个水平的因子(两个样本中心)
但我一直收到这个错误:

Error in seq_len(rho$ndim) : 
  argument must be coercible to non-negative integer
In addition: Warning message:
In seq_len(rho$ndim) : first element used of 'length.out' argument
ljsrvy3e

ljsrvy3e1#

mvord包正在使用多元有序回归,这意味着响应变量应包含多个因子。在您的情况下,它只有一个indcAD,因此mvord函数失败。
如果您有两个有序因子indcAD1indcAD2,算法将正常工作。如果您需要使用单变量有序回归,其中响应值是一个因子,您可以使用例如polr x x MASS包。

library (mvord)
n <- 50
datos <- data.frame(
  IndiCAD1 = factor(sample(0:4, n, replace = TRUE), ordered = TRUE),
  IndiCAD2 = factor(sample(0:4, n, replace = TRUE), ordered = TRUE),
  Trat = factor(sample(3, n, replace = TRUE), ordered = TRUE),
  Tiempo = factor(sample(3, n, replace = TRUE)),
  Granja = factor(sample(2, n, replace = TRUE)))

res_mvord <-  mvord(MMO2(IndiCAD1, IndiCAD2) ~ Trat + Tiempo + 
                 Trat:Tiempo, data =  datos, 
               error.structure = cor_ar1(~Tiempo), link = mvprobit(), 
               control = mvord.control(solver = "BFGS"))

res_mvord
# Call:
#   mvord(formula = MMO2(IndiCAD1, IndiCAD2) ~ Trat + Tiempo + Trat:Tiempo, 
#         data = datos, error.structure = cor_ar1(~Tiempo), link = mvprobit(), 
#         control = mvord.control(solver = "BFGS"))
# 
# Thresholds:
#   $IndiCAD1
# 0|1       1|2       2|3       3|4 
# 0.0000000 0.7113659 1.0971497 1.7800162 
# 
# $IndiCAD2
# 0|1      1|2      2|3      3|4 
# 0.000000 1.088273 1.486173 2.135159 
# 
# Coefficients:
#   (Intercept) 1    (Intercept) 2         Trat.L 1         Trat.L 2         Trat.Q 1 
# 0.7482449        1.2190449       -0.4892506        0.3545706        0.7432251 
# Trat.Q 2        Tiempo2 1        Tiempo2 2        Tiempo3 1        Tiempo3 2 
# -0.5710266        0.4844226       -0.6121860       -0.2728416       -0.3183369 
# Trat.L:Tiempo2 1 Trat.L:Tiempo2 2 Trat.Q:Tiempo2 1 Trat.Q:Tiempo2 2 Trat.L:Tiempo3 1 
# -0.5196205       -0.4058554       -0.4065644        0.6272309        0.3727869 
# Trat.L:Tiempo3 2 Trat.Q:Tiempo3 1 Trat.Q:Tiempo3 2 
# -1.6488805       -0.1636811        0.1608613 
# 
# Parameters of the error structure:
#   p25        p26        p27 
# 0.3447173 -0.3866346 -0.8193181 

res_polar <- polr(IndiCAD1 ~ Trat + Tiempo + 
                    Trat:Tiempo, data = datos)

res_polar
# Call:
#   polr(formula = IndiCAD1 ~ Trat + Tiempo + Trat:Tiempo, data = datos)
# 
# Coefficients:
#   Trat.L         Trat.Q        Tiempo2        Tiempo3 Trat.L:Tiempo2 Trat.Q:Tiempo2 
# -0.84715296     1.26605745     0.72589772    -0.60879038    -0.74903326    -0.69633321 
# Trat.L:Tiempo3 Trat.Q:Tiempo3 
# 0.76901029    -0.09709166 
# 
# Intercepts:
#   0|1         1|2         2|3         3|4 
# -1.28052686 -0.05745217  0.58771283  1.71795395 
# 
# Residual Deviance: 150.1981 
# AIC: 174.1981

相关问题