[R] Help with regression

David Winsemius dwinsemius at comcast.net
Thu Sep 4 23:49:23 CEST 2014


On Sep 4, 2014, at 8:40 AM, Basilius Sapientia wrote:

> I have this code:
> Vm <- c(6.2208, 4.9736, 4.1423, 3.1031, 2.4795, 1.6483, 1.2328, 0.98357,
> 0.81746, 0.60998); #Molvolume
> p <- c(0.4, 0.5, 0.6, 0.8, 1, 1.5, 2, 2.5, 3, 4)*1000; #Pressure
> Rydb <- 8.3144621; #Constant
> Tempi <- 300; #Temperature in Kelvin
> 
> Vmi <- Vm^(-1); #To get Vm^(-1)
> Zi <- (p*Vm)/(Rydb*Tempi) #To get Z
> 
> #Plot
> dframe <- data.frame(Vmi, Zi)
> plot(dframe, pch=19, col='red', main='Thermodynamic properties of Argon',
> xlab='1/Vm', ylab='Z')
> 
> #Fit for B
> fitb <-lm(Zi ~ Vmi);
> fitb$coefficients[1];
> fitb$coefficients[2];
> summary(fitb)

The appropriate approach to regression on polynomials is to use poly(.)

> fitb <-lm(Zi ~ poly( Vmi, 2) );
> fitb

Call:
lm(formula = Zi ~ poly(Vmi, 2))

Coefficients:
  (Intercept)  poly(Vmi, 2)1  poly(Vmi, 2)2  
    0.9907137     -0.0198321      0.0006682  

> summary(fitb)

Call:
lm(formula = Zi ~ poly(Vmi, 2))

Residuals:
       Min         1Q     Median         3Q        Max 
-2.622e-05 -7.785e-06  3.268e-06  1.047e-05  1.557e-05 

Coefficients:
                Estimate Std. Error   t value Pr(>|t|)    
(Intercept)    9.907e-01  4.884e-06 202853.74  < 2e-16 ***
poly(Vmi, 2)1 -1.983e-02  1.544e-05  -1284.12  < 2e-16 ***
poly(Vmi, 2)2  6.682e-04  1.544e-05     43.27  9.2e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.544e-05 on 7 degrees of freedom
Multiple R-squared:      1,	Adjusted R-squared:      1 
F-statistic: 8.254e+05 on 2 and 7 DF,  p-value: < 2.2e-16

The second order term has been constructed to not be highly correlated with the linear term.

> plot( Zi, predict(fitb) )

And now that you "know" that both terms are significant, construct that polynomial with:

> fitb <-lm(Zi ~  Vmi+I(Vmi^2) );
> fitb

Call:
lm(formula = Zi ~ Vmi + I(Vmi^2))

Coefficients:
(Intercept)          Vmi     I(Vmi^2)  
   0.999964    -0.015025     0.001063  

> 
> I want to make a regression on the data with this generel formula:
> y=1+Bx+Cx^2. I need to figure out what B and C in this formula is. Please
> help me! I want to become better to R.

Please read the Posting Guide. It's really very easy to post in plain-text from gmail.
> 
> 	[[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.

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list