rivet Posted June 5, 2003 Posted June 5, 2003 I have a list of users that attend classes. Each class (record) has a date. Of all the users I would like to see which ones are active users. My first approach would be to look at the last three classes and add the difference between the dates. The lower the number, the more active the user is. Is this a good approach? Am I overlooking a function that is already built-in FMP?
cjaeger Posted June 5, 2003 Posted June 5, 2003 first, rank the date descending by date (sort ascending, then replace field "rank" with auto-serial number, step 10, for example) . now add up the score for each user. The last couse scores 1000, the one before 990 and so on. you may relate this as an percentage to max possible points. Students last seen 3 years ago score below 100, recent participants should be in the 10000nds. You may choose to use a logarythmic function for the rank or just look at the last 10 classes, or make rank serialnumer ^2 - whatever suits your needs.
Ugo DI LUCA Posted June 5, 2003 Posted June 5, 2003 Hi Rivet, IMHO, this case is finally a good exercice for the use of StDev and StDevP. I'm not a Mathematician though, but here are my thoughts... It might be interresting to calculate the frequency using FileMaker Aggregate functions within relationships. At least, I'd test it. I like your method of substracting the days between two classes. - Adding up all these substractions would give you a "Total days" - Divided by the Total Courses attended (Count(SelfjoinonStudent_ID)) would give you an "Average Days". - Using StDev function with this latest number could give you the Standard deviation (average difference from average) for each Student_ID (SelfjoinOnStudent_ID) - Using StDevP function with this latest number could give you the Standard deviation (average difference from average) for the Population using a Selfjoin On Classes. You could then rank your students based on the difference from the results of StDev compared to StdevP. As I say, I'm just guessing, but I would like someone experienced to extend on this....or to contrary me...
Ugo DI LUCA Posted June 5, 2003 Posted June 5, 2003 A simplier approach of the case would be to use some selfjoin sums. Nb Classes attended= Count(SelfjoinOnStudent_ID::Class_ID) = Nb of classes attended Nb Days = Sum(SelfjoinOnStudent_ID::Substracted days) = Total nb of days between classed c_AveragePerStudent = Nb Days / Nb Classes attended Reliable Average = Case(Nb Classes attended>=3, c_AveragePerStudent , 1000) Then sort and rank by Reliable Average If you'd like these ranks to be established for each class, then you'd have another set of calculation based on a concanation Student_ID&"-"&Class_ID.
rivet Posted June 10, 2003 Author Posted June 10, 2003 thanks guys... I get the master files tonight so I will see what happens
Recommended Posts
This topic is 7837 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now