#Introduction
Research Question: “What factors significantly predict the number of disability compensation recipients in each state, considering disability severity rating and age group?”
This analysis uses fiscal year 2025 disability compensation recipient data from the U.S. Department of Veterans Affairs public records. The dataset contains 2,652 observations across counties and states with variables including total recipient counts, percentage distribution across five disability severity categories (SCD 0-20% through SCD 100%), and three age group percentages (17-44, 45-64, 65+).
This topic was selected to understand geographic and demographic patterns in VA disability compensation distribution. Understanding these patterns can inform resource allocation, policy development, and outreach efforts to ensure equitable access to benefits for eligible veterans.
#Data Analysis
Before conducting multiple linear regression, several data preparation steps were necessary to clean and prepare the dataset for analysis. Missing values in key columns were examined and excluded from analysis using na.omit(). The original dataset contained NA values for certain categories where the VA redacted data to protect veteran privacy—a consideration of data ethics that unfortunately reduces sample size but protects individual confidentiality.
Relevant predictor variables were selected using select() to focus on severity ratings and age demographics while excluding redundant categories that would create multicollinearity. New derived variables were created using mutate() to calculate percentage distributions across disability severity categories and age groups. Finally, column names were standardized using rename() and rename_with() for easier manipulation throughout the analysis.
discomp <- read_csv("disabilitycompensation.csv")
discomp <- rename_with(discomp, ~ gsub(" ", "_", .))
discomp <- rename(discomp,
"SCD_0to20" = "SCD_rating:_0%_to_20%",
"SCD_30to40" = "SCD_rating:_30%_to_40%",
"SCD_50to60" = "SCD_rating:_50%_to_60%",
"SCD_70to90" = "SCD_rating:_70%_to_90%",
"SCD_100" = "SCD_rating:_100%",
"Total_Recipients" = "Total:_Disability_Compensation_Recipients")
discompclean <- na.omit(discomp)
# Calculate total SCD and age sums for percentage conversion
discompclean <- discompclean %>%
mutate(Total_SCD = SCD_0to20 + SCD_30to40 + SCD_50to60 + SCD_70to90 + SCD_100) %>%
mutate(Pct_SCD_0to20 = SCD_0to20 / Total_SCD * 100,
Pct_SCD_30to40 = SCD_30to40 / Total_SCD * 100,
Pct_SCD_50to60 = SCD_50to60 / Total_SCD * 100,
Pct_SCD_70to90 = SCD_70to90 / Total_SCD * 100,
Pct_SCD_100 = SCD_100 / Total_SCD * 100)
discompclean <- discompclean %>%
mutate(Total_Age = `Age:_17-44` + `Age:_45-64` + `Age:_65_or_older`,
Pct_Age_17to44 = `Age:_17-44` / Total_Age * 100,
Pct_Age_45to64 = `Age:_45-64` / Total_Age * 100,
Pct_Age_65plus = `Age:_65_or_older` / Total_Age * 100)
# Select final variables for analysis
discompanalysis <- discompclean %>%
select(State, County_Name, Total_Recipients,
Pct_SCD_0to20, Pct_SCD_30to40, Pct_SCD_50to60, Pct_SCD_70to90, Pct_SCD_100,
Pct_Age_17to44, Pct_Age_45to64, Pct_Age_65plus)
cat("Final observation count:", nrow(discompanalysis), "\n")
## Final observation count: 2652
#Statistical Analysis ##Model Selection Rationale
Multiple linear regression was chosen to examine how disability severity ratings and age demographics predict total compensation recipients across geographic units. This approach allows simultaneous evaluation of multiple continuous predictors while controlling for state-level variation through factor variables.
Initial Model Assessment: The first model specification revealed serious violations of homoscedasticity and normality assumptions. Diagnostic plots showed a clear funnel pattern with residual variance increasing dramatically from near-zero to over 80,000, and extreme outliers with standardized residuals exceeding 15 in the upper tail. These violations threatened the validity of inference procedures and standard error estimates.
Model Transformation: To address heteroscedasticity, a log-transformation was applied to the outcome variable. The final model specification is: log(Total_Recipients + 1) = 8.489 + β₁(Pct_SCD_0to20) + β₂(Pct_SCD_30to40) + β₃(Pct_SCD_50to60) + β₄(Pct_SCD_70to90) + β₅(Pct_Age_17to44) + β₆(Pct_Age_45to64) + Σ(State indicators) + ε
The “+1” adjustment prevents logarithms of zero for any jurisdictions with no recipients.
# Initial model (before transformation)
discompmodel <- lm(Total_Recipients ~ Pct_SCD_0to20 + Pct_SCD_30to40 +
Pct_SCD_50to60 + Pct_SCD_70to90 +
Pct_Age_17to44 + Pct_Age_45to64 + State,
data = discompclean)
summary(discompmodel)
##
## Call:
## lm(formula = Total_Recipients ~ Pct_SCD_0to20 + Pct_SCD_30to40 +
## Pct_SCD_50to60 + Pct_SCD_70to90 + Pct_Age_17to44 + Pct_Age_45to64 +
## State, data = discompclean)
##
## Residuals:
## Min 1Q Median 3Q Max
## -12195 -1614 -369 901 86510
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 10650.56 2712.81 3.926
## Pct_SCD_0to20 -190.30 34.87 -5.458
## Pct_SCD_30to40 -273.99 60.91 -4.498
## Pct_SCD_50to60 -335.88 59.37 -5.657
## Pct_SCD_70to90 -338.93 44.76 -7.572
## Pct_Age_17to44 253.57 17.24 14.709
## Pct_Age_45to64 173.34 26.21 6.614
## StateAlaska -605.12 1558.27 -0.388
## StateArizona 10175.76 1394.44 7.297
## StateArkansas 252.62 831.47 0.304
## StateCalifornia 7502.07 925.91 8.102
## StateColorado 1787.63 964.96 1.853
## StateConnecticut 2872.45 1750.36 1.641
## StateDelaware 5923.19 2852.16 2.077
## StateDistrict Of Columbia 1871.18 4874.66 0.384
## StateFlorida 6370.96 841.42 7.572
## StateGeorgia -818.82 718.56 -1.140
## StateHawaii 9392.14 2495.42 3.764
## StateIdaho 1240.58 1041.92 1.191
## StateIllinois 241.22 814.76 0.296
## StateIndiana 1691.56 878.03 1.927
## StateIowa 1752.67 859.35 2.040
## StateKansas -343.78 941.30 -0.365
## StateKentucky -342.84 781.10 -0.439
## StateLouisiana 94.04 873.21 0.108
## StateMaine 2061.13 1354.43 1.522
## StateMaryland 1329.31 1160.66 1.145
## StateMassachusetts 5874.39 1503.11 3.908
## StateMichigan 2339.51 828.40 2.824
## StateMinnesota 4028.20 1006.53 4.002
## StateMississippi -627.54 819.07 -0.766
## StateMissouri 1589.09 793.95 2.001
## StateMontana 287.00 1019.17 0.282
## StateNebraska 3057.93 1092.43 2.799
## StateNevada 5789.98 1584.15 3.655
## StateNew Hampshire 2467.44 1663.06 1.484
## StateNew Jersey 347.00 1256.04 0.276
## StateNew Mexico 1360.86 1132.44 1.202
## StateNew York 1906.74 892.30 2.137
## StateNorth Carolina 1247.55 774.32 1.611
## StateNorth Dakota 923.65 1245.53 0.742
## StateOhio 2080.07 845.31 2.461
## StateOklahoma 953.80 851.81 1.120
## StateOregon 3799.47 1064.68 3.569
## StateOther Foreign Countries 30362.13 4871.27 6.233
## StatePennsylvania 2118.91 871.50 2.431
## StatePuerto Rico 32507.24 4879.23 6.662
## StateRhode Island 3329.98 2257.02 1.475
## StateSouth Carolina 1729.82 926.11 1.868
## StateSouth Dakota 1406.04 1146.04 1.227
## StateTennessee 222.71 783.59 0.284
## StateTexas 1067.68 712.76 1.498
## StateUS Territories (excluding Puerto Rico) 3018.87 4867.39 0.620
## StateUtah 240.10 1208.44 0.199
## StateVermont 927.78 1480.77 0.627
## StateVirginia -262.11 742.49 -0.353
## StateWashington 4177.35 1011.39 4.130
## StateWest Virginia 801.96 909.74 0.882
## StateWisconsin 2303.81 886.89 2.598
## StateWyoming 211.07 1221.19 0.173
## Pr(>|t|)
## (Intercept) 8.86e-05 ***
## Pct_SCD_0to20 5.27e-08 ***
## Pct_SCD_30to40 7.15e-06 ***
## Pct_SCD_50to60 1.71e-08 ***
## Pct_SCD_70to90 5.07e-14 ***
## Pct_Age_17to44 < 2e-16 ***
## Pct_Age_45to64 4.53e-11 ***
## StateAlaska 0.697804
## StateArizona 3.88e-13 ***
## StateArkansas 0.761284
## StateCalifornia 8.21e-16 ***
## StateColorado 0.064062 .
## StateConnecticut 0.100907
## StateDelaware 0.037924 *
## StateDistrict Of Columbia 0.701115
## StateFlorida 5.09e-14 ***
## StateGeorgia 0.254590
## StateHawaii 0.000171 ***
## StateIdaho 0.233893
## StateIllinois 0.767205
## StateIndiana 0.054144 .
## StateIowa 0.041498 *
## StateKansas 0.714974
## StateKentucky 0.660761
## StateLouisiana 0.914248
## StateMaine 0.128189
## StateMaryland 0.252187
## StateMassachusetts 9.54e-05 ***
## StateMichigan 0.004777 **
## StateMinnesota 6.46e-05 ***
## StateMississippi 0.443650
## StateMissouri 0.045443 *
## StateMontana 0.778271
## StateNebraska 0.005161 **
## StateNevada 0.000262 ***
## StateNew Hampshire 0.138017
## StateNew Jersey 0.782367
## StateNew Mexico 0.229587
## StateNew York 0.032700 *
## StateNorth Carolina 0.107270
## StateNorth Dakota 0.458415
## StateOhio 0.013930 *
## StateOklahoma 0.262934
## StateOregon 0.000365 ***
## StateOther Foreign Countries 5.33e-10 ***
## StatePennsylvania 0.015110 *
## StatePuerto Rico 3.28e-11 ***
## StateRhode Island 0.140229
## StateSouth Carolina 0.061899 .
## StateSouth Dakota 0.219980
## StateTennessee 0.776269
## StateTexas 0.134271
## StateUS Territories (excluding Puerto Rico) 0.535164
## StateUtah 0.842526
## StateVermont 0.531006
## StateVirginia 0.724106
## StateWashington 3.74e-05 ***
## StateWest Virginia 0.378113
## StateWisconsin 0.009440 **
## StateWyoming 0.862794
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4828 on 2592 degrees of freedom
## Multiple R-squared: 0.289, Adjusted R-squared: 0.2728
## F-statistic: 17.86 on 59 and 2592 DF, p-value: < 2.2e-16
par(mfrow = c(2, 2))
plot(discompmodel)
par(mfrow = c(1, 1))
#Final Transformed Model
model_log <- lm(log(Total_Recipients + 1) ~ Pct_SCD_0to20 + Pct_SCD_30to40 +
Pct_SCD_50to60 + Pct_SCD_70to90 +
Pct_Age_17to44 + Pct_Age_45to64 + State,
data = discompclean)
summary(model_log)
##
## Call:
## lm(formula = log(Total_Recipients + 1) ~ Pct_SCD_0to20 + Pct_SCD_30to40 +
## Pct_SCD_50to60 + Pct_SCD_70to90 + Pct_Age_17to44 + Pct_Age_45to64 +
## State, data = discompclean)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.0855 -0.5825 -0.0254 0.5498 3.3571
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 8.488875 0.514521 16.499
## Pct_SCD_0to20 -0.036278 0.006613 -5.486
## Pct_SCD_30to40 -0.089669 0.011552 -7.762
## Pct_SCD_50to60 -0.082020 0.011261 -7.283
## Pct_SCD_70to90 -0.084809 0.008489 -9.990
## Pct_Age_17to44 0.087661 0.003270 26.810
## Pct_Age_45to64 0.045140 0.004971 9.081
## StateAlaska -0.837290 0.295548 -2.833
## StateArizona 1.420267 0.264474 5.370
## StateArkansas -0.302937 0.157699 -1.921
## StateCalifornia 1.051502 0.175611 5.988
## StateColorado -0.319693 0.183019 -1.747
## StateConnecticut 1.158371 0.331980 3.489
## StateDelaware 2.200850 0.540951 4.068
## StateDistrict Of Columbia 0.730824 0.924546 0.790
## StateFlorida 1.201206 0.159588 7.527
## StateGeorgia -0.525131 0.136286 -3.853
## StateHawaii 1.814934 0.473289 3.835
## StateIdaho -0.146673 0.197614 -0.742
## StateIllinois -0.408787 0.154530 -2.645
## StateIndiana 0.260153 0.166529 1.562
## StateIowa -0.267647 0.162987 -1.642
## StateKansas -0.697678 0.178530 -3.908
## StateKentucky -0.558733 0.148146 -3.772
## StateLouisiana -0.131073 0.165616 -0.791
## StateMaine 0.992405 0.256886 3.863
## StateMaryland 0.343970 0.220134 1.563
## StateMassachusetts 1.685386 0.285086 5.912
## StateMichigan 0.606346 0.157116 3.859
## StateMinnesota 0.856349 0.190903 4.486
## StateMississippi -0.600183 0.155347 -3.863
## StateMissouri 0.100727 0.150584 0.669
## StateMontana -0.583261 0.193299 -3.017
## StateNebraska 0.115164 0.207193 0.556
## StateNevada 0.401438 0.300455 1.336
## StateNew Hampshire 1.043294 0.315422 3.308
## StateNew Jersey 0.506568 0.238225 2.126
## StateNew Mexico 0.246355 0.214782 1.147
## StateNew York 0.695223 0.169236 4.108
## StateNorth Carolina 0.449789 0.146861 3.063
## StateNorth Dakota -0.593028 0.236231 -2.510
## StateOhio 0.605584 0.160324 3.777
## StateOklahoma 0.001364 0.161558 0.008
## StateOregon 1.134286 0.201932 5.617
## StateOther Foreign Countries 1.837200 0.923902 1.989
## StatePennsylvania 0.804003 0.165291 4.864
## StatePuerto Rico 3.096081 0.925411 3.346
## StateRhode Island 1.313715 0.428074 3.069
## StateSouth Carolina 0.606009 0.175650 3.450
## StateSouth Dakota -0.331986 0.217361 -1.527
## StateTennessee -0.029407 0.148618 -0.198
## StateTexas -0.322558 0.135185 -2.386
## StateUS Territories (excluding Puerto Rico) 1.214260 0.923166 1.315
## StateUtah -0.426922 0.229198 -1.863
## StateVermont 0.002632 0.280847 0.009
## StateVirginia -0.397974 0.140824 -2.826
## StateWashington 0.806741 0.191823 4.206
## StateWest Virginia -0.001185 0.172544 -0.007
## StateWisconsin 0.603052 0.168211 3.585
## StateWyoming -0.522533 0.231616 -2.256
## Pr(>|t|)
## (Intercept) < 2e-16 ***
## Pct_SCD_0to20 4.51e-08 ***
## Pct_SCD_30to40 1.19e-14 ***
## Pct_SCD_50to60 4.30e-13 ***
## Pct_SCD_70to90 < 2e-16 ***
## Pct_Age_17to44 < 2e-16 ***
## Pct_Age_45to64 < 2e-16 ***
## StateAlaska 0.004647 **
## StateArizona 8.57e-08 ***
## StateArkansas 0.054844 .
## StateCalifornia 2.42e-09 ***
## StateColorado 0.080794 .
## StateConnecticut 0.000492 ***
## StateDelaware 4.87e-05 ***
## StateDistrict Of Columbia 0.429327
## StateFlorida 7.12e-14 ***
## StateGeorgia 0.000119 ***
## StateHawaii 0.000129 ***
## StateIdaho 0.458021
## StateIllinois 0.008210 **
## StateIndiana 0.118362
## StateIowa 0.100684
## StateKansas 9.55e-05 ***
## StateKentucky 0.000166 ***
## StateLouisiana 0.428767
## StateMaine 0.000115 ***
## StateMaryland 0.118281
## StateMassachusetts 3.83e-09 ***
## StateMichigan 0.000117 ***
## StateMinnesota 7.58e-06 ***
## StateMississippi 0.000115 ***
## StateMissouri 0.503612
## StateMontana 0.002574 **
## StateNebraska 0.578377
## StateNevada 0.181634
## StateNew Hampshire 0.000954 ***
## StateNew Jersey 0.033562 *
## StateNew Mexico 0.251488
## StateNew York 4.11e-05 ***
## StateNorth Carolina 0.002216 **
## StateNorth Dakota 0.012121 *
## StateOhio 0.000162 ***
## StateOklahoma 0.993263
## StateOregon 2.15e-08 ***
## StateOther Foreign Countries 0.046859 *
## StatePennsylvania 1.22e-06 ***
## StatePuerto Rico 0.000833 ***
## StateRhode Island 0.002171 **
## StateSouth Carolina 0.000569 ***
## StateSouth Dakota 0.126797
## StateTennessee 0.843164
## StateTexas 0.017102 *
## StateUS Territories (excluding Puerto Rico) 0.188518
## StateUtah 0.062621 .
## StateVermont 0.992523
## StateVirginia 0.004749 **
## StateWashington 2.69e-05 ***
## StateWest Virginia 0.994522
## StateWisconsin 0.000343 ***
## StateWyoming 0.024151 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9157 on 2592 degrees of freedom
## Multiple R-squared: 0.4763, Adjusted R-squared: 0.4644
## F-statistic: 39.96 on 59 and 2592 DF, p-value: < 2.2e-16
par(mfrow = c(2, 2))
plot(model_log)
par(mfrow = c(1, 1))
##Assumption Verification
All five regression assumptions were evaluated following model transformation:
Assumption 1: Linearity The Residuals vs Fitted plot demonstrates substantially improved randomness after transformation. While some clustering remains at lower fitted values, the smoothing line is relatively flat without systematic curvature, supporting the linearity assumption.
Assumption 2: Independence of Observations Independence was evaluated based on study design. Given the cross-sectional nature of this dataset with independent geographic units, observations are treated as independent. Spatial autocorrelation may exist between neighboring jurisdictions but cannot be formally tested without additional spatial data structures.
Assumption 3: Homoscedasticity The Scale-Location plot shows dramatic improvement following log-transformation. The upward-trending pattern from the original model has been largely eliminated, with more consistent spread across fitted values. This confirms successful stabilization of variance.
Assumption 4: Normality of Residuals The Normal Q-Q plot reveals substantial improvement post-transformation. Points align closely with the theoretical normal line through the middle range. Minor deviations persist at both extremes (observations with standardized residuals ≈ 3-4), but these fall within acceptable ranges given the large sample size (n = 2652) and Central Limit Theorem considerations.
Assumption 5: Multicollinearity Initial model fitting revealed perfect multicollinearity in two percentage categories which were removed as reference groups. Variance inflation factor analysis on the final transformed model indicates acceptable multicollinearity levels.
library(car)
vif_values <- vif(model_log)
print(vif_values)
## GVIF Df GVIF^(1/(2*Df))
## Pct_SCD_0to20 5.635500 1 2.373921
## Pct_SCD_30to40 1.796438 1 1.340313
## Pct_SCD_50to60 1.284844 1 1.133510
## Pct_SCD_70to90 3.175485 1 1.781989
## Pct_Age_17to44 1.390502 1 1.179196
## Pct_Age_45to64 2.119077 1 1.455705
## State 7.728568 53 1.019479
# Report maximum adjusted VIF
max_vif <- max(vif_values)
cat("\nMaximum VIF:", round(max_vif, 2))
##
## Maximum VIF: 53
##Coefficient Interpretations
Because the outcome variable was log-transformed, coefficients represent approximate percentage changes in recipient totals for each one-unit increase in predictors. Exact percentage change = (e^β - 1) × 100.
Key Finding 1: Age Demographics Drive Recipient Counts The percentage of veterans aged 17-44 shows the strongest positive association (β = 0.0877, p < 0.001), corresponding to approximately 9.2% increase in total recipients per percentage point. Veterans aged 45-64 also contribute positively (β = 0.0451, p < 0.001) with half the effect size (4.6% increase). This pattern suggests younger veteran populations are disproportionately represented among disability compensation claimants.
Key Finding 2: Severity Categories Show Unexpected Negative Relationships Contrary to expectations, all disability severity rating categories display negative coefficients. The 70-90% severity range (β = -0.0848, p < 0.001) associates with an 8.1% decrease in recipient counts. This counterintuitive finding may reflect regional service utilization patterns rather than actual prevalence differences—areas with younger veteran populations may simultaneously have lower average disability severities but higher claim filing rates.
Key Finding 3: Pronounced Geographic Variation Exists State-level indicators reveal substantial regional differences. Puerto Rico shows the highest relative count (β = 3.10, +2,214% vs. reference), followed by Delaware (+803%), Hawaii (+512%), and Massachusetts (+441%). Conversely, Alaska (-57%), Kansas (-50%), and Mississippi (-45%) show notably lower counts.
#Conclusion and Future Directions ##Summary of Key Findings
This analysis examined factors predicting VA disability compensation recipient distributions across geographic units using fiscal year 2025 data from 2,652 observations. The log-transformed multiple linear regression model explained 46.4% of variance after addressing initial diagnostic violations. Three primary patterns emerged: (1) younger veteran populations (aged 17-44) strongly drive recipient totals at +9.2% per percentage point, (2) disability severity categories unexpectedly associate negatively with recipient counts, and (3) pronounced geographic disparities persist beyond demographic explanations. Policy Implications
The strong age-demographic effect suggests targeting recruitment and outreach efforts toward jurisdictions with larger younger veteran populations may optimize resource allocation. The negative severity relationships warrant investigation into whether certain regions under-classify disability levels or experience barriers to claiming higher-severity benefits. Geographic variation indicates potential equity concerns that merit administrative attention.
From a methodological perspective, the substantial improvement in model diagnostics following log-transformation underscores the importance of rigorous assumption checking in applied regression analysis. Limitations
Several constraints limit causal inference. The cross-sectional design precludes temporal analysis of policy impacts. State-level aggregation masks within-county heterogeneity. Unmeasured confounders—including local healthcare infrastructure, socioeconomic factors, and veteran characteristics beyond age/severity—may bias estimates. The log-transformation improves statistical properties but complicates direct interpretation of absolute recipient counts. Future Research Directions
Three extensions would strengthen understanding: First, longitudinal panel data spanning multiple fiscal years would enable difference-in-differences analysis of policy interventions. Second, spatial econometric models could address clustering effects between neighboring jurisdictions. Third, microdata at the individual veteran level would permit causal identification through matching or instrumental variable approaches. Negative binomial regression may also provide superior fit for count outcomes compared to log-transformed linear models. E. References
##Citations U.S. Department of Veterans Affairs. (2025). Disability Compensation Recipients by State - Fiscal Year 2025. Retrieved from https://www.va.gov/disability/compensation-rates/special-monthly-compensation-rates/ on 2026-08-21.
Fox, J., & Monette, G. (1992). Generalized collinearity diagnostics. Journal of the American Statistical Association, 87(417), 178-183.
R Core Team. (2023). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/