I think the question is how usefull the model will be.
You probaly wont be able to describe the real world, makeing a model that will have a high chance to be at least poor to describe the world.
If you are useing R, you could play and figure what your model with 3 points will look like.
for example:
#lets think that this 10000 points is the real world
set.seed(2)
x<-runif(10000)
#with a Deterministic Model
y.det<-2+5*x
#and this noise
y<-y.det+rnorm(10000)
#makeing a dataframe of the data
data<-data.frame(cbind(sample=1:10000,x=x,y=y))
#makeing a regression with 30 points to see if we can recover the
#model of the real world
sample.points<-sample(1:10000,30)
with(data[which(data$sample%in%sample.points),],summary(lm(y~x)))
#we get a good estimative of the real world that is y=2+5x+error
#but we can make a regression with 3 points too, a smaller sample of the
#real world
sample.points<-sample(1:10000,3)
with(data[which(data$sample%in%sample.points),],summary(lm(y~x)))
#hummm we got a higher error
#lets make many models and see what happens
#a dataframe to put our estimatives
model.estimates<-data.frame(matrix(c(rep(NA,3)),nrow=1,ncol=3,
dimnames=list(1,c("Points.Used","Intercep", "Slope"))))
#lets make one hundred models useing 3 points to estimate the model
#then lets use 5 points, 10,50,100 and 200 points to do de same thing
#and check if we can capture the shape of the real world from these models
for ( n in c(3,5,10,50,100,200) ) {
for(i in 1:100) {
model.estimates<-rbind(model.estimates,c(n,NA,NA))
sample.points<-sample(1:10000,n)
model.estimates[nrow(model.estimates),2]<-with(data[which(data$sample%in%sample.points),],coef(lm(y~x)))[1]
model.estimates[nrow(model.estimates),3]<-with(data[which(data$sample %in%sample.points),],coef(lm(y~x)))[2]
}
}
#removeing the first line, probaly there is a more elegant way to do the loop
#but i dont know
model.estimates<-model.estimates[-c(1),]
#now lets make a boxplot of the parameters we estimated to see what happens
par(mfrow=c(1,2))
boxplot(Intercep~Points.Used,data=model.estimates,main="Intercep",
xlab="Samples done",ylab="Parameter Value")
boxplot(Slope~Points.Used,data=model.estimates,main="Slope",
xlab="Samples done",ylab="Parameter Value")
Although you can make a model with 3 points, it will most likely be wrong :(, leading to bad decisions...