Liechi

您好,我现在问题是这样,因为这里是有xitβ1和xitβ2,我想请问下这个如何定义

比如说只有一个β的情况下,直接使用一个beta和X %*% beta 这种模式就行了,出现两个beta请问下该怎么处理,谢谢!

probit <- function (beta) {
eta <- X %*% beta
p <- pnorm(eta)
-sum((1 - Y) * log(1 - p) + Y * log(p),na.rm=T)
}

    zhangice001 试试 beta[1] 和 beta[2]。展示公式的话可以通过方括号加下角标,不知这是否符合你的要求。

      Liechi 谢谢您的建议,还有就是我想请问一下使用dnorm如何定义ϕ(yxβσ)\phi \left ( \frac{y-x\beta }{\sigma }\right )

      我现在是这样的,以ols的极大似然估计为例:

      ols.nll <- function (beta) {
      eta <- (Y-X %*% beta)/sigma
      p <- dnorm(Y,eta,sigma)
      -sum(log(p),na.rm=T)
      }
      fit <- optim(vi, ols.nll , method = "BFGS", hessian = TRUE)

      结果显示,Error in (Y - X %*% beta)/sigma : non-numeric argument to binary operator,请问下这个该怎么使用dnorm去定义,再次麻烦您了

        zhangice001 表示两个数的乘积直接写 * 就可以了,如 eta <- (Y - X * beta)/sigma。你写成 %*% 在 R 里面表示矩阵乘法,所以得到的结果会是个矩阵。

        定义函数的时候,就直接按照平时的习惯写四则运算符号。%*% 一般用于做图的时候,在图像上标注的公式里显示 x 号;用于定义函数时,%*% 用于表示两个矩阵相乘。

          zhangice001 写了一个比较无聊的例子,你参考一下吧。

          set.seed(12345)
          beta1 <- rnorm(10)
          beta2 <- rnorm(10)
          beta3 <- rnorm(10)
          plot(x = beta1, y = beta1 * beta3 / beta2)
          text(-1, -1, expression(frac(beta[1] * beta[3], beta[2])), cex = 3)
          text(0, -1, expression(frac(beta[1] %*% beta[3], beta[2])), cex = 3)

            Liechi zhangice001 这个帖子我这几天一直都没太搞明白到底是要问什么,从我一个旁观者的角度来看,你们似乎各自在说不同的问题啊。所以你到底是要把一个数学公式画到图里(如楼上的答案给的一样),还是要写一个混合概率密度函数?我感觉你是要问后者。

              yihuizhangice001 新发的帖子看,他/她想问的应该是后者。

              其实在回复这个问题的时候,我已意识到了可能有这方面的理解分歧,所以在以上这个憋足的例子里面写了 y = beta1 * beta3 / beta2 来和下边的 expression(frac(beta[1] * beta[3], beta[2])) 对应,以帮助理解。不过看来我还是没有能解释清楚。