# Load the data
data(nlswork_subset)
# Examine structure
str(nlswork_subset)
# Summary statistics
summary(nlswork_subset$ln_wage)
# Panel structure
table(table(nlswork_subset$idcode)) # Distribution of obs per individual
if (FALSE) {
# Example analysis with xtvfreg
# Create race groups
nlswork_subset$race_group <- factor(nlswork_subset$race,
levels = 1:2,
labels = c("white", "black"))
# Create within and between components for tenure
nlswork_subset$m_tenure <- ave(nlswork_subset$tenure,
nlswork_subset$idcode,
FUN = function(x) mean(x, na.rm = TRUE))
nlswork_subset$d_tenure <- nlswork_subset$tenure - nlswork_subset$m_tenure
# Estimate varying effects model
result <- xtvfreg(
formula = ln_wage ~ 1,
data = subset(nlswork_subset, !is.na(ln_wage) & race %in% 1:2),
group = "race_group",
panel_id = "idcode",
mean_vars = c("m_tenure", "d_tenure", "age"),
var_vars = c("m_tenure", "age"),
verbose = TRUE
)
# View results
summary(result)
}
Run the code above in your browser using DataLab