Dear all,
I have wrote a code for a linear regression. I want to
write a loop for so, that I can get estimate for pavlues for six predictors.
But I am getting for estmate for only last one. How can I get pvalues for
all my predictors in a loop??
Anticipating your help
Thanks
Ales
> mat<-matrix(rnorm(36),nrow=6)
> mat
[,1] [,2] [,3] [,4]
[,5] [,6]
[1,] 1.10536338 -0.7613770 -1.7100569 -1.8762241 -0.36579280 0.6465219
[2,] -1.34836804 -0.2174270 -0.1153477 -0.1727683 -1.88406206 1.7484955
[3,] 0.96814418 -2.1483727 0.5839668 -1.2361659 0.04592844 1.9937995
[4,] 0.01960219 -1.2339691 0.8290761 0.1002795 -0.15952881 0.3969251
[5,] 1.62343073 1.3741222 -1.2045854 0.4180127 -0.09898615 1.3575119
[6,] -0.95260509 -0.1522824 -1.4257526 1.0057412 -1.20068336
-0.4306761> res<-rnorm(6)
> res
[1] 0.2045252 -0.9824761 0.7727004 0.6439993 1.8005737
1.0167214>
> pval<-NULL
>
> for(i in c(1:6))
+ {
+ reg<-lm(res~mat[,i])
+ reg
+ pval[i]<-reg$p.value
+ }> pval
NULL> reg
Call:
lm(formula = res ~ mat[, i])
Coefficients:
(Intercept) mat[, i]
0.8195 -0.2557
[[alternative HTML version deleted]]
Have you looked at results of str on a regression object? I would not think that there would be a single p.value associated with such a beast, but that there might be if you examined individual coefficients. ? coefficients ?coef -- David Winsemius On Nov 27, 2008, at 4:03 AM, ales grill wrote:> Dear all, > I have wrote a code for a linear regression. I want to > write a loop for so, that I can get estimate for pavlues for six > predictors. > But I am getting for estmate for only last one. How can I get > pvalues for > all my predictors in a loop?? > > Anticipating your help > Thanks > Ales > > > > >> mat<-matrix(rnorm(36),nrow=6) >> mat > [,1] [,2] [,3] [,4] > [,5] [,6] > [1,] 1.10536338 -0.7613770 -1.7100569 -1.8762241 -0.36579280 > 0.6465219 > [2,] -1.34836804 -0.2174270 -0.1153477 -0.1727683 -1.88406206 > 1.7484955 > [3,] 0.96814418 -2.1483727 0.5839668 -1.2361659 0.04592844 > 1.9937995 > [4,] 0.01960219 -1.2339691 0.8290761 0.1002795 -0.15952881 > 0.3969251 > [5,] 1.62343073 1.3741222 -1.2045854 0.4180127 -0.09898615 > 1.3575119 > [6,] -0.95260509 -0.1522824 -1.4257526 1.0057412 -1.20068336 > -0.4306761 >> res<-rnorm(6) >> res > [1] 0.2045252 -0.9824761 0.7727004 0.6439993 1.8005737 1.0167214 >> >> pval<-NULL >> >> for(i in c(1:6)) > + { > + reg<-lm(res~mat[,i]) > + reg > + pval[i]<-reg$p.value > + } >> pval > NULL >> reg > > Call: > lm(formula = res ~ mat[, i]) > Coefficients: > (Intercept) mat[, i] > 0.8195 -0.2557 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > 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.
Dear ales,
Try this:
# Data
# set.seed(123)
mat=matrix(rnorm(36),ncol=6)
colnames(mat)=paste('x',1:6,sep="")
res=rnorm(6)
# All info for coefficients. First 4 columns # correspond to the intercept
and the next for to the slope
t(apply(mat,2,function(x){
sm=summary(lm(res~x))$coeff
res=matrix(sm,ncol=prod(dim(sm)))
names(res)=rep(colnames(sm),nrow(sm))
res
}
)
)
Estimate Std. Error t value Pr(>|t|) Estimate Std. Error t value
Pr(>|t|)
x1 -0.3740663 0.3416852 0.2586267 0.1991565 -1.4463559 1.7156617 0.2216156
0.16136742
x2 -0.3972439 -0.5951867 0.2622604 0.3475569 -1.5146930 -1.7124872 0.2044207
0.16196830
x3 -0.1486117 -0.4973452 0.2063296 0.1890952 -0.7202638 -2.6301317 0.5112057
0.05817818
x4 -0.2408166 0.2314570 0.3159543 0.3260189 -0.7621881 0.7099497 0.4884137
0.51693194
x5 -0.4113849 0.4442002 0.1950218 0.1539688 -2.1094303 2.8850004 0.1025563
0.04478734
x6 -0.2652903 0.1900581 0.3264551 0.4945158 -0.8126393 0.3843318 0.4620218
0.72029059
HTH,
Jorge
On Thu, Nov 27, 2008 at 4:03 AM, ales grill <alesgrill@gmail.com> wrote:
> Dear all,
> I have wrote a code for a linear regression. I want to
> write a loop for so, that I can get estimate for pavlues for six
> predictors.
> But I am getting for estmate for only last one. How can I get pvalues for
> all my predictors in a loop??
>
> Anticipating your help
> Thanks
> Ales
>
>
>
>
> > mat<-matrix(rnorm(36),nrow=6)
> > mat
> [,1] [,2] [,3] [,4]
> [,5] [,6]
> [1,] 1.10536338 -0.7613770 -1.7100569 -1.8762241 -0.36579280 0.6465219
> [2,] -1.34836804 -0.2174270 -0.1153477 -0.1727683 -1.88406206 1.7484955
> [3,] 0.96814418 -2.1483727 0.5839668 -1.2361659 0.04592844 1.9937995
> [4,] 0.01960219 -1.2339691 0.8290761 0.1002795 -0.15952881 0.3969251
> [5,] 1.62343073 1.3741222 -1.2045854 0.4180127 -0.09898615 1.3575119
> [6,] -0.95260509 -0.1522824 -1.4257526 1.0057412 -1.20068336 -0.4306761
> > res<-rnorm(6)
> > res
> [1] 0.2045252 -0.9824761 0.7727004 0.6439993 1.8005737 1.0167214
> >
> > pval<-NULL
> >
> > for(i in c(1:6))
> + {
> + reg<-lm(res~mat[,i])
> + reg
> + pval[i]<-reg$p.value
> + }
> > pval
> NULL
> > reg
>
> Call:
> lm(formula = res ~ mat[, i])
> Coefficients:
> (Intercept) mat[, i]
> 0.8195 -0.2557
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@r-project.org mailing list
> 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]]