Kind R-users,
I run a simple regression. I am interested in using the Monte Carlo to test
the slope parameter.
Here is what I have done:
d1<-read.table("Lightcor",col.names=c("a"))
d2<-read.table("CRcor",col.names=c("a"))
Li<-d1$a
CR<-d2$a
fit<-lm(Li~CR)
a<-summary(fit)
a gives the slope as 88.15
Problem: I now what to repeat the samples to access this coefficient.
Following one of the related examples I got online, I did (tried to modify):
N <- nrow(Li) # returns the number of observations in the dataset
C <- 50 # desired number of subsamples
S <- 38 # desired sample size
sumb2 <- 0
for (i in 1:C){ # a loop over the number of subsamples
set.seed(3*i) # a different seed for each subsample
subsample <- Li[sample(1:N, size=S, replace=TRUE), ]
mod <- lm(Li~CR,data=subsample)
#sum b2 for all subsamples:
sumb2 <- sumb2 + coef(mod)[[2]]
}
print(sumb2/C, digits = 3)
But when I run the script, I had error message:
Error in 1:N : argument of length 0
My data:
Li CR
74281 8449
92473 8148
62310 8520
71219 8264
33469 8389
75768 7499
61636 7821
103829 8468
87336 8568
129443 8190
97682 8539
106918 8502
97171 8578
48012 8181
93086 8631
92374 8562
113010 8404
66956 8592
133037 8632
108849 8644
81544 8442
105072 8615
143437 7724
153294 7829
123735 8682
154738 8756
100760 8839
108034 8839
81826 8858
116901 8847
80780 8869
122684 8736
141716 9087
144315 9166
162078 9147
163184 9267
150688 9275
200848 9259
221570 8943
192424 8564
173024 9282
197326 9318
209344 9293
220201 9242
212626 9324
218115 9319
170001 9314
187490 9346
172440 9350
180330 9349
200807 9355
234994 9350
139053 9284
150048 9361
203650 9346
233331 9369
198790 9340
164060 9382
198000 9401
201707 9355
179257 9369
188736 9298
243392 9393
246040 9374
269058 9364
201657 9370
187942 9354
228514 9305
234000 9392
224431 9395
163502 9398
I would be most glad for your great assistance.
Many thanks.
Ogbos
[[alternative HTML version deleted]]
Li is defined as d1$a which is a vector. You should use N <- length(Li) HTH, Eric On Wed, Aug 22, 2018 at 6:02 PM, Ogbos Okike <giftedlife2014 at gmail.com> wrote:> Kind R-users, > I run a simple regression. I am interested in using the Monte Carlo to test > the slope parameter. > Here is what I have done: > d1<-read.table("Lightcor",col.names=c("a")) > d2<-read.table("CRcor",col.names=c("a")) > Li<-d1$a > CR<-d2$a > > fit<-lm(Li~CR) > a<-summary(fit) > a gives the slope as 88.15 > > Problem: I now what to repeat the samples to access this coefficient. > Following one of the related examples I got online, I did (tried to > modify): > > N <- nrow(Li) # returns the number of observations in the dataset > C <- 50 # desired number of subsamples > S <- 38 # desired sample size > > sumb2 <- 0 > for (i in 1:C){ # a loop over the number of subsamples > set.seed(3*i) # a different seed for each subsample > subsample <- Li[sample(1:N, size=S, replace=TRUE), ] > mod <- lm(Li~CR,data=subsample) > #sum b2 for all subsamples: > sumb2 <- sumb2 + coef(mod)[[2]] > } > print(sumb2/C, digits = 3) > > But when I run the script, I had error message: > Error in 1:N : argument of length 0 > My data: > Li CR > 74281 8449 > 92473 8148 > 62310 8520 > 71219 8264 > 33469 8389 > 75768 7499 > 61636 7821 > 103829 8468 > 87336 8568 > 129443 8190 > 97682 8539 > 106918 8502 > 97171 8578 > 48012 8181 > 93086 8631 > 92374 8562 > 113010 8404 > 66956 8592 > 133037 8632 > 108849 8644 > 81544 8442 > 105072 8615 > 143437 7724 > 153294 7829 > 123735 8682 > 154738 8756 > 100760 8839 > 108034 8839 > 81826 8858 > 116901 8847 > 80780 8869 > 122684 8736 > 141716 9087 > 144315 9166 > 162078 9147 > 163184 9267 > 150688 9275 > 200848 9259 > 221570 8943 > 192424 8564 > 173024 9282 > 197326 9318 > 209344 9293 > 220201 9242 > 212626 9324 > 218115 9319 > 170001 9314 > 187490 9346 > 172440 9350 > 180330 9349 > 200807 9355 > 234994 9350 > 139053 9284 > 150048 9361 > 203650 9346 > 233331 9369 > 198790 9340 > 164060 9382 > 198000 9401 > 201707 9355 > 179257 9369 > 188736 9298 > 243392 9393 > 246040 9374 > 269058 9364 > 201657 9370 > 187942 9354 > 228514 9305 > 234000 9392 > 224431 9395 > 163502 9398 > I would be most glad for your great assistance. > Many thanks. > Ogbos > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/ > posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
Hello Eric,
Thanks for this.
I tried it. It went but another problem prevents the code from running.
source("script.R")
Error in Li[sample(1:N, size = S, replace = TRUE), ] :
incorrect number of dimensions
The error is coming from the line:
subsample <- Li[sample(1:N, size=S, replace=TRUE), ]
I tried to replace Li with N but it didn't go. I also tried replacing it
with length(Li). The same error remains.
Thank so much for looking at this again.
Ogbos
On Wed, Aug 22, 2018 at 5:06 PM Eric Berger <ericjberger at gmail.com>
wrote:
> Li is defined as d1$a which is a vector. You should use
>
> N <- length(Li)
>
> HTH,
> Eric
>
>
> On Wed, Aug 22, 2018 at 6:02 PM, Ogbos Okike <giftedlife2014 at
gmail.com>
> wrote:
>
>> Kind R-users,
>> I run a simple regression. I am interested in using the Monte Carlo to
>> test
>> the slope parameter.
>> Here is what I have done:
>> d1<-read.table("Lightcor",col.names=c("a"))
>> d2<-read.table("CRcor",col.names=c("a"))
>> Li<-d1$a
>> CR<-d2$a
>>
>> fit<-lm(Li~CR)
>> a<-summary(fit)
>> a gives the slope as 88.15
>>
>> Problem: I now what to repeat the samples to access this coefficient.
>> Following one of the related examples I got online, I did (tried to
>> modify):
>>
>> N <- nrow(Li) # returns the number of observations in the dataset
>> C <- 50 # desired number of subsamples
>> S <- 38 # desired sample size
>>
>> sumb2 <- 0
>> for (i in 1:C){ # a loop over the number of subsamples
>> set.seed(3*i) # a different seed for each subsample
>> subsample <- Li[sample(1:N, size=S, replace=TRUE), ]
>> mod <- lm(Li~CR,data=subsample)
>> #sum b2 for all subsamples:
>> sumb2 <- sumb2 + coef(mod)[[2]]
>> }
>> print(sumb2/C, digits = 3)
>>
>> But when I run the script, I had error message:
>> Error in 1:N : argument of length 0
>> My data:
>> Li CR
>> 74281 8449
>> 92473 8148
>> 62310 8520
>> 71219 8264
>> 33469 8389
>> 75768 7499
>> 61636 7821
>> 103829 8468
>> 87336 8568
>> 129443 8190
>> 97682 8539
>> 106918 8502
>> 97171 8578
>> 48012 8181
>> 93086 8631
>> 92374 8562
>> 113010 8404
>> 66956 8592
>> 133037 8632
>> 108849 8644
>> 81544 8442
>> 105072 8615
>> 143437 7724
>> 153294 7829
>> 123735 8682
>> 154738 8756
>> 100760 8839
>> 108034 8839
>> 81826 8858
>> 116901 8847
>> 80780 8869
>> 122684 8736
>> 141716 9087
>> 144315 9166
>> 162078 9147
>> 163184 9267
>> 150688 9275
>> 200848 9259
>> 221570 8943
>> 192424 8564
>> 173024 9282
>> 197326 9318
>> 209344 9293
>> 220201 9242
>> 212626 9324
>> 218115 9319
>> 170001 9314
>> 187490 9346
>> 172440 9350
>> 180330 9349
>> 200807 9355
>> 234994 9350
>> 139053 9284
>> 150048 9361
>> 203650 9346
>> 233331 9369
>> 198790 9340
>> 164060 9382
>> 198000 9401
>> 201707 9355
>> 179257 9369
>> 188736 9298
>> 243392 9393
>> 246040 9374
>> 269058 9364
>> 201657 9370
>> 187942 9354
>> 228514 9305
>> 234000 9392
>> 224431 9395
>> 163502 9398
>> I would be most glad for your great assistance.
>> Many thanks.
>> Ogbos
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>
[[alternative HTML version deleted]]