John - 5 months ago 43

R Question

I have a regression model for some time series data investigating drug utilisation. The purpose is to fit a spline to a time series and work out 95% CI etc. The model goes as follows:

`id<-ts(1:length(drug$Date))`

a1<-ts(drug$Rate)

a2<-lag(a1-1)

tg<-ts.union(a1,id,a2)

mg<-lm(a1~a2+bs(id,df=df1),data=tg)

The summary output of mg is:

`Call:`

lm(formula = a1 ~ a2 + bs(id, df = df1), data = tg)

Residuals:

Min 1Q Median 3Q Max

-0.31617 -0.11711 -0.02897 0.12330 0.40442

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 0.77443 0.09011 8.594 1.10e-11 ***

a2 0.13270 0.13593 0.976 0.33329

bs(id, df = df1)1 -0.16349 0.23431 -0.698 0.48832

bs(id, df = df1)2 0.63013 0.19362 3.254 0.00196 **

bs(id, df = df1)3 0.33859 0.14399 2.351 0.02238 *

---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

I am using to the Pr(>|t|) value of a2 to test if the data under investigation are autocorrelated.

Is it possible to extract this value of Pr(>|t|), in this model 0.33329 and store in a scalar to perform a logical test.

Alternatively, can it be worked out using another method.

Many thanks.

Answer

A `summary.lm`

object stores these values in a `matrix`

called `'coefficients'`

. So the value you are after can be accessed with:

```
a2Pval <- summary(mg)$coefficients[2, 4]
```

Or, more generally/readably, `coef(summary(mg))["a2","Pr(>|t|)"]`

. See here for why this method is preferred.