楼主: hcz153
5471 4

[问答] 请教:bootstrap法估计Logistic回归模型里交互作用S指数的可信区间 [推广有奖]

  • 0关注
  • 0粉丝

高中生

77%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
2.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1003 点
帖子
16
精华
0
在线时间
45 小时
注册时间
2013-2-18
最后登录
2024-1-5

楼主
hcz153 发表于 2013-2-18 15:50:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我在文献上看到的使用bootstrap法估计Logistic回归模型里交互作用S指数的可信区间,按照它提供的程序运行,但出现错误提示,麻烦各位帮我看看是哪出问题了?谢谢啊!
程序是:
<-library(boot) /*安装加载 Boot 软件包。
<-s1 <- function(datsam, indices){
         d<-datsam[indices] /*允许 Bootstrap 从原样本数据再抽样。
      fitlr <- glm(case ~ packyr * radon+age, family=binomial, data=d)
         s <- (exp(fitlr$coef[2]+fitlr$coef[3]+fitlr$coef[5])-1)/(exp(fitlr$coef[2])-1+exp(fitlr$coef[3])-1)} /*自定义从再抽样的样本中计算两连续变量交互作用S指数的功能函数。
运行后的提示:
错误: 意外的符号在"s2<-function(datsam,indices){d<-datsam[indices] fitlr"里

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Logistic回归模型 bootstrap法 logistic回归 Bootstrap logistic 模型 程序

沙发
parazhu 发表于 2013-2-18 17:39:05
d<-datsam[indices] 写错了,调用函数应该使用括号,应该是d<-datsam(indices)。
改过之后应该没有问题。

藤椅
hcz153 发表于 2013-2-18 23:28:22
parazhu 发表于 2013-2-18 17:39
d
谢谢parazhu的回复!
可是按照你说的改动后还是提示
错误: 意外的符号在"s2<-function(datsam,indices){d<-datsam(indices) fitlr"里

板凳
parazhu 发表于 2013-2-19 08:35:04
不好意思,我看错了。我猜测你的datsam是你原始的数据,那么datsam是一个dataframe,而indice是抽样之后的位置标记。那么问题应该出在d<-datsam[indices],因为[,]里面应该是行列参数,现在如果只给出一个就有问题了。改成 d<-datsam[indices,],应该就可以解决问题了。
但这里你给的信息还不太全面,上面是我的猜测。
我写一段代码,你看一下:

> wly[1:3,2:4]我的数据
         rstk      rcall        rput
1 0.001405482 0.04561051 -0.01015237
2 0.027702603 0.15324035  0.02020271
3 0.073717576 0.21985948  0.15700375

> nrow(wly)*/数据的总数
[1] 284
> n=sample(284,10)*/对数据进行bootstrap随机取样(注意这里是对位置进行取样)
> n*/取样数据的行坐标
[1]  17 143 111  65  63  45 142  22 164 249
> wly[n,]*/新的数据集
      stk         rstk        rcall        rput
17  9.19 -0.019397160 -0.037638851 -0.05443521
143 12.95  0.014780510  0.014445425  0.02429269
111 12.90  0.005441133  0.004106782 -0.03448618
65 13.41 -0.050883069 -0.043189933  0.22116139
63 14.33  0.013347581  0.021202208 -0.04927105
45 12.29  0.015580471 -0.002436055 -0.11705656
142 12.76  0.026202372  0.048790164  0.02489755
22 12.66 -0.010997754  0.004089985  0.33119982
164 16.55 -0.023881732 -0.050867219 -0.04149973
249 32.70 -0.043387508 -0.047038374  0.04932507

在你的函数中function(datsam, indices),datsam是原始数据集,indices是取样之后的位置参数。

报纸
hcz153 发表于 2013-2-19 22:47:21
parazhu 发表于 2013-2-19 08:35
不好意思,我看错了。我猜测你的datsam是你原始的数据,那么datsam是一个dataframe,而indice是抽样之后的位 ...
谢谢parazhu的回复!我按照你的提示改动了,并且试了几次后发现大括号里的几个选项要分行写才能运行,我原来是同一行输入的。如下的程序运行就可以了:
>-library(boot)
>-s1 <- function(datsam, indices){
+d<-datsam[indices,]
+fitlr <- glm(case ~ packyr * radon+age, family=binomial, data=d)
+s <- (exp(fitlr$coef[2]+fitlr$coef[3]+fitlr$coef[5])-1)/(exp(fitlr$coef[2])-1+exp(fitlr$coef[3])-1)}

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 12:02