methods to extract the information. The following code, for example, extracts the
p-value from the t-test on the beaver data:
> t.test(temp ~ activ, data=beaver2)$p.value
[1] 7.269112e-31
The extraction of information from the 
htest
object also works with the
results of the other 
.test
functions in this chapter and many more. You can
check what kind of object a test returns by looking at the Help page for the
test you want to use.
Working with Models
The tests we describe in the previous sections are all basic statistical tests.
However, these days, much of statistics involves working with complex models.
Base R already contains an extensive set of modeling tools, allowing you to do
anything from simple linear models and analysis of variance to mixed models and
time-series analysis. The nice thing about modeling functions in R is that they often
work in a similar way.
Because this isn’t a statistics book, we can’t cover the details about
assumption testing and model evaluation. If you aren’t familiar with these
concepts or the applied models, be sure to consult a decent source of
information, or you’ll run the risk of basing important decisions on inadequate
models. The book Applied Linear Statistical Models, 5th Edition, by Michael
Kutner et al (McGraw-Hill/Irwin), is very extensive but gives a good and
thorough theoretical introduction on assumption testing and model evaluation.
In this section, we cover some basic models, and show you how to extract
useful information from the resulting model objects.
Analyzing variances
An analysis of variance (ANOVA) is a very common technique used to compare
the means between different groups. To illustrate this, take a look at the dataset
InsectSpray
:
Pdf searchable text converter - search text inside PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
search text in pdf image; searching pdf files for text
Pdf searchable text converter - VB.NET PDF Text Search Library: search text inside PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn How to Search Text in PDF Document and Obtain Text Content and Location Information in VB.NET application
find text in pdf image; how to select text in pdf reader
> str(InsectSprays)
‘data.frame’: 72 obs. of  2 variables:
$ count: num  10 7 20 14 14 12 10 23 17 20 ...
$ spray: Factor w/ 6 levels “A”,”B”,”C”,”D”,..: 1 1 1 1 1 1 1 1 1 1 ...
This dataset contains the results of an agricultural experiment. Six insecticides
were tested on 12 fields each, and the researchers counted the number of pesky
bugs that remained on each field. Now the farmers need to know if the insecticides
make any difference, and if so, which one they best use. You answer this question
by using the 
aov()
function to perform an ANOVA.
Building the model
For this simple example, building the model is a piece of cake. You essentially
want to model the means for the variable 
count
as a function of the variable 
spray
.
You translate that to R like this:
> AOVModel <- aov(count ~ spray, data=InsectSprays)
You pass two arguments to the 
aov()
function in this line of code:
The formula 
count ~ spray
, which reads as “count as a function of spray”
The argument 
data
, where you specify the data frame in which the variables in
the formula can be found
Every modeling function returns a model object with a lot of information
about the fitted model. Always put this model object in a variable. This way
you don’t have to refit the model when you need to perform extra calculations.
Looking at the object
As with every object, you can look at a model object just by typing its name in
the console. If you do that for the object 
Model
that you created in the preceding
section, you see the following output:
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
document to editable & searchable text file. Different from other C# .NET PDF to text conversion controls, RasterEdge C# PDF to text converter control toolkit
how to select text in pdf image; pdf find and replace text
Online Convert PDF to Text file. Best free online PDF txt
document to editable & searchable text file. Different from other C# .NET PDF to text conversion controls, RasterEdge C# PDF to text converter control toolkit
how to select text in a pdf; search multiple pdf files for text
> AOVModel
Call:
aov(formula = count ~ spray, data=InsectSprays)
Terms:
spray Residuals
Sum of Squares  2668.833  1015.167
Deg. of Freedom        5        66
Residual standard error: 3.921902
Estimated effects may be unbalanced
This doesn’t tell you that much, apart from the command (or the call) you
used to build the model and some basic information on the fitting result.
In the output, you also read that the estimated effects may be unbalanced.
This isn’t a warning as described in Chapter 10 — it’s a message that’s built in by
the author of the 
aov()
function. This one can pop up in two situations:
You don’t have the same number of cases in every group.
You didn’t set orthogonal contrasts.
In this case, it’s the second reason. You can continue with this model as we do
now (that’s also how those models are fitted in SPSS and SAS by default) or you
can read the nearby sidebar, “Setting the contrasts,” and use contrasts as the
statistical experts who wrote R think you should.
Evaluating the differences
To check the model, you can use the 
summary()
function on the model object
like this:
> summary(AOVModel)
Df Sum Sq Mean Sq F value Pr(>F)
spray        5   2669   533.8    34.7 <2e-16 ***
Residuals   66   1015    15.4
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ‘ 1
R prints you the analysis of variance table that, in essence, tells you whether
the different terms can explain a significant portion of the variance in your data.
This table tells you only something about the term, but nothing about the
differences between the different sprays. For that, you need to dig a bit deeper into
the model.
VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net
Text in any PDF fields can be copied and pasted to .txt files by keeping VB.NET control for batch converting PDF to editable & searchable text formats.
how to make pdf text searchable; find text in pdf files
VB.NET Image: Robust OCR Recognition SDK for VB.NET, .NET Image
for VB.NET provides users fast and accurate image recognition function, which converts scanned images into searchable text formats, such as PDF, PDF/A, WORD
how to select all text in pdf file; how to search text in pdf document
Checking the model tables
With the 
model.tables()
function, you can take a look at the results for the
individual levels of the factors. The function allows you to create two different
tables; either you look at the estimated mean result for each group, or you look at
the difference with the overall mean.
To know how much effect every spray had, you use the following code:
> model.tables(AOVModel, type=’effects’)
Tables of effects
spray
spray
A      B      C      D      E      F
5.000  5.833 -7.417 -4.583 -6.000  7.167
Here you see that, for example, spray E resulted, on average, in six bugs
fewer than the average over all fields. On the other hand, on fields where spray A
was used, the farmers found, on average, five bugs more compared to the overall
mean.
To get the modeled means per group and the overall mean, just use the
argument value 
type=’means’
instead of 
type=’effects’
.
Setting the contrasts
Before you can use the 
aov()
function, you’d better set the contrasts you’re
going to use. Contrasts are very often forgotten about when doing ANOVA,
but they generally help with interpreting the model and increase the
accuracy of 
aov()
and the helper functions.
What are those contrasts then? Factors are translated to a set of variables,
one less than the number of levels of the factor. Say you have a factor with
three levels. R creates two variables, and each level of the factor is
represented by a combination of values. These values define how the
coefficients of the model have to be interpreted. By default, R uses
treatment contrasts, as you can see when you check the relevant option like
this:
> options(‘contrasts’)
C# Create PDF Library SDK to convert PDF from other file formats
The PDF document file created by RasterEdge C# PDF document creator library is searchable and can be fully populated with editable text and graphics
convert a scanned pdf to searchable text; how to select text in pdf and copy
C# PDF: C# Code to Draw Text and Graphics on PDF Document
Draw and write searchable text on PDF file by C# code in both Web and Windows applications. C#.NET PDF Document Drawing Application.
find and replace text in pdf; convert pdf to searchable text
$contrasts
unordered ordered
“contr.treatment” “contr.poly”
Here you see that R uses different contrasts for unordered and ordered
factors. These contrasts are actually contrast functions. They return a matrix
with the contrast values for each level of the factor. The default contrasts for
a factor with three levels look like this:
> X <- factor(c(‘A’,’B’,’C’))
> contr.treatment(X)
B C
A 0 0
B 1 0
C 0 1
The two variables 
and 
C
are called that way because the variable 
B
has a
value of 
1
if the factor level is 
B
; otherwise, it has a value of 
0
. The same
goes for 
C
. Level A is represented by two zeros and called the reference
level. In a one-factor model, the intercept is the mean of 
A
.
You can change these contrasts using the same 
options()
function, like this:
> options(contrasts=c(‘contr.um’,’contr. poly’))
The contrast function, 
contr.sum()
, gives orthogonal contrasts where you
compare every level to the overall mean. You can get more information
about these contrasts on the Help page 
?contr.sum
.
Looking at the individual differences
A farmer probably wouldn’t consider buying spray A, but what about spray D?
Although sprays E and C seem to be better, they also can be a lot more expensive.
To test whether the pairwise differences between the sprays are significant, you
use Tukey’s Honest Significant Difference (HSD) test. The 
TukeyHSD()
function
allows you to do that very easily, like this:
> Comparisons <- TukeyHSD(AOVModel)
The 
Comparisons
object now contains a list where every element is named
after one factor in the model. In the example, you have only one element, called
spray
. This element contains, for every combination of sprays, the following:
VB.NET Create PDF from Text to convert txt files to PDF in vb.net
Best VB.NET adobe text to PDF converter library for Visual Studio .NET project. Batch convert editable & searchable PDF document from TXT formats in VB.NET
text searchable pdf; select text in pdf file
C# Create PDF from Text to convert txt files to PDF in C#.net, ASP
PDF converter SDK for converting adobe PDF from TXT in Visual Studio .NET project. .NET control for batch converting text formats to editable & searchable PDF
search pdf for text; search pdf documents for text
The difference between the means.
The lower and upper level of the 95 percent confidence interval around that
mean difference.
The p-value that tells you whether this difference is significantly different from
zero. This p-value is adjusted using the method of Tukey (hence, the column
name 
p adj
).
You can extract all that information using the classical methods for extraction.
For example, you get the information about the difference between D and C like
this:
> Comparisons$spray[‘D-C’,]
diff        lwr        upr      p adj
2.8333333 -1.8660752  7.5327418  0.4920707
That difference doesn’t look impressive, if you ask Tukey.
Plotting the differences
The 
TukeyHSD
object has another nice feature: It can be plotted. Don’t bother
looking for a Help page of the plot function — all you find is one sentence: “There
is a plot method.” But it definitely works! Try it out like this:
> plot(Comparisons, las=1)
You see the output of this simple line in Figure 15-4. Each line represents the
mean difference between both groups with the according confidence interval.
Whenever the confidence interval doesn’t include zero (the vertical line), the
difference between both groups is significant.
You can use some of the graphical parameters to make the plot more
readable. Specifically, the 
las
parameter is useful here. By setting it to 
1
, you
make sure all axis labels are printed horizontally so you can actually read
them. You can find out more about graphical parameters in Chapter 16.
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
less searchable for search engines. The other is the crashing problem when user is visiting the PDF file using web browser. Our PDF to HTML converter library
pdf searchable text converter; pdf make text searchable
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Export all Word text and image content into high quality PDF without losing formatting. Easy to create searchable and scanned PDF files from Word.
search pdf files for text programmatically; how to select text on pdf
Modeling linear relations
An analysis of variance also can be written as a linear model, where you use a
factor as a predictor variable to model a response variable. In the previous section,
you predict the mean bug count by looking at the insecticide that was applied.
Of course, predictor variables also can be continuous variables. For example,
the weight of a car obviously has an influence on the mileage. But it would be nice
to have an idea about the magnitude of that influence. Essentially, you want to find
the equation that represents the trend line in Figure 15-5. You find the data you
need for checking this in the dataset 
mtcars
.
Figure 15-4: Plotting the results of Tukey’s HSD test.
Figure 15-5: Plotting a trend line through the data.
Building a linear model
The 
lm()
function allows you to specify anything from the most simple linear
model to complex interaction models. In this section, you build only a simple model
to learn how to work with model objects.
To model the mileage in function of the weight of a car, you use the 
lm()
function, like this:
> Model <- lm(mpg ~ wt, data=mtcars)
You supply two arguments:
A formula that describes the model: Here, you model the variable 
mpg
as a
function of the variable 
wt
.
A data frame that contains the variables in the formula: Here, you use the
data frame 
mtcars
.
You can specify many complex models with the formula interface when you
know your way around. The “Details” section of the Help page 
?formula
provides all the information you need in great detail.
The resulting object is a list with a very complex structure, but in most cases
you don’t need to worry about that. The model object contains a lot of information
that’s needed for the calculations of diagnostics and new predictions.
Extracting information from the model
Instead of diving into the model object itself and finding the information
somewhere in the list object, you can use some functions that help you to get the
necessary information from the model. For example, you can extract a named
vector with the coefficients from the model using the 
coef()
function, like this:
> coef.Model <- coef(Model)
> coef.Model
(Intercept)          wt
37.285126   -5.344472
These coefficients represent the intercept and the slope of the trend line in
Figure 15-5. You can use this to plot the trend line on a scatterplot of the data. You
do this in two steps:
1. You plot the scatterplot with the data.
You use the 
plot()
function for that. You discover more about this function in
Chapter 16.
2. You use the 
abline()
function to draw the trend line based on the
coefficients.
The following code gives you the plot in Figure 15-5:
> plot(mpg ~ wt, data = mtcars)
> abline(a=coef.Model[1], b=coef.Model[2])
The 
abline()
argument 
a
represents the intercept, and 
b
represents the slope
of the trend line you want to plot. You plot a vertical line by setting the argument 
v
to the intercept with the x-axis instead. Horizontal lines are plotted by setting the
argument 
v
to the intercept with the y-axis.
In Table 15-1, you find an overview of functions to extract information from
the model object itself. These functions work with different model objects,
including those built by 
aov()
and 
lm()
.
Many package authors also provide the same functions for the models built
by the functions in their package. So, you can always try to use these
extraction functions in combination with other model functions as well.
Table 15-1 Extracting Information from Model
Objects
Function
What It Does
coef()
Returns a vector with the coefficients from the model
confint()
Returns a matrix with the upper and lower limit of the confidence interval for each coefficient
of the model
fitted()
Returns a vector with the fitted values for every observation
residuals()
Returns a vector with the residuals for every observation
vcov()
Returns the variance-covariance matrix for the coefficient
Evaluating linear models
Naturally, R provides a whole set of different tests and measures to not only
look at the model assumptions but also evaluate how well your model fits your
data. Again, the overview presented here is far from complete, but it gives you an
idea of what’s possible and a starting point to look deeper into the issue.
Summarizing the model
The 
summary()
function immediately returns you the F test for models
constructed with 
aov()
. For 
lm()
models, this is slightly different. Take a look at
the output:
> Model.summary <- summary(Model)
> Model.summary
Call:
lm(formula = mpg ~ wt, data = mtcars)
Residuals:
Min      1Q  Median      3Q     Max
-4.5432 -2.3647 -0.1252  1.4096  6.8727
Coefficients:
Estimate Std. Error t value Pr(>|t|)
Documents you may be interested
Documents you may be interested