#math #optimization #statistics #standard-deviation #variance
Вопрос:
У меня есть массив X
со значениями с плавающей точкой и фиксированным размером. Мне нужно добавить p
(значение с плавающей точкой) к любому элементу X
так, чтобы дисперсия X
уменьшалась.
Как мне выбрать нужный элемент?
Напр.:
X = [0,1.2,1.7,2.1,1.7,0,1.3]
и
p = 0.5
Что же нового X
?
Комментарии:
1. Это вопрос статистики, а не вопрос программирования.
Ответ №1:
Дисперсия-это показатель того, насколько значения далеки от среднего.
Таким образом, вы можете оценить, какое измененное значение приводит к большему уменьшению этой меры.
import numpy as np
def Reduce_variance(X, p):
#Calculate mean
mean = np.mean(X)
#Calculate the variance terms
x=(np.array(X)-mean)**2
#Calculate the variance terms added p
y=(np.array(X) p-mean)**2
#Calculate the difference
z=x-y
#Check the index of the best improvement
index=np.where(z==max(z))[0][0]
#Replace
X[index]=X[index] p
return X
Ответ №2:
Дисперсия определяется тем, насколько далеки элементы от среднего значения. Если добавление p
к элементу приближает этот элемент к среднему значению, вы уменьшите дисперсию. Например:
from statistics import variance, mean
X = [0,1.2,1.7,2.1,1.7,0,1.3]
p = .5
def change(X, p):
mu = mean(X)
for n in X:
if abs(mu - n) > abs(mu - (n p)):
yield n p
else:
yield n
variance(X), variance(change(X, p))
# (0.6961904761904762, 0.3747619047619048)