0
0
SciPydata~20 mins

Why fitting models to data reveals relationships in SciPy - Challenge Your Understanding

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Model Fitting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of linear fit coefficients
What is the output of the following code that fits a linear model to data points?
SciPy
import numpy as np
from scipy.optimize import curve_fit

def linear_model(x, a, b):
    return a * x + b

x_data = np.array([1, 2, 3, 4, 5])
y_data = np.array([2.1, 4.1, 6.0, 8.1, 10.2])

params, _ = curve_fit(linear_model, x_data, y_data)
print(np.round(params, 2))
A[2.02 0.04]
B[2.00 0.10]
C[1.95 0.20]
D[2.10 -0.05]
Attempts:
2 left
💡 Hint
Think about how close the y_data values are to a line with slope 2 and intercept near zero.
data_output
intermediate
2:00remaining
Number of points within 0.2 of fitted quadratic
After fitting a quadratic model to data, how many points lie within 0.2 units of the fitted curve?
SciPy
import numpy as np
from scipy.optimize import curve_fit

def quad_model(x, a, b, c):
    return a * x**2 + b * x + c

x = np.linspace(-2, 2, 10)
y = 3 * x**2 + 2 * x + 1 + np.random.normal(0, 0.1, x.size)
params, _ = curve_fit(quad_model, x, y)
y_fit = quad_model(x, *params)
close_points = np.sum(np.abs(y - y_fit) < 0.2)
print(close_points)
A10
B8
C6
D4
Attempts:
2 left
💡 Hint
The noise is small, so most points should be close to the fitted curve.
visualization
advanced
2:00remaining
Identify the plot showing best fit line
Which plot correctly shows the data points and the best fit line from a linear regression?
SciPy
import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import curve_fit

def linear(x, m, c):
    return m * x + c

x = np.array([0, 1, 2, 3, 4])
y = np.array([1, 3, 5, 7, 9])
params, _ = curve_fit(linear, x, y)
y_fit = linear(x, *params)

plt.figure(figsize=(8, 5))
plt.scatter(x, y, label='Data points')
plt.plot(x, y_fit, label='Fitted line', color='red')
plt.legend()
plt.title('Linear Fit Example')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
AOnly a red line without scatter points
BScatter points with a red line close but not exactly through all points
CScatter points with a blue curve bending through points
DScatter points with a red line passing exactly through all points
Attempts:
2 left
💡 Hint
Best fit lines minimize error but rarely pass exactly through all points.
🧠 Conceptual
advanced
1:30remaining
Why does fitting a model reveal relationships?
Why does fitting a mathematical model to data help reveal relationships between variables?
ABecause it removes all noise from data to show perfect relationships
BBecause it forces data to match a predefined pattern regardless of actual trends
CBecause it finds parameters that best explain how variables change together
DBecause it randomly assigns values to variables to create correlations
Attempts:
2 left
💡 Hint
Think about what fitting tries to optimize in the model.
🔧 Debug
expert
2:30remaining
Identify the error in model fitting code
What error will this code raise when trying to fit a model to data?
SciPy
import numpy as np
from scipy.optimize import curve_fit

def model(x, a, b):
    return a * np.sin(b * x)

x = np.linspace(0, 2 * np.pi, 50)
y = np.sin(x) + np.random.normal(0, 0.1, x.size)

params, _ = curve_fit(model, x, y, p0=[1, 1])
ATypeError: curve_fit() got an unexpected keyword argument 'p0'
BValueError: initial guess p0 must have length 2
CRuntimeWarning: overflow encountered in sin
DNo error, code runs successfully
Attempts:
2 left
💡 Hint
Check the number of parameters in the model and the initial guess length.