Calculate the correlation coefficient R and coefficient of determination, R2 and P-value or significance
31 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello,
I have a question: I have a single Y and multiple X columns (say up to X50). The image below is a simple version. How do I calculate both R and R^2 between Y and each X column as well as the p-values to determine whetther the correlation between Y and each X is significant or not using 95 percent confidence interval? I would like all the results, i.e., R & R^2 and p-values for the correlation between Y and each X column to be output as a table called RESULTS.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1349789/image.png)
Thank you.
0 comentarios
Respuestas (1)
Sai Pavan
el 17 de Abr. de 2024
Hello,
I understand that you want to calculate the correlation coefficient R, coefficient of determination R^2 and P-value of Y and each column of X.
The "corr" function returns both the correlation coefficient and the p-value, which are used to determine the significance of the correlation. The "corr" function will return the Pearson's Linear Correlation Coefficient, R, which can then be squared to get the coefficient of determination R^2. By default, the significance level is set for a 95% confidence interval to get the p-value, which is commonly used in statistical analysis.
Please refer to the below code snippet that demonstrates how the calculations can be done:
Y = [1; 2; 3; 4; 5; 6];
X1 = [7; 8; 9; 10; 11; 12];
X2 = [13; 14; 15; 16; 17; 18];
X3 = [19; 20; 21; 22; 23; 24];
X4 = [25; 26; 27; 28; 29; 30];
T = table(Y, X1, X2, X3, X4);
% Initialize arrays to hold the results
variables = T.Properties.VariableNames(2:end); % Exclude Y column
R_values = zeros(length(variables), 1);
R_squared = zeros(length(variables), 1);
P_values = zeros(length(variables), 1);
% Loop through each X column to calculate R, R^2, and p-values
for i = 1:length(variables)
[R, P] = corr(T.Y, T.(variables{i}));
R_values(i) = R;
R_squared(i) = R^2;
P_values(i) = P;
end
% Create a results table
RESULTS = table(variables', R_values, R_squared, P_values, ...
'VariableNames', {'Variable', 'R', 'R_Squared', 'P_Value'});
% Display the results
disp(RESULTS);
Please refer to the below documentation to learn more about "corr" function: https://www.mathworks.com/help/stats/corr.html
Hope it helps!
0 comentarios
Ver también
Categorías
Más información sobre Statistics and Machine Learning Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!