взвешенное среднее R - PullRequest
       65

взвешенное среднее R

0 голосов
/ 22 января 2020

Мне было интересно, как я могу получить средневзвешенное значение моих данных. Я уже посмотрел на inte rnet, но когда я пробовал функцию weighted.mean, я продолжал получать тот же результат, поэтому мне было интересно, что я делаю неправильно.

Ниже приведена некоторая информация о набор данных:

dput(head(new))
structure(list(comp.1 = c(0.5, 0.25, 0, 0.25, 0.31, 0.3), comp.2 = c(0.3, 
0.15, 0, 0.15, 0, 0), comp.3 = c(0.2, 0.6, 1, 0.6, 0.69, 0.7), 
genderMale = c(0, 1, 1, 1, 0, 0), SeniorCitizen = c(0, 0, 
0, 0, 0, 0), PartnerYes = c(1, 0, 0, 0, 0, 0), DependentsYes = c(0, 
0, 0, 0, 0, 0), tenure = c(-1.28015700354285, 0.064298112878097, 
-1.23941593940889, 0.512449818351747, -1.23941593940889, 
-0.994969554605076), MultipleLinesYes = c(0, 0, 0, 0, 0, 
1), `InternetServiceFiber optic` = c(0, 0, 0, 0, 1, 1), OnlineSecurityYes = c(0, 
1, 1, 1, 0, 0), OnlineBackupYes = c(1, 0, 1, 0, 0, 0), DeviceProtectionYes = c(0, 
1, 0, 1, 0, 1), TechSupportYes = c(0, 0, 0, 1, 0, 0), StreamingTVYes = c(0, 
0, 0, 0, 0, 1), StreamingMoviesYes = c(0, 0, 0, 0, 0, 1), 
`ContractOne year` = c(0, 1, 0, 1, 0, 0), `ContractTwo year` = c(0, 
0, 0, 0, 0, 0), PaperlessBillingYes = c(1, 0, 1, 0, 1, 1), 
`PaymentMethodCredit card (automatic)` = c(0, 0, 0, 0, 0, 
0), `PaymentMethodElectronic check` = c(1, 0, 0, 0, 1, 1), 
`PaymentMethodMailed check` = c(0, 1, 1, 0, 0, 0), MonthlyCharges = c(-1.16161133177258, 
-0.260859369930086, -0.363897417225722, -0.747797238601399, 
0.196164226945719, 1.15840663636787), TotalCharges = c(1.47494433546539, 
3.27634689625303, 2.03402652377511, 3.26499480914874, 2.18084241464668, 
2.91407858538911)), row.names = c("1", "2", "3", "4", "5", 
"6"), class = "data.frame")

Как видите, у меня есть 3 компонента (комп.1, комп.2, комп.3). Все эти компоненты имеют свои апостериорные вероятности. И мне интересно, как я могу получить средневзвешенные значения для всех этих и окончательных взвешенных средних. Я попытался:

weighted.mean(new$comp.1, new$SeniorCitizen)
weighted.mean(new$comp.2, new$SeniorCitizen)
weighted.mean(new$comp.3, new$SeniorCitizen)

Это дало мне выходной 0,24, 0,14 и 0,61. Но независимо от того, какую переменную я положил, я получаю один и тот же вывод. Что я делаю не так?

...