100m

Author

Takafumi Kubota

Published

June 4, 2024

Abstract

This analysis examines the historical 100m sprint times for male athletes, utilizing linear regression to identify trends over time. A dataset of sprint times from 1964 to 2009 is used to build a regression model, which is then employed to predict sprint times 100 years into the future. The findings include the regression model equation and the predicted sprint time for the year 2109.

Keywords

100m sprint, linear regression, historical analysis, predictive modeling, athletics

1 Introduction

This analysis focuses on the historical 100m sprint times for male athletes. The data used in this analysis is sourced from Wikipedia, covering the period from 1964 to 2009. The goal is to use linear regression to identify trends over time and predict future sprint times.

2 Methodology

2.1 Data Collection

The dataset was collected from Wikipedia, containing 100m sprint records for male athletes from 1964 to 2009. The data includes the sprint time, the athlete’s name, and the date of the record.

2.2 Data Preparation

The data was prepared by converting the date into a numerical year format, which is necessary for performing linear regression.

2.3 Linear Regression

A linear regression model was built using the year as the independent variable and the sprint time as the dependent variable. The model equation and the regression coefficients were derived from this analysis.

2.4 Future Predictions

Using the linear regression model, we predicted the 100m sprint time for 100 years into the future.

3 Code

Code
# 必要なライブラリを読み込み
library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.3.1
Code
# データの作成
data <- data.frame(
  Time = c(10.06, 10.03, 10.02, 9.95, 9.93, 9.83, 9.93, 9.79, 9.92, 9.90, 9.86, 9.85, 9.84, 9.79, 9.78, 9.768, 9.766, 9.763, 9.762, 9.735, 9.72, 9.69, 9.58),
  Athlete = c("Bob Hayes", "Jim Hines", "Charles Greene", "Jim Hines", "Calvin Smith", "Ben Johnson", "Carl Lewis", "Ben Johnson", "Carl Lewis", "Leroy Burrell", "Carl Lewis", "Leroy Burrell", "Donovan Bailey", "Maurice Greene", "Tim Montgomery", "Asafa Powell", "Justin Gatlin", "Asafa Powell", "Asafa Powell", "Asafa Powell", "Usain Bolt", "Usain Bolt", "Usain Bolt"),
  Date = as.Date(c("1964-10-15", "1968-06-20", "1968-10-13", "1968-10-14", "1983-07-03", "1987-08-30", "1987-08-30", "1988-09-24", "1988-09-24", "1991-06-14", "1991-08-25", "1994-07-06", "1996-07-27", "1999-06-16", "2002-09-14", "2005-06-14", "2006-05-12", "2006-06-11", "2006-08-18", "2007-09-09", "2008-05-31", "2008-08-16", "2009-08-16"))
)

# 年を抽出
data$Year <- as.numeric(format(data$Date, "%Y"))

# 線形回帰モデルを作成
model <- lm(Time ~ Year, data = data)

# モデルの概要を表示
summary(model)

Call:
lm(formula = Time ~ Year, data = data)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.13508 -0.00159  0.01077  0.02507  0.05096 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) 24.6882289  1.3679160   18.05 2.89e-14 ***
Year        -0.0074530  0.0006865  -10.86 4.51e-10 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.04667 on 21 degrees of freedom
Multiple R-squared:  0.8488,    Adjusted R-squared:  0.8416 
F-statistic: 117.9 on 1 and 21 DF,  p-value: 4.508e-10
Code
# 予測タイムを計算(100年後)
future_year <- max(data$Year) + 100
future_time_pred <- predict(model, newdata = data.frame(Year = future_year))

# 散布図と回帰直線を描く
ggplot(data, aes(x = Date, y = Time)) +
  geom_point(color = "blue") +
  geom_smooth(method = "lm", color = "red", se = FALSE) +
  labs(title = "100m Sprint Times Over Years with Regression Line",
       x = "Date",
       y = "Time (seconds)") +
  theme_minimal()
`geom_smooth()` using formula = 'y ~ x'

Code
# 回帰モデルの式と予測タイムを表示
model_equation <- paste("Time = ", round(coef(model)[2], 4), "* Year +", round(coef(model)[1], 4))
cat("Regression Model Equation:", model_equation, "\n")
Regression Model Equation: Time =  -0.0075 * Year + 24.6882 
Code
cat("Predicted Time in 100 Years:", future_time_pred, "\n")
Predicted Time in 100 Years: 8.969772 

3.0.1 必要なライブラリを読み込み

分析に必要なライブラリを読み込みます。この場合、データの視覚化のためにggplot2を使用します。

3.0.2 データの作成

Wikipediaから収集した1964年から2009年までの100m走の記録データを使用してデータフレームを作成します。データには、スプリントタイム、アスリート名、および記録日が含まれます。

3.0.3 年を抽出

日付データから年を抽出し、線形回帰モデルの独立変数として使用するために数値形式に変換します。

3.0.4 線形回帰モデルを作成

年を独立変数、タイムを従属変数として線形回帰モデルを作成します。このモデルは、年と100mスプリントタイムの関係を表現します。

3.0.5 モデルの概要を表示

モデルの要約を表示し、回帰係数やR^2値などの統計情報を確認します。

3.0.6 予測タイムを計算(100年後)

現在の最も新しい年から100年後のタイムを予測します。予測値は、将来のスプリントタイムのトレンドを示します。

3.0.7 散布図と回帰直線を描く

実際の記録タイムと回帰直線をプロットします。これにより、データの傾向と回帰モデルの適合度を視覚的に確認できます。

3.0.8 回帰モデルの式と予測タイムを表示

回帰モデルの式(年に対するタイムの線形関係)と100年後の予測タイムを表示します。ただし、100年後の予測は外挿によるものであり、既知のデータ範囲外での予測には多くの不確実性が伴います。データ範囲外の予測は、モデルの前提が適用されない可能性が高く、現実的ではない結果をもたらすことがあるため、慎重に解釈する必要があります。したがって、この予測は参考程度に留め、他の要因も考慮する必要があります。