strength_movement_skill

Quarto

Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see https://quarto.org.

library(readxl)
library(plyr)
library(readr)
library(ggplot2)
library(lubridate)

Attaching package: 'lubridate'
The following objects are masked from 'package:base':

    date, intersect, setdiff, union
library(reactable)
library(htmltools)
library(ggpubr)

Attaching package: 'ggpubr'
The following object is masked from 'package:plyr':

    mutate
library(qqplotr)

Attaching package: 'qqplotr'
The following objects are masked from 'package:ggplot2':

    stat_qq_line, StatQqLine
library(rmcorr)
library(janitor)

Attaching package: 'janitor'
The following objects are masked from 'package:stats':

    chisq.test, fisher.test
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr   1.1.4     ✔ stringr 1.5.1
✔ forcats 1.0.0     ✔ tibble  3.2.1
✔ purrr   1.0.2     ✔ tidyr   1.3.0
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::arrange()        masks plyr::arrange()
✖ purrr::compact()        masks plyr::compact()
✖ dplyr::count()          masks plyr::count()
✖ dplyr::desc()           masks plyr::desc()
✖ dplyr::failwith()       masks plyr::failwith()
✖ dplyr::filter()         masks stats::filter()
✖ dplyr::id()             masks plyr::id()
✖ dplyr::lag()            masks stats::lag()
✖ dplyr::mutate()         masks ggpubr::mutate(), plyr::mutate()
✖ dplyr::rename()         masks plyr::rename()
✖ qqplotr::stat_qq_line() masks ggplot2::stat_qq_line()
✖ dplyr::summarise()      masks plyr::summarise()
✖ dplyr::summarize()      masks plyr::summarize()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidyr)
library(lme4)
Warning: package 'lme4' was built under R version 4.3.3
Loading required package: Matrix
Warning: package 'Matrix' was built under R version 4.3.3

Attaching package: 'Matrix'

The following objects are masked from 'package:tidyr':

    expand, pack, unpack
library(emmeans)
Warning: package 'emmeans' was built under R version 4.3.3
library(performance)
Warning: package 'performance' was built under R version 4.3.3
library(stats)
library(dplyr)
setwd("C:/Users/sophi/OneDrive - Teesside University/Msc/Dissertation/strength_movement_skill")

"all_data" <- read_csv("all_data.csv")
Rows: 69 Columns: 24
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr   (4): id, sex, date, dob
dbl  (19): height, sitting_height, mass, age, rsi_ jump_height/contact _time...
time  (1): time

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data=read_csv("all_data.csv")
Rows: 69 Columns: 24
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr   (4): id, sex, date, dob
dbl  (19): height, sitting_height, mass, age, rsi_ jump_height/contact _time...
time  (1): time

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data <- na.omit(data)
male_strength_mean <- mean(data$relative_strength_imtp[data$sex == "m"])
male_strength_sd <- sd(data$relative_strength_imtp[data$sex == "m"])


female_strength_mean <- mean(data$relative_strength_imtp[data$sex == "f"])
female_strength_sd <- sd(data$relative_strength_imtp[data$sex == "f"])


cat("Male Strength - Mean:", male_strength_mean, "SD:", male_strength_sd, "\n")
Male Strength - Mean: 32.03882 SD: 3.796115 
cat("Female Strength - Mean:", female_strength_mean, "SD:", female_strength_sd, "\n")
Female Strength - Mean: 25.80058 SD: 3.649793 
male_cmj_mean <- mean(data$jump_height_cmj[data$sex == "m"])
male_cmj_sd <- sd(data$jump_height_cmj[data$sex == "m"])


female_cmj_mean <- mean(data$jump_height_cmj[data$sex == "f"])
female_cmj_sd <- sd(data$jump_height_cmj[data$sex == "f"])


cat("Male CMJ Height - Mean:", male_cmj_mean, "SD:", male_cmj_sd, "\n")
Male CMJ Height - Mean: 26.4 SD: 8.179624 
cat("Female CMJ Height - Mean:", female_cmj_mean, "SD:", female_cmj_sd, "\n")
Female CMJ Height - Mean: 22.56923 SD: 4.075202 
male_peak_mean <- mean(data$peak_force_imtp[data$sex == "m"])
male_peak_sd <- sd(data$peak_force_imtp[data$sex == "m"])


female_peak_mean <- mean(data$peak_force_imtp[data$sex == "f"])
female_peak_sd <- sd(data$peak_force_imtp[data$sex == "f"])


cat("Male peak - Mean:", male_peak_mean, "SD:", male_peak_sd, "\n")
Male peak - Mean: 1758.176 SD: 420.2663 
cat("Female peak - Mean:", female_peak_mean, "SD:", female_peak_sd, "\n")
Female peak - Mean: 1230.596 SD: 289.0798 
male_movement_mean <- mean(data$dragon_score[data$sex == "m"])
male_movement_sd <- sd(data$dragon_score[data$sex == "m"])


female_movement_mean <- mean(data$dragon_score[data$sex == "f"])
female_movement_sd <- sd(data$dragon_score[data$sex == "f"])


cat("Male movement - Mean:", male_movement_mean, "SD:", male_movement_sd, "\n")
Male movement - Mean: 48.29412 SD: 3.477871 
cat("Female movement - Mean:", female_movement_mean, "SD:", female_movement_sd, "\n")
Female movement - Mean: 46.48077 SD: 3.292835 
# Calculate mean and standard deviation for males
male_height_mean <- mean(data$height[data$sex == "m"])
male_height_sd <- sd(data$height[data$sex == "m"])

# Calculate mean and standard deviation for females
female_height_mean <- mean(data$height[data$sex == "f"])
female_height_sd <- sd(data$height[data$sex == "f"])

# Print results
cat("Male height - Mean:", male_height_mean, "SD:", male_height_sd, "\n")
Male height - Mean: 166.9824 SD: 8.269616 
cat("Female height - Mean:", female_height_mean, "SD:", female_height_sd, "\n")
Female height - Mean: 156.4231 SD: 8.766796 
# Calculate mean and standard deviation for males
male_weight_mean <- mean(data$mass[data$sex == "m"])
male_weight_sd <- sd(data$mass[data$sex == "m"])

# Calculate mean and standard deviation for females
female_weight_mean <- mean(data$mass[data$sex == "f"])
female_weight_sd <- sd(data$mass[data$sex == "f"])

# Print results
cat("Male weight - Mean:", male_weight_mean, "SD:", male_weight_sd, "\n")
Male weight - Mean: 54.7 SD: 10.47998 
cat("Female weight - Mean:", female_weight_mean, "SD:", female_weight_sd, "\n")
Female weight - Mean: 48.04423 SD: 10.96587 
# Calculate mean and standard deviation for males
male_sitting_mean <- mean(data$sitting_height[data$sex == "m"])
male_sitting_sd <- sd(data$sitting_height[data$sex == "m"])

# Calculate mean and standard deviation for females
female_sitting_mean <- mean(data$sitting_height[data$sex == "f"])
female_sitting_sd <- sd(data$sitting_height[data$sex == "f"])

# Print results
cat("Male sitting - Mean:", male_sitting_mean, "SD:", male_sitting_sd, "\n")
Male sitting - Mean: 126.1765 SD: 4.660141 
cat("Female sitting - Mean:", female_sitting_mean, "SD:", female_sitting_sd, "\n")
Female sitting - Mean: 121.8654 SD: 5.643073 
# Calculate mean and standard deviation for males
male_maturity_offset_mean <- mean(data$maturity_offset[data$sex == "m"])
male_maturity_offset_sd <- sd(data$maturity_offset[data$sex == "m"])

# Calculate mean and standard deviation for females
female_maturity_offset_mean <- mean(data$maturity_offset[data$sex == "f"])
female_maturity_offset_sd <- sd(data$maturity_offset[data$sex == "f"])

# Print results
cat("Male maturity - Mean:", male_maturity_offset_mean, "SD:", male_maturity_offset_sd, "\n")
Male maturity - Mean: 0.1777415 SD: 0.7456252 
cat("Female maturity - Mean:", female_maturity_offset_mean, "SD:", female_maturity_offset_sd, "\n")
Female maturity - Mean: 0.7166921 SD: 1.103285 
# Calculate mean and standard deviation for males
male_age_mean <- mean(data$age[data$sex == "m"])
male_age_sd <- sd(data$age[data$sex == "m"])

# Calculate mean and standard deviation for females
female_age_mean <- mean(data$age[data$sex == "f"])
female_age_sd <- sd(data$age[data$sex == "f"])

# Print results
cat("Male age - Mean:", male_age_mean, "SD:", male_age_sd, "\n")
Male age - Mean: 13.35294 SD: 0.6063391 
cat("Female age - Mean:", female_age_mean, "SD:", female_age_sd, "\n")
Female age - Mean: 12.26923 SD: 1.28514 
hist(data$relative_strength_imtp, main="Histogram of Relative Strength", xlab="Relative Strength", col="lightblue", border="black")

hist(data$jump_height_cmj, main="Histogram of Dynamic Strength", xlab="Dynamic Strength", col="lightblue", border="black")

movement_hist <- ggplot(data, aes(x = dragon_score)) +
  geom_histogram(binwidth = 0.5, fill = "lightblue", alpha = 0.5) +
  labs(title = "Histogram of Dragon Score",
       x = "Dragon Score",
       y = "Frequency") +
  theme_minimal()

strength_density <- ggplot(data, aes(x = relative_strength_imtp, fill = "blue")) +
  geom_density(alpha = 0.5) +
  labs(title = "Density Plot of Relative strength",
       x = "Relative Strength",
       y = "Density") +
  theme_minimal()

movement_density <- ggplot(data, aes(x = dragon_score, fill = "blue")) +
  geom_density(alpha = 0.5) +
  labs(title = "Density Plot of Dragon Score",
       x = "Dragon Score",
       y = "Density") +
  theme_minimal()

dynamicstrength_density <- ggplot(data, aes(x = jump_height_cmj, fill = "blue")) +
  geom_density(alpha = 0.5) +
  labs(title = "Density Plot of Dynamic strength",
       x = "Dynamic Strength",
       y = "Density") +
  theme_minimal()

print(movement_hist)

print(strength_density)

print(movement_density)

print(dynamicstrength_density)

# Display histograms and density plots side by side
library(gridExtra)

Attaching package: 'gridExtra'
The following object is masked from 'package:dplyr':

    combine
grid.arrange(movement_hist, strength_density, movement_density, dynamicstrength_density, nrow = 2, ncol = 2)

qqnorm(data$relative_strength_imtp)
qqline(data$relative_strength_imtp)

qqnorm(data$jump_height_cmj)
qqline(data$jump_height_cmj)

qqnorm(data$dragon_score)
qqline(data$dragon_score)

shapiro.test(data$relative_strength_imtp)

    Shapiro-Wilk normality test

data:  data$relative_strength_imtp
W = 0.96959, p-value = 0.09067
shapiro.test(data$jump_height_cmj)

    Shapiro-Wilk normality test

data:  data$jump_height_cmj
W = 0.93189, p-value = 0.001005
shapiro.test(data$dragon_score)

    Shapiro-Wilk normality test

data:  data$dragon_score
W = 0.98279, p-value = 0.4601
# log transformation of jump data
data$log_jumpheight <- log(data$jump_height_cmj)

# Exclude rows with -Inf in the log_jumpheight column
data_jump_clean <- data[!is.infinite(data$log_jumpheight) | data$log_jumpheight != -Inf, ]

# Check normality again - normally distributed 
shapiro.test(data_jump_clean$log_jumpheight)

    Shapiro-Wilk normality test

data:  data_jump_clean$log_jumpheight
W = 0.98938, p-value = 0.8352
# Calculate Pearson correlation - strength movement
#overall 

correlation_test <- cor.test(data$peak_force_imtp, data$dragon_score, method = "pearson")

print (correlation_test)

    Pearson's product-moment correlation

data:  data$peak_force_imtp and data$dragon_score
t = 0.5747, df = 67, p-value = 0.5674
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1694514  0.3017175
sample estimates:
       cor 
0.07003824 
# Perform Pearson's correlation test for males
male_corr_strength_movement <- cor.test(
  data$relative_strength_imtp[data$sex == "m"], 
  data$dragon_score[data$sex == "m"]
)

# Perform Pearson's correlation test for females
female_corr_strength_movement <- cor.test(
  data$relative_strength_imtp[data$sex == "f"], 
  data$dragon_score[data$sex == "f"]
)

# Print results
cat("Male strength movement correlation:\n")
Male strength movement correlation:
print(male_corr_strength_movement)

    Pearson's product-moment correlation

data:  data$relative_strength_imtp[data$sex == "m"] and data$dragon_score[data$sex == "m"]
t = 1.5704, df = 15, p-value = 0.1372
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1279978  0.7253961
sample estimates:
      cor 
0.3757645 
cat("\nFemale strength movement correlation:\n")

Female strength movement correlation:
print(female_corr_strength_movement)

    Pearson's product-moment correlation

data:  data$relative_strength_imtp[data$sex == "f"] and data$dragon_score[data$sex == "f"]
t = 1.3877, df = 50, p-value = 0.1714
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.08477874  0.44223597
sample estimates:
      cor 
0.1925771 
correlation_test <- cor.test(data$relative_strength_imtp, data$peak_force_imtp, method = "pearson")

print (correlation_test)

    Pearson's product-moment correlation

data:  data$relative_strength_imtp and data$peak_force_imtp
t = 6.6743, df = 67, p-value = 5.773e-09
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.4647785 0.7556082
sample estimates:
      cor 
0.6319429 
correlation_test2 <- cor.test(data_jump_clean$log_jumpheight, data_jump_clean$dragon_score, method = "pearson")

print (correlation_test2)

    Pearson's product-moment correlation

data:  data_jump_clean$log_jumpheight and data_jump_clean$dragon_score
t = 2.8329, df = 66, p-value = 0.006111
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.0985801 0.5263685
sample estimates:
      cor 
0.3292661 
# Calculate Pearson correlation - Dynamic strength movement

# Perform Pearson's correlation test for males
male_corr_cmj_movement <- cor.test(
  data$jump_height_cmj[data$sex == "m"], 
  data$dragon_score[data$sex == "m"]
)

# Perform Pearson's correlation test for females
female_corr_cmj_movement <- cor.test(
  data$jump_height_cmj[data$sex == "f"], 
  data$dragon_score[data$sex == "f"]
)

# Print results
cat("Male cmj movement correlation:\n")
Male cmj movement correlation:
print(male_corr_cmj_movement)

    Pearson's product-moment correlation

data:  data$jump_height_cmj[data$sex == "m"] and data$dragon_score[data$sex == "m"]
t = -0.3176, df = 15, p-value = 0.7552
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.5411173  0.4152270
sample estimates:
        cor 
-0.08172899 
cat("\nFemale strength movement correlation:\n")

Female strength movement correlation:
print(female_corr_cmj_movement)

    Pearson's product-moment correlation

data:  data$jump_height_cmj[data$sex == "f"] and data$dragon_score[data$sex == "f"]
t = 1.7529, df = 50, p-value = 0.08575
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.03455397  0.48187385
sample estimates:
      cor 
0.2406153 
corr_test <- cor.test(data$dragon_score, data$maturity_offset, method = "pearson")

corr_test2 <- cor.test(data_jump_clean$log_jumpheight, data_jump_clean$maturity_offset, method = "pearson")

corr_test3 <- cor.test(data$maturity_offset, data$relative_strength_imtp, method = "pearson")

corr_test4 <- cor.test(data$maturity_offset, data$peak_force_imtp, method = "pearson")


# Print the correlation
print (corr_test)

    Pearson's product-moment correlation

data:  data$dragon_score and data$maturity_offset
t = -1.8498, df = 67, p-value = 0.06876
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.43444349  0.01714709
sample estimates:
       cor 
-0.2204282 
print (corr_test2)

    Pearson's product-moment correlation

data:  data_jump_clean$log_jumpheight and data_jump_clean$maturity_offset
t = 2.9688, df = 66, p-value = 0.004164
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.1141452 0.5376556
sample estimates:
      cor 
0.3432293 
print (corr_test3)

    Pearson's product-moment correlation

data:  data$maturity_offset and data$relative_strength_imtp
t = -0.98811, df = 67, p-value = 0.3267
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.3466938  0.1202442
sample estimates:
       cor 
-0.1198473 
print (corr_test4)

    Pearson's product-moment correlation

data:  data$maturity_offset and data$peak_force_imtp
t = 3.8158, df = 67, p-value = 0.0002986
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.2064857 0.5992701
sample estimates:
      cor 
0.4225175 
ggplot(data, aes(x = relative_strength_imtp, y = dragon_score)) +
  geom_point(color = "blue") +
  geom_smooth(method = "lm", col = "red", se = FALSE) +
  labs(title = "Scatter Plot of Strength vs Movement",
       x = "Strength",
       y = "Movement") +
  theme_minimal()
`geom_smooth()` using formula = 'y ~ x'

ggplot(data_jump_clean, aes(x = log_jumpheight, y = dragon_score)) +
  geom_point(color = "blue") +
  geom_smooth(method = "lm", col = "red", se = FALSE) +
  labs(title = "Scatter Plot of Dynamic Strength vs Movement",
       x = "Dynamic Strength",
       y = "Movement") +
  theme_minimal()
`geom_smooth()` using formula = 'y ~ x'

# Fit a multiple linear regression model
model <- lm(dragon_score ~ relative_strength_imtp + age + sex, data = data)

# Print the summary of the model
summary(model)

Call:
lm(formula = dragon_score ~ relative_strength_imtp + age + sex, 
    data = data)

Residuals:
   Min     1Q Median     3Q    Max 
-7.806 -2.056 -0.213  2.283  5.725 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)             46.9714     5.0224   9.352 1.19e-13 ***
relative_strength_imtp   0.2180     0.1073   2.031   0.0463 *  
age                     -0.4984     0.3411  -1.461   0.1487    
sexm                     0.9935     1.1831   0.840   0.4041    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.238 on 65 degrees of freedom
Multiple R-squared:  0.1361,    Adjusted R-squared:  0.09624 
F-statistic: 3.414 on 3 and 65 DF,  p-value: 0.02248
# Fit a multiple linear regression model
model <- lm(dragon_score ~ age + sex, data = data)

# Print the summary of the model
summary(model)

Call:
lm(formula = dragon_score ~ age + sex, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-9.1199 -1.6262  0.0254  1.8801  6.0254 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  52.5390     4.3069  12.199   <2e-16 ***
age          -0.4938     0.3490  -1.415   0.1619    
sexm          2.3485     1.0000   2.349   0.0219 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.313 on 66 degrees of freedom
Multiple R-squared:  0.08128,   Adjusted R-squared:  0.05344 
F-statistic: 2.919 on 2 and 66 DF,  p-value: 0.06097
# Fit a multiple linear regression model
model <- lm(dragon_score ~ peak_force_imtp + age + sex, data = data)

# Print the summary of the model
summary(model)

Call:
lm(formula = dragon_score ~ peak_force_imtp + age + sex, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-9.1409 -1.6243  0.0827  1.8704  6.0620 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)      5.252e+01  4.350e+00  12.072   <2e-16 ***
peak_force_imtp -9.945e-05  1.383e-03  -0.072   0.9429    
age             -4.820e-01  3.878e-01  -1.243   0.2183    
sexm             2.388e+00  1.149e+00   2.078   0.0416 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.339 on 65 degrees of freedom
Multiple R-squared:  0.08135,   Adjusted R-squared:  0.03895 
F-statistic: 1.919 on 3 and 65 DF,  p-value: 0.1353
# Fit a multiple linear regression model
model <- lm(dragon_score ~ log_jumpheight + age + sex, data = data_jump_clean)

# Print the summary of the model
summary(model)

Call:
lm(formula = dragon_score ~ log_jumpheight + age + sex, data = data_jump_clean)

Residuals:
    Min      1Q  Median      3Q     Max 
-8.5283 -1.8888  0.2253  1.8634  5.4986 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)     34.4820     6.6461   5.188 2.33e-06 ***
log_jumpheight   8.0178     2.3135   3.466  0.00095 ***
age             -1.0482     0.3529  -2.971  0.00418 ** 
sexm             0.8425     0.9939   0.848  0.39981    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.029 on 64 degrees of freedom
Multiple R-squared:  0.2181,    Adjusted R-squared:  0.1815 
F-statistic: 5.952 on 3 and 64 DF,  p-value: 0.001206
model <- lm(dragon_score ~ relative_strength_imtp, data = data)

summary(model)

Call:
lm(formula = dragon_score ~ relative_strength_imtp, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-8.0931 -2.0483 -0.0472  2.4475  5.9722 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)            40.28316    2.39564  16.815  < 2e-16 ***
relative_strength_imtp  0.24305    0.08646   2.811  0.00647 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.245 on 67 degrees of freedom
Multiple R-squared:  0.1055,    Adjusted R-squared:  0.09215 
F-statistic: 7.903 on 1 and 67 DF,  p-value: 0.006468
cor.test(data$dragon_score, data$relative_strength_imtp)

    Pearson's product-moment correlation

data:  data$dragon_score and data$relative_strength_imtp
t = 2.8112, df = 67, p-value = 0.006468
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.09547394 0.52141083
sample estimates:
      cor 
0.3248148 
model <- lm(dragon_score ~ peak_force_imtp, data = data)

summary(model)

Call:
lm(formula = dragon_score ~ peak_force_imtp, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-9.7741 -2.1411  0.2439  2.3223  6.5648 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)     4.611e+01  1.485e+00  31.051   <2e-16 ***
peak_force_imtp 6.026e-04  1.048e-03   0.575    0.567    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.422 on 67 degrees of freedom
Multiple R-squared:  0.004905,  Adjusted R-squared:  -0.009947 
F-statistic: 0.3303 on 1 and 67 DF,  p-value: 0.5674
cor.test(data$dragon_score, data$peak_force_imtp)

    Pearson's product-moment correlation

data:  data$dragon_score and data$peak_force_imtp
t = 0.5747, df = 67, p-value = 0.5674
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1694514  0.3017175
sample estimates:
       cor 
0.07003824 
model <- lm(dragon_score ~ log_jumpheight, data = data_jump_clean)

summary(model)

Call:
lm(formula = dragon_score ~ log_jumpheight, data = data_jump_clean)

Residuals:
    Min      1Q  Median      3Q     Max 
-8.1433 -2.1188  0.1034  2.3681  6.6271 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)      29.467      6.144   4.796  9.6e-06 ***
log_jumpheight    5.510      1.945   2.833  0.00611 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.186 on 66 degrees of freedom
Multiple R-squared:  0.1084,    Adjusted R-squared:  0.09491 
F-statistic: 8.026 on 1 and 66 DF,  p-value: 0.006111
cor.test(data_jump_clean$dragon_score, data_jump_clean$log_jumpheight)

    Pearson's product-moment correlation

data:  data_jump_clean$dragon_score and data_jump_clean$log_jumpheight
t = 2.8329, df = 66, p-value = 0.006111
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.0985801 0.5263685
sample estimates:
      cor 
0.3292661 
library(ggplot2)

ggplot(data, aes(x = relative_strength_imtp, y = dragon_score)) +

  geom_point(color = "black", size = 1.5, alpha = 0.7) +
  
 
  geom_smooth(method = "lm", col = "red", size = 1, linetype = "solid") +
  
  
  labs(title = "Relationship Between Relative Strength and Movement Competency",
       x = "IMTP (Relative Strength)",
       y = "Dragon Score (Movement Competency)") +
  
  
  theme_minimal() +
  
  
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank())
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
`geom_smooth()` using formula = 'y ~ x'

ggplot(data, aes(x = relative_strength_imtp, y = dragon_score)) +

  geom_point(color = "black", size = 1.5, alpha = 0.7) +
  
  
  geom_smooth(method = "lm", col = "red", size = 1, linetype = "solid") +
  
  
  labs(title = "Relationship Between Relative Strength and Movement Competency",
       x = " (Relative Strength)",
       y = "Dragon Score (Movement Competency)") +
  
  
  theme_minimal() +
  
 
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank())
`geom_smooth()` using formula = 'y ~ x'

library(ggplot2)
ggplot(data_jump_clean, aes(x = log_jumpheight, y = dragon_score)) +
  geom_point() +
  geom_smooth(method = "lm", col = "blue") +
  labs(title = "Correlation Between Dynamic Strength and Movement Competency",
       x = "Dynamic Strength",
       y = "Movement Competency")
`geom_smooth()` using formula = 'y ~ x'

cor.test(data_jump_clean$log_jumpheight, data_jump_clean$process_score)

ggplot(data_jump_clean, aes(x = log_jumpheight, y = product_score )) +
  geom_point() +
  geom_smooth(method = "lm", col = "blue") +
  labs(title = "Correlation Between Dynamic Strength and Movement Competency",
       x = "Dynamic Strength",
       y = "Movement Competency")
`geom_smooth()` using formula = 'y ~ x'

#Residuals vs. Fitted values plot
plot(model, which = 1)

model_interaction5 <- lm(dragon_score ~ age * sex, data = data)
summary(model_interaction5)

Call:
lm(formula = dragon_score ~ age * sex, data = data)

Residuals:
   Min     1Q Median     3Q    Max 
-9.058 -1.760 -0.040  1.785  5.942 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  53.5790     4.4584  12.017   <2e-16 ***
age          -0.5785     0.3614  -1.601    0.114    
sexm        -14.8990    18.8168  -0.792    0.431    
age:sexm      1.2985     1.4147   0.918    0.362    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.317 on 65 degrees of freedom
Multiple R-squared:  0.09303,   Adjusted R-squared:  0.05117 
F-statistic: 2.222 on 3 and 65 DF,  p-value: 0.09388
model_interaction <- lm(dragon_score ~ peak_force_imtp * age * sex, data = data)
summary(model_interaction)

Call:
lm(formula = dragon_score ~ peak_force_imtp * age * sex, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-9.2056 -1.8673  0.0033  1.6825  5.8230 

Coefficients:
                           Estimate Std. Error t value Pr(>|t|)   
(Intercept)               5.391e+01  1.975e+01   2.729  0.00828 **
peak_force_imtp          -1.173e-03  1.673e-02  -0.070  0.94436   
age                      -5.322e-01  1.574e+00  -0.338  0.73641   
sexm                      9.552e+01  9.594e+01   0.996  0.32336   
peak_force_imtp:age       3.527e-05  1.293e-03   0.027  0.97833   
peak_force_imtp:sexm     -6.290e-02  5.610e-02  -1.121  0.26666   
age:sexm                 -7.099e+00  7.176e+00  -0.989  0.32644   
peak_force_imtp:age:sexm  4.791e-03  4.191e-03   1.143  0.25751   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.377 on 61 degrees of freedom
Multiple R-squared:  0.118, Adjusted R-squared:  0.01677 
F-statistic: 1.166 on 7 and 61 DF,  p-value: 0.3357
model_interaction3 <- lm(dragon_score ~ log_jumpheight * age * sex, data = data_jump_clean)
summary(model_interaction3)

Call:
lm(formula = dragon_score ~ log_jumpheight * age * sex, data = data_jump_clean)

Residuals:
    Min      1Q  Median      3Q     Max 
-8.1531 -1.9170 -0.0802  2.2289  5.5166 

Coefficients:
                        Estimate Std. Error t value Pr(>|t|)
(Intercept)               1.0371    66.0788   0.016    0.988
log_jumpheight           19.2184    21.4124   0.898    0.373
age                       1.6394     5.4431   0.301    0.764
sexm                    107.4853   444.2035   0.242    0.810
log_jumpheight:age       -0.8979     1.7512  -0.513    0.610
log_jumpheight:sexm     -37.7128   132.8498  -0.284    0.777
age:sexm                 -8.1301    33.2137  -0.245    0.807
log_jumpheight:age:sexm   2.8725     9.9336   0.289    0.773

Residual standard error: 3.099 on 60 degrees of freedom
Multiple R-squared:  0.2327,    Adjusted R-squared:  0.1432 
F-statistic:   2.6 on 7 and 60 DF,  p-value: 0.02067
model_interaction <- lm(dragon_score ~ relative_strength_imtp * age * sex, data = data)
summary(model_interaction)

Call:
lm(formula = dragon_score ~ relative_strength_imtp * age * sex, 
    data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-7.5745 -2.1482 -0.1621  2.4493  5.7489 

Coefficients:
                                 Estimate Std. Error t value Pr(>|t|)  
(Intercept)                       81.6824    33.8268   2.415   0.0188 *
relative_strength_imtp            -1.1037     1.3184  -0.837   0.4058  
age                               -3.2341     2.7386  -1.181   0.2422  
sexm                            -255.5222   171.6831  -1.488   0.1418  
relative_strength_imtp:age         0.1041     0.1067   0.975   0.3332  
relative_strength_imtp:sexm        7.4748     5.2004   1.437   0.1557  
age:sexm                          18.9698    12.8358   1.478   0.1446  
relative_strength_imtp:age:sexm   -0.5532     0.3897  -1.420   0.1608  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.242 on 61 degrees of freedom
Multiple R-squared:  0.1872,    Adjusted R-squared:  0.09388 
F-statistic: 2.007 on 7 and 61 DF,  p-value: 0.06869
cor.test(data$maturity_offset, data$relative_strength_imtp)

    Pearson's product-moment correlation

data:  data$maturity_offset and data$relative_strength_imtp
t = -0.98811, df = 67, p-value = 0.3267
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.3466938  0.1202442
sample estimates:
       cor 
-0.1198473 
cor.test(data$maturity_offset, data$dragon_score)

    Pearson's product-moment correlation

data:  data$maturity_offset and data$dragon_score
t = -1.8498, df = 67, p-value = 0.06876
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.43444349  0.01714709
sample estimates:
       cor 
-0.2204282 
cor.test(data$maturity_offset, data$peak_force_imtp)

    Pearson's product-moment correlation

data:  data$maturity_offset and data$peak_force_imtp
t = 3.8158, df = 67, p-value = 0.0002986
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.2064857 0.5992701
sample estimates:
      cor 
0.4225175 
cor.test(data_jump_clean$maturity_offset, data_jump_clean$log_jumpheight)

    Pearson's product-moment correlation

data:  data_jump_clean$maturity_offset and data_jump_clean$log_jumpheight
t = 2.9688, df = 66, p-value = 0.004164
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.1141452 0.5376556
sample estimates:
      cor 
0.3432293 
# Linear regression seperated by sex relative strength 
model_male <- lm(dragon_score ~ relative_strength_imtp, data = data, subset = sex == "m")
summary(model_male)

Call:
lm(formula = dragon_score ~ relative_strength_imtp, data = data, 
    subset = sex == "m")

Residuals:
    Min      1Q  Median      3Q     Max 
-6.6317 -1.5355 -0.1793  1.6833  5.2270 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)             37.2643     7.0697   5.271 9.41e-05 ***
relative_strength_imtp   0.3443     0.2192   1.570    0.137    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.329 on 15 degrees of freedom
Multiple R-squared:  0.1412,    Adjusted R-squared:  0.08395 
F-statistic: 2.466 on 1 and 15 DF,  p-value: 0.1372
model_female <- lm(dragon_score ~ relative_strength_imtp, data = data, subset = sex == "f")
summary(model_female)

Call:
lm(formula = dragon_score ~ relative_strength_imtp, data = data, 
    subset = sex == "f")

Residuals:
    Min      1Q  Median      3Q     Max 
-8.4365 -2.2786  0.1965  2.6766  6.1805 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)             41.9981     3.2618  12.876   <2e-16 ***
relative_strength_imtp   0.1737     0.1252   1.388    0.171    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.263 on 50 degrees of freedom
Multiple R-squared:  0.03709,   Adjusted R-squared:  0.01783 
F-statistic: 1.926 on 1 and 50 DF,  p-value: 0.1714
# Perform Pearson's correlation test for males
male_corr_strength_movement <- cor.test(
  data$relative_strength_imtp[data$sex == "m"], 
  data$dragon_score[data$sex == "m"]
)

# Perform Pearson's correlation test for females
female_corr_strength_movement <- cor.test(
  data$relative_strength_imtp[data$sex == "f"], 
  data$dragon_score[data$sex == "f"]
)

# Print results
cat("Male strength movement correlation:\n")
Male strength movement correlation:
print(male_corr_strength_movement)

    Pearson's product-moment correlation

data:  data$relative_strength_imtp[data$sex == "m"] and data$dragon_score[data$sex == "m"]
t = 1.5704, df = 15, p-value = 0.1372
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1279978  0.7253961
sample estimates:
      cor 
0.3757645 
cat("\nFemale strength movement correlation:\n")

Female strength movement correlation:
print(female_corr_strength_movement)

    Pearson's product-moment correlation

data:  data$relative_strength_imtp[data$sex == "f"] and data$dragon_score[data$sex == "f"]
t = 1.3877, df = 50, p-value = 0.1714
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.08477874  0.44223597
sample estimates:
      cor 
0.1925771 
# Linear regression for males - maturity offset 
model_males <- lm(dragon_score ~ relative_strength_imtp + maturity_offset, data = subset(data, sex == "m"))

# Summary of the model
summary(model_males)

Call:
lm(formula = dragon_score ~ relative_strength_imtp + maturity_offset, 
    data = subset(data, sex == "m"))

Residuals:
    Min      1Q  Median      3Q     Max 
-6.6837 -1.4976 -0.1698  1.6802  5.6632 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)             37.1504     7.3159   5.078 0.000168 ***
relative_strength_imtp   0.3494     0.2274   1.537 0.146603    
maturity_offset         -0.2887     1.1575  -0.249 0.806680    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.438 on 14 degrees of freedom
Multiple R-squared:  0.145, Adjusted R-squared:  0.02285 
F-statistic: 1.187 on 2 and 14 DF,  p-value: 0.334
# Linear regression for females
model_females <- lm(dragon_score ~ relative_strength_imtp + maturity_offset, data = subset(data, sex == "f"))

# Summary of the model
summary(model_females)

Call:
lm(formula = dragon_score ~ relative_strength_imtp + maturity_offset, 
    data = subset(data, sex == "f"))

Residuals:
    Min      1Q  Median      3Q     Max 
-7.8660 -1.9545 -0.0212  2.4828  5.3541 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)             42.4564     3.2279  13.153   <2e-16 ***
relative_strength_imtp   0.1738     0.1234   1.409    0.165    
maturity_offset         -0.6422     0.4082  -1.573    0.122    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.216 on 49 degrees of freedom
Multiple R-squared:  0.08338,   Adjusted R-squared:  0.04597 
F-statistic: 2.229 on 2 and 49 DF,  p-value: 0.1185
# Linear regression seperated by sex absolute strength 
model_malea <- lm(dragon_score ~ peak_force_imtp, data = data, subset = sex == "m")
summary(model_malea)

Call:
lm(formula = dragon_score ~ peak_force_imtp, data = data, subset = sex == 
    "m")

Residuals:
    Min      1Q  Median      3Q     Max 
-8.0521 -1.8113 -0.0305  1.1761  5.3497 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)     4.689e+01  3.838e+00  12.215 3.39e-09 ***
peak_force_imtp 8.008e-04  2.127e-03   0.377    0.712    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.575 on 15 degrees of freedom
Multiple R-squared:  0.009365,  Adjusted R-squared:  -0.05668 
F-statistic: 0.1418 on 1 and 15 DF,  p-value: 0.7118
model_femalea <- lm(dragon_score ~ peak_force_imtp, data = data, subset = sex == "f")
summary(model_femalea)

Call:
lm(formula = dragon_score ~ peak_force_imtp, data = data, subset = sex == 
    "f")

Residuals:
    Min      1Q  Median      3Q     Max 
-9.7176 -2.0137 -0.0815  1.8852  5.9365 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)     48.819552   2.006769  24.327   <2e-16 ***
peak_force_imtp -0.001901   0.001588  -1.197    0.237    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.279 on 50 degrees of freedom
Multiple R-squared:  0.02784,   Adjusted R-squared:  0.008395 
F-statistic: 1.432 on 1 and 50 DF,  p-value: 0.2371
# Perform Pearson's correlation test for males
male_corr_absolute_movement <- cor.test(
  data$peak_force_imtp[data$sex == "m"], 
  data$dragon_score[data$sex == "m"]
)

# Perform Pearson's correlation test for females
female_corr_absolute_movement <- cor.test(
  data$peak_force_imtp[data$sex == "f"], 
  data$dragon_score[data$sex == "f"]
)

# Print results
print(male_corr_absolute_movement)

    Pearson's product-moment correlation

data:  data$peak_force_imtp[data$sex == "m"] and data$dragon_score[data$sex == "m"]
t = 0.37656, df = 15, p-value = 0.7118
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.402599  0.551753
sample estimates:
       cor 
0.09677185 
print(female_corr_absolute_movement)

    Pearson's product-moment correlation

data:  data$peak_force_imtp[data$sex == "f"] and data$dragon_score[data$sex == "f"]
t = -1.1966, df = 50, p-value = 0.2371
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.4205977  0.1111111
sample estimates:
       cor 
-0.1668484 
# Linear regression seperated by sex dynamic strength 
model_maled <- lm(dragon_score ~ log_jumpheight, data = data_jump_clean, subset = sex == "m")
summary(model_maled)

Call:
lm(formula = dragon_score ~ log_jumpheight, data = data_jump_clean, 
    subset = sex == "m")

Residuals:
    Min      1Q  Median      3Q     Max 
-8.1997 -1.2697  0.2761  2.4820  3.6513 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)
(Intercept)      21.506     16.949   1.269    0.225
log_jumpheight    7.977      5.097   1.565    0.140

Residual standard error: 3.215 on 14 degrees of freedom
Multiple R-squared:  0.1489,    Adjusted R-squared:  0.0881 
F-statistic: 2.449 on 1 and 14 DF,  p-value: 0.1399
model_femaled <- lm(dragon_score ~ log_jumpheight, data = data_jump_clean, subset = sex == "f")
summary(model_femaled)

Call:
lm(formula = dragon_score ~ log_jumpheight, data = data_jump_clean, 
    subset = sex == "f")

Residuals:
    Min      1Q  Median      3Q     Max 
-8.3445 -2.3148  0.0242  2.4528  6.6637 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)      32.700      7.706   4.243 9.52e-05 ***
log_jumpheight    4.445      2.481   1.791   0.0793 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.224 on 50 degrees of freedom
Multiple R-squared:  0.06031,   Adjusted R-squared:  0.04152 
F-statistic: 3.209 on 1 and 50 DF,  p-value: 0.07929
# Perform Pearson's correlation test for males
male_corr_ds_movement <- cor.test(
  data_jump_clean$log_jumpheight[data$sex == "m"], 
  data_jump_clean$dragon_score[data$sex == "m"]
)

# Perform Pearson's correlation test for females
female_corr_ds_movement <- cor.test(
  data_jump_clean$log_jumpheight[data$sex == "f"], 
  data_jump_clean$dragon_score[data$sex == "f"]
)

# Print results
print(male_corr_ds_movement)

    Pearson's product-moment correlation

data:  data_jump_clean$log_jumpheight[data$sex == "m"] and data_jump_clean$dragon_score[data$sex == "m"]
t = 1.6688, df = 15, p-value = 0.1159
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1048707  0.7363171
sample estimates:
      cor 
0.3957205 
print(female_corr_ds_movement)

    Pearson's product-moment correlation

data:  data_jump_clean$log_jumpheight[data$sex == "f"] and data_jump_clean$dragon_score[data$sex == "f"]
t = 1.901, df = 49, p-value = 0.0632
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.0145607  0.5014424
sample estimates:
      cor 
0.2620746 
#Breakdown of dragon score Dynamic strength
model1 <- lm(process_score ~ log_jumpheight, data = data_jump_clean)

summary(model1)

Call:
lm(formula = process_score ~ log_jumpheight, data = data_jump_clean)

Residuals:
    Min      1Q  Median      3Q     Max 
-6.5895 -1.1141  0.1513  1.3770  2.8768 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)   
(Intercept)       9.984      3.676   2.716  0.00842 **
log_jumpheight    1.675      1.164   1.439  0.15474   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.906 on 66 degrees of freedom
Multiple R-squared:  0.03044,   Adjusted R-squared:  0.01575 
F-statistic: 2.072 on 1 and 66 DF,  p-value: 0.1547
model2 <- lm(product_score ~ log_jumpheight, data = data_jump_clean)

summary(model2)

Call:
lm(formula = product_score ~ log_jumpheight, data = data_jump_clean)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.6307 -1.5427  0.2306  0.9354  2.7030 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)   
(Intercept)      10.069      3.460   2.910  0.00492 **
log_jumpheight    1.779      1.095   1.624  0.10918   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.794 on 66 degrees of freedom
Multiple R-squared:  0.03842,   Adjusted R-squared:  0.02385 
F-statistic: 2.637 on 1 and 66 DF,  p-value: 0.1092
cor.test(data_jump_clean$process_score, data_jump_clean$log_jumpheight)

    Pearson's product-moment correlation

data:  data_jump_clean$process_score and data_jump_clean$log_jumpheight
t = 1.4395, df = 66, p-value = 0.1547
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.06672906  0.39640702
sample estimates:
      cor 
0.1744719 
cor.test(data_jump_clean$product_score, data_jump_clean$log_jumpheight)

    Pearson's product-moment correlation

data:  data_jump_clean$product_score and data_jump_clean$log_jumpheight
t = 1.6238, df = 66, p-value = 0.1092
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.04450224  0.41503236
sample estimates:
      cor 
0.1960025 
#Breakdown of dragon score Relative strength
model3 <- lm(process_score ~ relative_strength_imtp, data = data)

summary(model3)

Call:
lm(formula = process_score ~ relative_strength_imtp, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-6.2988 -1.1312 -0.0444  1.6741  2.8587 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)            14.10543    1.43155   9.853 1.16e-14 ***
relative_strength_imtp  0.04386    0.05166   0.849    0.399    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.939 on 67 degrees of freedom
Multiple R-squared:  0.01064,   Adjusted R-squared:  -0.004126 
F-statistic: 0.7206 on 1 and 67 DF,  p-value: 0.399
model4 <- lm(product_score ~ relative_strength_imtp, data = data)

summary(model4)

Call:
lm(formula = product_score ~ relative_strength_imtp, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.4157 -1.2458  0.3602  0.8964  3.1778 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)            12.91274    1.31160   9.845  1.2e-14 ***
relative_strength_imtp  0.10233    0.04734   2.162   0.0342 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.777 on 67 degrees of freedom
Multiple R-squared:  0.0652,    Adjusted R-squared:  0.05125 
F-statistic: 4.673 on 1 and 67 DF,  p-value: 0.03421
cor.test(data$process_score, data$relative_strength_imtp)

    Pearson's product-moment correlation

data:  data$process_score and data$relative_strength_imtp
t = 0.84885, df = 67, p-value = 0.399
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1368713  0.3317328
sample estimates:
      cor 
0.1031509 
cor.test(data$product_score, data$relative_strength_imtp)

    Pearson's product-moment correlation

data:  data$product_score and data$relative_strength_imtp
t = 2.1618, df = 67, p-value = 0.03421
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.01986488 0.46398470
sample estimates:
     cor 
0.255345 
#Breakdown of dragon score Absolute strength
model5 <- lm(process_score ~ peak_force_imtp, data = data)

summary(model5)

Call:
lm(formula = process_score ~ peak_force_imtp, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-6.2403 -1.2920  0.2865  1.4282  3.2610 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)     16.2174769  0.8377867  19.358   <2e-16 ***
peak_force_imtp -0.0006711  0.0005916  -1.134    0.261    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.931 on 67 degrees of freedom
Multiple R-squared:  0.01885,   Adjusted R-squared:  0.004203 
F-statistic: 1.287 on 1 and 67 DF,  p-value: 0.2606
model6 <- lm(product_score ~ peak_force_imtp, data = data)

summary(model6)

Call:
lm(formula = product_score ~ peak_force_imtp, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.6620 -1.5934  0.2978  0.4398  2.4401 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)     1.527e+01  7.953e-01  19.203   <2e-16 ***
peak_force_imtp 3.221e-04  5.616e-04   0.574    0.568    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.833 on 67 degrees of freedom
Multiple R-squared:  0.004886,  Adjusted R-squared:  -0.009966 
F-statistic: 0.329 on 1 and 67 DF,  p-value: 0.5682
cor.test(data$process_score, data$peak_force_imtp)

    Pearson's product-moment correlation

data:  data$process_score and data$peak_force_imtp
t = -1.1345, df = 67, p-value = 0.2606
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.3621977  0.1027329
sample estimates:
       cor 
-0.1372859 
cor.test(data$product_score, data$peak_force_imtp)

    Pearson's product-moment correlation

data:  data$product_score and data$peak_force_imtp
t = 0.57358, df = 67, p-value = 0.5682
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1695839  0.3015934
sample estimates:
       cor 
0.06990249 
# Binning relative strength into categories
data_jump_clean$d_strength_bin <- cut(data_jump_clean$log_jumpheight, 
                                  breaks = 3, 
                                  labels = c("Low", "Medium", "High"))

# Creating the violin plot
ggplot(data_jump_clean, aes(x = d_strength_bin, y = dragon_score)) +
  geom_violin(trim = FALSE, fill = "grey", color = "black") + # Adds the violin plot
  geom_boxplot(width = 0.1, fill = "white", outlier.color = "red", outlier.size = 2) + # Adds a boxplot inside
  labs(title = "Movement Competency by Dynamic Strength",
       x = "Countermovement Jump Height",
       y = "Dragon Challenge Score") +
  theme_minimal() # Clean, minimalistic theme

# Binning relative strength into categories
data$relative_strength_bin <- cut(data$relative_strength_imtp, 
                                  breaks = 3, 
                                  labels = c("low","medium", "high"))

# Creating the violin plot
ggplot(data, aes(x = relative_strength_bin, y = dragon_score)) +
  geom_violin(trim = FALSE, fill = "skyblue", color = "black") + # Adds the violin plot
  geom_boxplot(width = 0.1, fill = "white", outlier.color = "red", outlier.size = 2) + # Adds a boxplot inside
  labs(title = "Movement Competency by Relative Strength",
       x = "IMTP Relative Strength",
       y = "Movement Competency") +
  theme_minimal() # Clean, minimalistic theme