E-Book, Englisch, 420 Seiten
Nguyen / Adams / Miller Building Statistical Models in Python
1. Auflage 2024
ISBN: 978-1-80461-215-6
Verlag: De Gruyter
Format: EPUB
Kopierschutz: 0 - No protection
Develop useful models for regression, classification, time series, and survival analysis
E-Book, Englisch, 420 Seiten
ISBN: 978-1-80461-215-6
Verlag: De Gruyter
Format: EPUB
Kopierschutz: 0 - No protection
The ability to proficiently perform statistical modeling is a fundamental skill for data scientists and essential for businesses reliant on data insights. Building Statistical Models with Python is a comprehensive guide that will empower you to leverage mathematical and statistical principles in data assessment, understanding, and inference generation.
This book not only equips you with skills to navigate the complexities of statistical modeling, but also provides practical guidance for immediate implementation through illustrative examples. Through emphasis on application and code examples, you'll understand the concepts while gaining hands-on experience. With the help of Python and its essential libraries, you'll explore key statistical models, including hypothesis testing, regression, time series analysis, classification, and more.
By the end of this book, you'll gain fluency in statistical modeling while harnessing the full potential of Python's rich ecosystem for data analysis.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
Table of Contents - Sampling and Generalization
- Distributions of Data
- Hypothesis Testing
- Parametric Tests
- Non-Parametric Tests
- Linear Regression
- More Discussion on Model Selection & Regularization
- Logistic Regression
- Discriminant Analysis
- Introduction to Time Series
- ARIMA Models
- Multivariate Time Series Methods
- Time to Event variables - An introduction
- Models with Survival Responses
1
Sampling and Generalization
In this chapter, we will describe the concept of populations and sampling from populations, including some common strategies for sampling. The discussion of sampling will lead to a section that will describe generalization. Generalization will be discussed as it relates to using samples to make conclusions about their respective populations. When modeling for statistical inference, it is necessary to ensure that samples can be generalized to populations. We will provide an in-depth overview of this bridge through the subjects in this chapter.
We will cover the following main topics:
- Software and environment setup
- Population versus sample
- Population inference from samples
- Sampling strategies – random, systematic, and stratified
Software and environment setup
Python is one of the most popular programming languages for data science and machine learning thanks to the large open source community that has driven the development of these libraries. Python’s ease of use and flexible nature made it a prime candidate in the data science world, where experimentation and iteration are key features of the development cycle. While there are new languages in development for data science applications, such as Julia, Python currently remains the key language for data science due to its wide breadth of open source projects, supporting applications from statistical modeling to deep learning. We have chosen to use Python in this book due to its positioning as an important language for data science and its demand in the job market.
Python is available for all major operating systems: Microsoft Windows, macOS, and Linux. Additionally, the installer and documentation can be found at the official website: https://www.python.org/.
This book is written for Python version 3.8 (or higher). It is recommended that you use whatever recent version of Python that is available. It is not likely that the code found in this book will be compatible with Python 2.7, and most active libraries have already started dropping support for Python 2.7 since official support ended in 2020.
The libraries used in this book can be installed with the Python package manager, pip, which is part of the standard Python library in contemporary versions of Python. More information about pip can be found here: https://docs.python.org/3/installing/index.html. After pip is installed, packages can be installed using pip on the command line. Here is basic usage at a glance:
Install a new package using the latest version:
pip install SomePackageInstall the package with a specific version, version 2.1 in this example:
pip install SomePackage==2.1A package that is already installed can be upgraded with the --upgrade flag:
pip install SomePackage –upgradeIn general, it is recommended to use Python virtual environments between projects and to keep project dependencies separate from system directories. Python provides a virtual environment utility, venv, which, like pip, is part of the standard library in contemporary versions of Python. Virtual environments allow you to create individual binaries of Python, where each binary of Python has its own set of installed dependencies. Using virtual environments can prevent package version issues and conflict when working on multiple Python projects. Details on setting up and using virtual environments can be found here: https://docs.python.org/3/library/venv.html.
While we recommend the use of Python and Python’s virtual environments for environment setups, a highly recommended alternative is Anaconda. Anaconda is a free (enterprise-ready) analytics-focused distribution of Python by Anaconda Inc. (previously Continuum Analytics). Anaconda distributions come with many of the core data science packages, common IDEs (such as Jupyter and Visual Studio Code), and a graphical user interface for managing environments. Anaconda can be installed using the installer found at the Anaconda website here: https://www.anaconda.com/products/distribution.
Anaconda comes with its own package manager, conda, which can be used to install new packages similarly to pip.
Install a new package using the latest version:
conda install SomePackageUpgrade a package that is already installed:
conda upgrade SomePackageThroughout this book, we will make use of several core libraries in the Python data science ecosystem, such as NumPy for array manipulations, pandas for higher-level data manipulations, and matplotlib for data visualization. The package versions used for this book are contained in the following list. Please ensure that the versions installed in your environment are equal to or greater than the versions listed. This will help ensure that the code examples run correctly:
- statsmodels 0.13.2
- Matplotlib 3.5.2
- NumPy 1.23.0
- SciPy 1.8.1
- scikit-learn 1.1.1
- pandas 1.4.3
The packages used for the code in this book are shown here in . The __version__ method can be used to print the package version in code.
Figure 1.1 – Package versions used in this book
Having set up the technical environment for the book, let’s get into the statistics. In the next sections, we will discuss the concepts of population and sampling. We will demonstrate sampling strategies with code implementations.
Population versus sample
In general, the goal of statistical modeling is to answer a question about a group by making an inference about that group. The group we are making an inference on could be machines in a production factory, people voting in an election, or plants on different plots of land. The entire group, every individual item or entity, is referred to as the population. In most cases, the population of interest is so large that it is not practical or even possible to collect data on every entity in the population. For instance, using the voting example, it would probably not be possible to poll every person that voted in an election. Even if it was possible to reach all the voters for the election of interest, many voters may not consent to polling, which would prevent collection on the entire population. An additional consideration would be the expense of polling such a large group. These factors make it practically impossible to collect population statistics in our example of vote polling. These types of prohibitive factors exist in many cases where we may want to assess a population-level attribute. Fortunately, we do not need to collect data on the entire population of interest. Inferences about a population can be made using a subset of the population. This subset of the population is called a sample. This is the main idea of statistical modeling. A model will be created using a sample and inferences will be made about the population.
In order to make valid inferences about the population of interest using a sample, the sample must be of the population of interest, meaning that the sample should contain the variation found in the population. For example, if we were interested in making an inference about plants in a field, it is unlikely that samples from one corner of the field would be sufficient for inferences about the larger population. There would likely be variations in plant characteristics over the entire field. We could think of various reasons why there might be variation. For this example, we will consider some examples from .
Figure 1.2 – Field of plants
The figure shows that Sample A is near a forest. This sample area may be affected by the presence of the forest; for example, some of the plants in that sample may receive less sunlight than plants in the other sample. Sample B is shown to be in between the main irrigation lines. It’s conceivable that this sample receives more water on average than the other two samples, which may have an effect on the plants in this sample. The final Sample C is near a road. This sample may see other effects that are not seen in Sample A or B.
If samples were only taken from one of those...




