Skip to content

Pairfam Family Formation Trajectories Dataset ​

This dataset contains German family-formation trajectories for 1,027 individuals (month-level extract). It is derived from the family-history teaching data accompanying Sequence Analysis (Raab & Struffolino, 2022). The companion site documents that those teaching examples come from the German Family Panel (pairfam), Release 10.0, shared with permission for instructional use.

We provide two versions of the dataset:

  • Year-level data: 22 yearly observations with state abbreviations
  • Month-level data: 264 monthly observations (ages 18 to 40) with numeric state codes

Important Notes

  • The IDs are different between year-level and month-level data and cannot be directly linked.
  • State encoding differs: Year-level uses text abbreviations (e.g., "S", "LAT"), while month-level uses numeric codes (1–9).
  • The underlying state definitions remain the same across both versions.
  • The month-level family and activity files share the same 1,027 respondent IDs and can be aligned for multidomain analysis; year-level IDs cannot.

Data origin and processing ​

  • Source: Teaching extract accompanying Raab & Struffolino (2022), based on pairfam Release 10.0 (GESIS ZA5678, DOI 10.4232/pairfam.5678.10.0.0). The companion Overview & Downloads page states that the example data come from pairfam release 10.0 and were shared with permission for the book’s teaching materials.

  • Sample size: The published companion PartnerBirthbio file has 1,866 records. The Sequenzo month-level file ships the smaller 1,027-respondent teaching extract already used in the book’s multichannel / age-18-to-40 materials (the same IDs as Activitybio / MultiChannel). Sequenzo did not re-derive that sample filter in the packaging scripts linked below.

  • Processing by book authors: Partnership and parental status were coded into nine family states (see encoding table below).

  • Our preprocessing: For this prepared extract, Sequenzo retains the original state integers and renames the 264 time columns (family1…family264 or state1…state264 → 1…264) with clean_time_columns_auto(). State integers were not recoded.

    Cleaning code: pairfam_and_little_green_book/code.

  • Verification: Against companion PartnerBirthbio state codes, 1,027 matched respondent IDs show identical state codes in all 264 monthly positions (aggregated crosstab is diagonal; agreement rate = 1.0).

  • Result: A 9-state alphabet with the green-book numeric coding.

Family states encoding ​

Numeric codes follow the Raab & Struffolino companion data (original Stata value labels). Pass labels to SequenceData in this same order.

Numeric CodeAbbreviationDescription
1SSingle, no child
2ScSingle, with child(ren)
3LATLiving apart together, no child
4LATcLAT, with child(ren)
5COHCohabiting, no child
6COHcCohabiting, with child(ren)
7MARMarried, no child
8MARc1Married, 1 child
9MARc2+Married, 2+ children

Year-level data ​

File: pairfam_family_by_year.csv

This dataset contains 1,027 individuals observed over 22 years. The states are encoded directly as text abbreviations (e.g., "S", "LAT", "COH", "MAR", "Sc", "LATc", "COHc", "MARc1", "MARc2+").

No Covariates

Unlike the month-level data, the year-level data does not include any covariates. The id column contains randomly generated identifiers created during our preprocessing and cannot be linked to other datasets or the month-level data.

ColumnDescription
idRandom teaching ID (not linkable to month-level)
1 … 22Yearly family trajectory states, encoded as abbreviations (e.g., "S", "LAT")

Month-level data ​

File: pairfam_family_by_month.csv

This dataset contains 1,027 individuals observed monthly from ages 18 to 40 (264 months). The states are encoded as numeric codes (1–9) according to the encoding table above.

Besides the state sequences, the dataset includes several covariates:

ColumnDescription
idOriginal respondent identifier from the teaching extract
weight40Survey weight
sexSex
doby_gen / dobBirth-year / date-of-birth fields from the teaching extract
ethni / migstatusEthnicity / migration-status fields
yeduc / highschoolEducation-related covariates
sat1i4, sat5, sat6Satisfaction items from the teaching extract
1 … 264Monthly family trajectory states, coded 1–9 as above

Loading the data in Sequenzo ​

python
from sequenzo import load_dataset, SequenceData

df = load_dataset("pairfam_family_by_month")

time_list = [str(i) for i in range(1, 265)]
states = list(range(1, 10))
labels = [
    "Single, no child",
    "Single, with child(ren)",
    "Living apart together, no child",
    "LAT, with child(ren)",
    "Cohabiting, no child",
    "Cohabiting, with child(ren)",
    "Married, no child",
    "Married, 1 child",
    "Married, 2+ children",
]

seq = SequenceData(
    df,
    time=time_list,
    id_col="id",
    states=states,
    labels=labels,
    weights=df["weight40"].to_numpy(),
)

Sequenzo is released under the BSD-3-Clause License; this documentation site source is licensed under MIT.