【问题标题】:Issue with the dimension of matrix being optimised in R在 R 中优化矩阵维度的问题
【发布时间】:2018-05-08 09:53:04
【问题描述】:

我正在尝试计算一些权重,以便使用 R 进行间接处理比较。我稍微更改了一些代码,以反映我只是将平均值居中。但是,此代码不会运行。

我相信这是由于a1 矩阵有两列而不是一列,但我真的不知道如何改变它。我尝试在矩阵中添加一列零和一,但我不确定这是否会给我一个正确的结果。

当然,这可能根本不是问题,但我看不出还有什么可能导致这种情况。我已经包含了代码,任何建议都将不胜感激。

    # Objective function
    objfn <- function(a1, X){
      sum(exp(X %*% a1))
    }

    # Gradient function
    gradfn <- function(a1, X){
      colSums(sweep(X, 1, exp(X %*% a1), "*"))
    }

    X.EM.0 = data$A-age.mean

    # Estimate weights
    print(opt1 <- optim(par = c(0,0), fn = objfn, gr = gradfn, X = X.EM.0, method = "BFGS"))
    a1 <- opt1$par

【问题讨论】:

    标签: r matrix vector dimensions


    【解决方案1】:

    如此简单的解决方案,我有点尴尬地发布了这个。

    par=c(0,0) 应更改以匹配数据列。这里应该改成一个。

    【讨论】:

      猜你喜欢
      • 2021-05-07
      • 2020-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      • 2016-08-03
      • 2021-08-31
      相关资源
      最近更新 更多