2013-05-04 70 views
0

我一直对下面的代码有问题; “权重=重量”显示为未使用的参数。我应该如何解决这个问题?权重显示为logistf中的未使用参数R函数

x_0 <- rbinom(1,100, 0.01) 
x_1 <- rbinom(1,100, 0.1) 

x <- c(0,0,1,1) 
y <- c(0,1,0,1) 
weight <- c(100-x_0, x_0, 100-x_1, x_1) 

result <- logistf(y ~ x, weights=weight)$coef[2] 

此外,有没有一种方法来执行上面30,60,或100倍示出的整个过程,并产生时间(或计数)X_0X_1,和结果为每一次?任何建议都会很棒。谢谢。

回答

0

我设法运行没有问题下面的代码(诉3.0.0 logistf v 1.10):

arr <- t(sapply(1:30, function(i){ 
    x_0 <- rbinom(1,100, 0.01) 
    x_1 <- rbinom(1,100, 0.1) 

    x <- c(0,0,1,1) 
    y <- c(0,1,0,1) 
    weight <- c(100-x_0, x_0, 100-x_1, x_1) 

    list(count=i,x_0=x_0,x_1=x_1, res= logistf(y ~ x, weights=weight)$coef[2]) 
})) 
+0

我的R版本是2.9.2;我想我应该重新安装它。谢谢。 – 2013-05-04 17:34:46

+0

如果我想在代码中添加另一个logistf模型以进行比较,我该怎么做? (然后我会在列表函数中有两个不同的“res”参数。) – 2013-05-04 18:05:59

+0

您可以在列表中添加尽可能多的数据:'list(count = i,x_0 = x_0,x_1 = x_1,res = logistf(y 〜x,weight = weight)$ coef [2],res_2 = logistf(y〜x,权重=权重)$ coef [2],res_3 = logistf(y〜x,权重=权重)$ coef [2]每一个将对应于结果数组中的一列。 – dratewka 2013-05-04 19:28:43

0

我没有在我的工作区中的logistf但这个工程使用glm(..., family="binomial")

rtest <- replicate(10, 
    {x_0 <- rbinom(1,100, 0.01) 
    x_1 <- rbinom(1,100, 0.1) 
    x <- c(0,0,1,1) 
    y <- c(0,1,0,1) 
    weight <- c(100-x_0, x_0, 100-x_1, x_1) 

    result <- glm(y ~ x, weights=weight, family="binomial")$coef[2]}) 

rtest 
#------------ 
     x   x   x   x   x   x   x   x 
1.694596 2.281485 1.843585 18.220418 18.410200 18.113934 18.724469 1.162464 
     x   x 
1.650681 2.504379