我正在尝试使用Newton-Raphson算法R来最小化我为非常具体的问题编写的对数似然函数.我会诚实地说,估计方法在我的头脑中,但我知道我的领域中的许多人(心理测量学)使用NR算法进行估计,所以我试图使用这种方法,至少开始时.我有一系列嵌套函数,它们返回一个标量作为特定数据向量的对数似然估计:
log.likelihoodSL <- function(x,sxdat1,item) {
theta <- x[1]
rho <- x[2]
log.lik <- 0
for (it in 1:length(sxdat1)) {
val <- as.numeric(sxdat1[it])
apars <- item[it,1:3]
cpars <- item[it,4:6]
log.lik <- log.lik + as.numeric(log.pSL(theta,rho,apars,cpars,val))
}
return(log.lik)
}
log.pSL <- function(theta,rho,apars,cpars,val) {
p <- (rho * e.aSL(theta,apars,cpars,val)) + ((1-rho) * e.nrm(theta,apars,cpars,val))
log.p <- log(p)
return(log.p)
}
e.aSL <- function(theta,apars,cpars,val) {
if (val==1) {
aprob <- e.nrm(theta,apars,cpars,val)
} else if (val==2) {
aprob <- 1 - e.nrm(theta,apars,cpars,val)
} else
aprob <- …Run Code Online (Sandbox Code Playgroud) 我确信这是一个多次被问到的简单问题,但这是我发现很难知道要搜索哪些术语以便找到解决方案的时候之一.我有一个简单的列表列表,如下面的列表:
sets <- list(S1=NA, S2=1L, S3=2:5)
> sets
$S1
[1] NA
$S2
[1] 1
$S3
[1] 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
我有一个标量变量val,可以取任何整数的值sets(但永远不会NA).假设val <- 4- 那么,返回一个TRUE/FALSE向量的快速方法是什么,set其中TRUE表示val在该列表中的每个列表,而FALSE表示不是?在这种情况下,我想要的东西
[1] FALSE FALSE TRUE
Run Code Online (Sandbox Code Playgroud)
我希望会有一些递归的形式,%in%但我没有运气寻找它.谢谢!
我的目标是在R中创建箱图(不一定是ggplot2,但这就是我现在正在使用的),这与我在某处找到的这个示例(减去文本)风格相似:
这是我到目前为止的代码:
dat <- read.table(file = "https://www.dropbox.com/s/b59b03rc8erea5d/dat.txt?dl=1", header = TRUE, sep = " ")
library(ggplot2)
p <- ggplot(dat, aes(x = Subscale, y = Score, fill = Class))
p + stat_boxplot(geom = "errorbar", width = 1.2, size = 2.5, color = "#0077B3") +
geom_boxplot(outlier.shape = NA, coef = 0, position = position_dodge(.9)) +
scale_fill_manual(values = c("#66CCFF", "#E6E6E6")) +
theme(panel.background = element_rect(fill = "white", color = "white"))
Run Code Online (Sandbox Code Playgroud)
结果如下:
显然,我所拥有的和示例之间存在很多差异,但是现在我只专注于从错误栏中删除端点,我指的是由stat_boxplot函数创建的水平顶部和底部部分.有谁知道我可以获得预期效果的方式?
我试图将R中的多个表达式组合成一个表达式.理想情况下,我可以做这样的事情:
g <- expression(exp(a[1]*x)/(1 + exp(a[1]*x)))
h <- expression(exp(a[2]*x)/(1 + exp(a[2]*x)))
c <- expression(g * h)
Run Code Online (Sandbox Code Playgroud)
在哪里a是给定的数据向量,并且x是唯一未知的(并且在所有表达式中它是相同的未知).c会回来的
R> c
expression(exp(a[1]*x)/(1 + exp(a[1]*x)) * exp(a[2]*x)/(1 + exp(a[2]*x)))
Run Code Online (Sandbox Code Playgroud)
现在,当我这样做时,我得到了
R> c
expression(g * h)
Run Code Online (Sandbox Code Playgroud)
我想要一个等式
c http://lehrfeld.me/images/c.jpg
我可以插入一些矢量a来获得一个函数x.我在这做错了什么?