I've already used my entire dataset in a regression, should I not use that as a prediction model? At the hospital I work at we were writing a paper on what variables about a patient predict whether they'll return for a follow-up visit.  We included variables such as age, gender, distance from their home to the hospital, mechanism of injury and other things like that. We had about 600 patients to examine and so we ran a multiple logistic regression with yes/no return as the outcome, and we did this with everyone in our dataset (everyone with that condition at our hospital).
Well we wrote the paper and then someone decided we should try to create an online prediction tool. You could put in variables about a patient, and it would return a guess about whether or not the patient would return, based on our previous regression model. To help me create an online prediction tool I've used this tutorial using R and Shiny and I noticed the author split his data into training and testing sets
Problem is: I never did that. Reading comments such as this I think I understand why someone would split their data, but my question now is:
What can/should I do about it?

*

*I've already used all my data.  Would it be best to delete everything I've done, go back, split the data and start over?  (We didn't publish the paper or anything)

*Should I just proceed? Can an argument be made for NOT splitting the dataset?

 A: In my opinion the best course of action, if possible, is to collect more data and then use that data to check your current model as well as maybe top 5 of the previous models you tried.
Continuing with the child learning multiplication example from the comment you referenced - each of your models is a different child. You set up a procedure which ranks children according to how well they perform multiplication on the data they have already seen. This procedure is biased towards those who memorised the table. The child who best learned how to multiply might rank (e.g.) third from the top or even lower. So the only way to select models that will perform well outside of the data you have so far is to put them to the test using a new set of data (suitable named "testing" data).
If getting more data is impossible you can always do cross-validation. But here you will have to re-estimate your models. You can learn more about cross-validation by looking at the relevant answers on this site, but the idea is to simulate training/testing splits while still using all of the training data.
If you cannot even adjust the original analysis then the last best thing might be to select a well-enough performing model that uses the least number of variables. For example, if one model reaches 76% accuracy using 30 variables, and another one reaches 72% wile using only 10 - it is less likely for the lesser model to have "memorized" the data. So we would expect that model to perform better on new patients.
A: With something like a dozen variables to start with and then several tries on which model works best but only 600 data points on a binary output you have a severe risk of overfitting. That is your model works very well on the data you have but maybe its predictive power for new patients is not very good.
What you can do with splitting the data is getting a feel for how much of an issue that is for your specific data. I would not throw away what you have but if you have programmed this in R it should be relatively easy to split the data and check whether you have overfitting.
So split the data randomly into say 500 patients in training and 100 in testing and then look at the following:

*

*is the best model on this set of 500 patients the same as on the whole set of 600?

*how much worse does it perform on the test cases than on the training cases?

*how much better is your complicated model relative to a model that only uses the single variable that is the best predictor?

Repeat this with different random choices of the split into training and testing. The goal is to gain an understanding whether your model is only a good fit on your existing data or whether it is actually a good tool to predict the behavior of future patients.
A: I disagree with the consens that this is fine. I think it's not, because I can construct a better model than you did: a hashtable that remembers the entries.
Performance estimation
Having a model created from data is fine, it's the first step. But this itself is worthless: we need to assess the performance of the model (otherwise, a random model may be better).
To assess the performance of the model (and distinguish it from random guessing), we need some data.
Overfitting
Now you could just use the same data as you already used to assess the performance. But this can lead to a bias: your model could have overfitted to the data and, in an extreme case, "remember" (hash table) the data. (remark: this is indeed less of an issue with less powerful models such as logistic regression)
Low statistics: cross validation
As mentioned, ways out are to use resampling methods that do not really reduce the sample size used: This can be done by either using bootstrap methods or cross validation. They have their own advantages and disadvantages, however they tend to perform similar in most real-world cases.
*I would suggest you to do Cross-validation to get an estimate, but then, any technique is fine.
Why you need this
For a paper, where you claim to have developed a model, it seems crucial to provide an unbiased estimate of the performance of the model (for completeness: or a very strong theoretical motivation).
I understand that it means you would need to redo some stuff, but that should not be a lot actually. And it is also worth to maybe contact someone who understands more of it: if you say you just tried a bit around, there are many many more pitfalls (and possible improvements) that you can have. Data scientists are a thing these days ;)
A: With so few cases, train/test splits aren't helpful. You then lose power in training the model and precision in testing it.
What you've done so far is fine. You could go on to estimate how well the model is likely to work for prediction by repeating the modeling on multiple bootstrap samples of the data and evaluating performance of those models on the full data set. That's an accepted way to evaluate the performance of your modeling process.
One caution: "whether they'll return for a follow-up visit" might not be an all-or-none result. If you deliberately restricted consideration to returning during a fixed period of time like 1 year that could be OK, but in general you might also be interested in how soon they return and you might also want to take advantage of information from individuals who haven't yet been followed up for that fixed period of time. For those sorts of things you would need to use a survival model instead of logistic regression.
