How do I implement Linear regression with leave-one-out cross validation in MATLAB?
Mostrar comentarios más antiguos
I have a data set of 87 variables and 1 outcome where all are continuous. I need to use linear regression with leave-one-out cross validation to create a model/equation with prediction's accuracy, sensitivity, and specificity.
- Can I use Regression Learner app for this? If yes how to get quation from a created model in Regression Learner app?
- Can/Should I use cross validation to divide my data set and get the results?
- Is there any code sample on how to go about doing this? (I'm new to all of this)
- Should I be using stepwiselm or fitlm or glmfit/glmval? What's the difference and how do I choose?
Respuesta aceptada
Más respuestas (1)
Satadru Mukherjee
el 29 de Oct. de 2020
Demo code of Implementation linear regression with leave-one-out cross validation in MATLAB
Note: I have tried to avoid the inbuilt functions to create the model or to cross validate or to calculate coefficient of determination , so that we can get the complete feeling out of the code:-)
clc
clear all
close all
warning off
data=readtable('Leave_One_Out.csv');
x=table2array(data(:,1))';
y=table2array(data(:,2))';
n=length(x);
predictions=[];
for p=1:n
trainindex=setdiff(1:n,p);
testindex=p;
xtrain=x(trainindex);
ytrain=y(trainindex);
xtest=x(testindex);
a=[];
for i=1:length(xtrain)
a=[a ; xtrain(i) 1];
end
c =a\ytrain';
ytest = c(1)*xtest + c(2);
predictions=[predictions ytest];
end
r=y-predictions;
r=r.^2;
rsq=(1-(sum(r)/sum((y-mean(y)).^2)))*100;
disp(rsq);
Categorías
Más información sobre Linear Regression en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!