Skip to main content

Predict how old someone is from their name and gender, using the baby name data from the US Social Security Administration.

Project description

# AgeFromName 0.0.1
A tool for predicting someone's age or generation given their name and assigned sex at birth,
assuming they were born in the US.

Feel free to use the Gitter community [gitter.im/agefromname](https://gitter.im/agefromname/Lobby) for help or to discuss the project.

## Installation

`$ pip install agefromname`

## Overview

This more or less apes the approach of FiveThirtyEight's ["How to Tell if Someone's Age
When All you Know Is Her Name"](https://fivethirtyeight.com/features/how-to-tell-someones-age-when-all-you-know-is-her-name/) article.

It includes data collected scraped from the Social Security
Administration's [Life Tables for the United States Social Security Area 1900-2100](https://www.ssa.gov/oact/NOTES/as120/LifeTables_Body.html#wp1168591)
and their [baby names data](http://www.ssa.gov/oact/babynames/names.zip). Code is included
to re-scrape and refresh this data in `regenerate_data.py`. It includes data as far back as
1981.

To use, first initialize the finder

```pydocstring
>>> from agefromname import AgeFromName
>>> age_from_name = AgeFromName()
```

Now you can use this to get the maximum likelihood estimate of someone's age, give their first name and
gender. Note that their gender should be a single letter, 'm' or 'f' (case-insensitive), and that the
first name is case-insensitive as well.

```pydocstring
>>> age_from_name.get_mle('jAsOn', 'm')
1977
>>> age_from_name.get_mle('Jason', 'M')
1977
```

You can also include find the MLE after as of a particular year. Note that if omitted, the current
year is used.

```pydocstring
>>> age_from_name.get_mle('john', 'm', 1980)
1947
>>> age_from_name.get_mle('john', 'm', 2000)
1964
```

Getting estimated counts of living people with a giving name and gender at a particular date is easy,
and given in a Pandas Series.
```pydocstring
>>> age_from_name.get_estimated_counts('john', 'm', 1960)
year_of_birth
1881 4613.792420
1882 5028.397099
1883 4679.560929
...
```

We can see corresponding probability distribution using

```pydocstring
>>> age_from_name.get_estimated_distribution('mary', 'f', 1910)
year_of_birth
1881 0.016531
1882 0.019468
1883 0.019143
...
```

Finally, we can see similar information for generations, as well, using the GenerationFromName class.
```pydocstring
>>> generation_from_name.get_mle('barack', 'm')
'Generation Z'
>>> generation_from_name.get_mle('ashley', 'f')
'Millenials'
>>> generation_from_name.get_mle('monica', 'f')
'Generation X'
>>> generation_from_name.get_mle('bill', 'm')
'Baby Boomers
>>> generation_from_name.get_mle('bill', 'f')
'Greatest Generation'
>>> generation_from_name.get_estimated_distribution('jaden', 'm')
Baby Boomers 0.000000
Generation X 0.001044
Generation Z 0.897662
Greatest Generation 0.000000
Millenials 0.101294
_other 0.000000
Name: estimate_percentage, dtype: float64
>>> generation_from_name.get_estimated_distribution('gertrude', 'f')
Baby Boomers 0.259619
Generation X 0.031956
Generation Z 0.009742
Greatest Generation 0.425293
Millenials 0.011412
_other 0.261979
>>> generation_from_name.get_estimated_counts('ashley', 'f')
Baby Boomers 702.481287
Generation X 29274.206090
Generation Z 141195.016621
Greatest Generation 34.998913
Millenials 652914.233604
_other 0.102625
Name: estimated_count, dtype: float64
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agefromname-0.0.1.tar.gz (8.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

agefromname-0.0.1-py3-none-any.whl (8.0 MB view details)

Uploaded Python 3

agefromname-0.0.1-py2-none-any.whl (8.0 MB view details)

Uploaded Python 2

File details

Details for the file agefromname-0.0.1.tar.gz.

File metadata

  • Download URL: agefromname-0.0.1.tar.gz
  • Upload date:
  • Size: 8.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for agefromname-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3e8d3b3a7d2bf0f9ad973d57187ae5d44b1334fe474c6a520a565756346c5948
MD5 2351ab9a1bebd1da2ed7cfe6998dffd0
BLAKE2b-256 9d1baf4dab7e5a54f1c0894f246ee95f22251131c9875aad44c92eed3f5749ca

See more details on using hashes here.

File details

Details for the file agefromname-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for agefromname-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d047b6c1c2e790f241d84df747f57e7e2d88b20b18475385680d98e90b06b3a5
MD5 b5015a74567ae5a502703cf62735b674
BLAKE2b-256 df87ca486bb96754332b6e003fa2385b2f0bf14ec2334e743d7f3d4de8b879f3

See more details on using hashes here.

File details

Details for the file agefromname-0.0.1-py2-none-any.whl.

File metadata

File hashes

Hashes for agefromname-0.0.1-py2-none-any.whl
Algorithm Hash digest
SHA256 5c6976709ab62c013adc8da717f79e223b2f948331b791b75a0ca6026312bf08
MD5 5d4b869cd91143bc6770d37413df5e8b
BLAKE2b-256 f26ffedfd36432dea4f77e71a2bda394de091d8fc3dba7e4d5dd1d5032798184

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page