What's a good way run a regression with two datasets that have common DVs but some different IVs? I have run 20 questionnaires with 100 responses each.
One of the goals of my study is to analyze how cybersecurity “literacy”, along with some other IVs, correlate with how people hear about breaking news events about security (e.g., from social media vs. television news vs. a magazine vs...).
For the first 5 questionnaires, I measured “literacy” through a disjoint set of scales that loosely approximated what I wanted. However, after those questionnaires ran, a new scale was published that more closely measured what I wanted so I started using that one instead.
Now, I’m doing the (multi-variate regression) analysis, and I’ve run into the problem of trying to come up with a strategy for how to use the two datasets properly — the first being the responses from the first 5 questionnaires and the second being the responses from the later 15.
One strategy I can think of is that I create two separate models from the two different datasets, but then I’ll have two sets of coefficients for the common IVs and I imagine that will be distracting. I also have many DVs (six binary responses representing different methods for how a participant heard about the news event), so the two sets of IV coefficients for each DV will be extra distracting, e.g.:
mod1 <- lm(cbind(DV1, DV2, ...) ~ Common.IV1 + Common.IV2 + ... + First.Literacy, data = first5)
mod2 <- lm(cbind(DV1, DV2, ...) ~ Common.IV1 + Common.IV2 + ... + Second.Literacy, data = second15)

Another strategy I was considering is to create one model with the common IVs using all of the data, and then a separate model for just the second dataset that includes only the “literacy” scale response as an IV. However, that would assume that the effect of “literacy” is independent of the other IVs and I doubt that’s true.
mod1 <- lm(cbind(DV1, DV2, ...) ~ Common.IV1 + Common.IV2 + ..., data = rbind(first5.common.ivs, second15.common.ivs))
mod2 <- lm(cbind(DV1, DV2, ...) ~ Second.Literacy, data = second15)

A third strategy is to only use the data from the latter 15 questionnaires, but that would be a shame.
one.model.to.rule.them.all <- lm(cbind(DV1, DV2, ...) ~ Common.IV1 + Common.IV2 + ... + Second.Literacy, data = second15)

Anyway, I know the analysis is going to have to be at least a little convoluted because of the two different datasets (unless I use the third strategy), but if there’s a more elegant approach that I’m not thinking of, I’d love to hear about it.
 A: One quick idea is to impute the variables you didn't have in the first data set using the common variables from both data sets, perhaps using the mice package for R. Then you could use the scale you always wanted to in both portions of the data. You will want to use the analysis functions provided by mice to adjust p-values and confidence intervals.
A structural equation modeling approach also might work. One thing you have going for you is that, while the exact variables differ through time, the abstract concept of literacy remains constant. Here's a sketch of the idea for a single latent factor $L$:
For the first set of variables, your model is something like:
$$
X_1 = b_1 L + u_1 \\
X_2 = b_2 L + u_2 \\
X_3 = b_3 L + u_3
$$
And for the second set, your model is based on the same latent factor:
$$
X_1 = b_1 L + u_1 \\
X_2 = b_2 L + u_2 \\
X_4 = b_4 L + u_4
$$
and then the top level response models use that latent factor as a DV:
$$
D_1 = \beta_1 L + \epsilon_1 \\
D_2 = \beta_2 L + \epsilon_2
$$
