0

I was wondering how I can get the weighted average of my data. I have already looked on the internet, but when I try the weighted.mean function, I keep getting the same result, so I was wondering what I am doing wrong.

Below is some information of the dataset:

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")

As you can see, I have 3 components (comp.1, comp.2, comp.3). All of these components have their posterior probabilities. And I am wondering how I can get the weighted averages for all of these and the final weighted averages. I have tried:

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

It gave me the output 0.24, 0.14 and 0.61. But irrespectively which variable I put, I get the same output. What am I doing wrong?

  • 4
    In your sample data `new$SeniorCitizen` is always 0. That is interpreted as all values having equal weight, which yields the unweighted sample mean. The values given to the `w` (second) argument of `weighted.mean` need to have some variation if the weighted mean is to be different than the unweighted mean. – Benjamin Jan 22 '20 at 12:12
  • Its a coincidence new$SeniorCitizen is 0. In the total of the dataset it is not the case. – daantheboss Jan 22 '20 at 12:22

0 Answers0