I’m interested in using machine learning techniques such as subset selection, lasso and ridge regression to predict which words an individual kid will get wrong. I have about 300 predictors and all my data is from within one child. I want to find a model that works well for that child (and perhaps other models with other children). But I’m worried that key assumptions of the model might be violated since all the data is from a single person. Basically, does it make sense (and not violate the assumptions of the models) to create separate models one for each student if the end goal is accurate prediction?
There are several issues I see with your approach. The first is determining what you are trying to predict. Do you have a similarity measure for words, with which you can generalize from the words used in your training data words unseen by the child it may encounter in your testing data? Any sort of similarity measure would need to be informed by what you mean by 'wrong' - is this a spelling test, a vocabulary definition test, or what?
And as far as generalizations to the performance of other children, I don't think that should be something you should expect here. Even if the child were to 'typical' for whatever set of children you hoped to generalize your model to, sample bias induced by the fact that you have only one sample point in your child population would almost certainly skew your results. And lastly, this is assuming static behavior over time - if the kid studies, it would be reasonable to assume that his performance would improve to a certain extent.
I would suggest you get a larger random sample that is adequately representative of the set of children you are trying to model if that is your goal, and work out a similarity measure for the words so you have a more concrete measure of performance if you're doing something like a spelling test.