Untitled

 avatar
unknown
plain_text
a month ago
1.7 kB
1
Indexable
# Given data

intervals = [(5.1, 10), (10.1, 15), (15.1, 20), (20.1, 25), (25.1, 30)]

frequencies = [4, 7, 10, 9, 6]

# Step 1: Calculate midpoints and total frequency
midpoints = [(lower + upper) / 2 for lower, upper in intervals]
total_frequency = sum(frequencies)

# Calculate mean
mean = sum(f * x for f, x in zip(frequencies, midpoints)) / total_frequency

# Step 2: Mode calculation
modal_class_index = frequencies.index(max(frequencies))  # Find modal class index
modal_class = intervals[modal_class_index]
fm = frequencies[modal_class_index]  # Frequency of modal class
f_prev = frequencies[modal_class_index - 1] if modal_class_index > 0 else 0  # Previous frequency
f_next = frequencies[modal_class_index + 1] if modal_class_index < len(frequencies) - 1 else 0  # Next frequency
h_mode = modal_class[1] - modal_class[0]  # Class width
L_mode = modal_class[0]  # Lower boundary of modal class

mode = L_mode + ((fm - f_prev) / ((fm - f_prev) + (fm - f_next))) * h_mode

# Step 3: Median calculation
N_half = total_frequency / 2  # Half of total frequency
cumulative_frequencies = [sum(frequencies[:i+1]) for i in range(len(frequencies))]

# Find the median class
median_class_index = next(i for i, cf in enumerate(cumulative_frequencies) if cf >= N_half)
median_class = intervals[median_class_index]
f_median = frequencies[median_class_index]
F_median = cumulative_frequencies[median_class_index - 1] if median_class_index > 0 else 0
h_median = median_class[1] - median_class[0]  # Class width
L_median = median_class[0]  # Lower boundary of median class

median = L_median + ((N_half - F_median) / f_median) * h_median

mean, mode, median
Editor is loading...
Leave a Comment