Gsm Operator Switching
No preview image
Model was written in NetLogo 5.0.5
•
Viewed 208 times
•
Downloaded 27 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Comments and Questions
Click to Run Model
globals [ UnitsOfTime ;total tick ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;; OPERATOR ATTRIBUTES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; num-operators Number_Of_Turkcell_Customer Number_Of_Vodafone_Customer Number_Of_Avea_Customer prestige_Of_Turkcell prestige_Of_Vodafone prestige_Of_Avea ;price_factor_of_Turkcell ;slider at interface. ;price_factor_of_Vodafone ;slider at interface ;price_factor_of_Avea ;slider at interface ;;;;;;;;;;;;;;;;;;;;;;;; VARIABLES FOR CHURN RATE CALCULATIONS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; churn_Rate_Turkcell ;her ay abonelerin yüzde kaçı operatörü terketti. gerçek istetistik % 3 civarında churn_Rate_Vodafone churn_Rate_Avea average_churn_Rate_Turkcell average_churn_Rate_Vodafone average_churn_Rate_Avea total_churn_Rate_Turkcell total_churn_Rate_Vodafone total_churn_Rate_Avea churn_Number_Turkcell ;her ay kaç abone operatörü terketti churn_Number_Vodafone churn_Number_Avea ;;;;;;;;;;;;;;;;;;;;;;;; END VARIABLES FOR CHURN RATE CALCULATIONS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;; END OPERATOR ATTRIBUTES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ] turtles-own [ operator_type ;0=turkcell yellow, 1=vodafone red, 2=avea blue income age invoice_type ; 0=invoice, 1=prepaid last_time_changed ;if user doent chance operator at tick, this variable increase 1 commitment_time ;if there is no commitment it is 0, if not it is shows commitment time as month total_switch_cost ; it contains different operator switching cost , commitment time cost , last time changed cost , income and age cost ; values for these variables are calculated in set demand method. speech_demand message_demand internet_demand ; the importance factor given by the customer to each of speech , message and internet. speech_factor message_factor internet_factor turkcell_utility vodafone_utility avea_utility ;different_operator_switch_cost ;slider at interface turkcell_switching_probablity vodafone_switching_probablity avea_switching_probablity ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;; SETUP ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to setup clear-all set num-operators 3 set UnitsOfTime 360 create-turtles 100 [ set sıze 1 setxy random-xcor random-ycor ] set-brand-effect ; sets operator's brand value set-operator set-demand set-age set-income set-invoice-type set-commitment-time set-factor show "Baslangicta Olan" count-turtles reset-ticks end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;; END SETUP ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;; GO ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to go ask turtles [ switch ] calculate-churn-rate ; the percentage of customers who leaves their operator is calculated at each tick through this method. reset-churn-number ;set-demand-each-tick tick show word "Ticks: " ticks count-turtles if ticks >= UnitsOfTime [stop] ; kaç kez switching yapılacağını sayıyor end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;; END GO ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;; SWITCH ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to switch set turkcell_utility calculate-total-turkcell-utility set vodafone_utility calculate-total-vodafone-utility set avea_utility calculate-total-avea-utility calculate-switching-probablity ;customer changes his/her operator based on the probablity change-operator end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;; END SWITCH ;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;; PARAMETER SETTING FUNCTIONS ;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Real income values are set for each of ten group. to set-income ask turtles [ let randomIncome random 100 ifelse(randomIncome < 10 ) [ set income 2114 ] [ ifelse(randomIncome < 20 ) [ set income 3523 ] [ ifelse(randomIncome < 30 ) [ set income 4631 ] [ ifelse(randomIncome < 40 ) [ set income 5739 ] [ ifelse(randomIncome < 50 ) [ set income 6947 ] [ ifelse(randomIncome < 60 ) [ set income 8256 ] [ ifelse(randomIncome < 70 ) [ set income 9760 ] [ ifelse(randomIncome < 80 ) [ set income 11880 ] [ ifelse(randomIncome < 90 ) [ set income 15505 ] [ if(randomIncome < 100 ) [ set income 32420 ] ] ] ] ] ] ] ] ] ] ] end ; This method sets real age values for age groups. to set-age ask turtles [ let randomAgeProbability random-float 1 ifelse(randomAgeProbability < 0.40) [ set age (random 20) + 10 ] [ ifelse(randomAgeProbability < 0.75) [ set age (random 20) + 30 ] [ ifelse(randomAgeProbability < 0.94) [ set age (random 20) + 50 ] [ if(randomAgeProbability < 1) [ set age (random 20) + 70 ] ] ] ] ] end to set-invoice-type ask turtles [ if (operator_type = 0) [ let randomNumber random 100 ifelse(randomNumber < 60) [ set invoice_type 1 ] [ set invoice_type 0 ] ] if (operator_type = 1) [ let randomNumber random 100 ifelse(randomNumber < 61) [ set invoice_type 1 ] [ set invoice_type 0 ] ] if (operator_type = 2) [ let randomNumber random 100 ifelse(randomNumber < 54) [ set invoice_type 1 ] [ set invoice_type 0 ] ] ] end to set-commitment-time ask turtles [ if(invoice_type = 0) [ set commitment_time random 13 ] ] end to set-demand ask turtles [ if(operator_type = 0) [ set speech_demand random-normal 186 10 ;turkcell kullanıcılarına ortalama 186 dakika olacak şekilde, 10 standard devieyşınla kullanıcılara konuşma süresi set ediyor. ] if(operator_type = 1) [ set speech_demand random-normal 271 10 ;vodafone kullanıcılarına ortalama 271 dakika olacak şekilde, 10 standard devieyşınla kullanıcılara konuşma süresi set ediyor. ] if(operator_type = 2) [ set speech_demand random-normal 260 10 ;avea kullanıcılarına ortalama 260 dakika olacak şekilde, 10 standard devieyşınla kullanıcılara konuşma süresi set ediyor. ] if(operator_type = 0) [ set message_demand random-normal 140 10 ] if(operator_type = 1) [ set message_demand random-normal 296 10 ] if(operator_type = 2) [ set message_demand random-normal 221 10 ] let randomNumberInternet random-float 100 ifelse(randomNumberInternet < 39.41) [ set internet_demand 0 ] [ ifelse(randomNumberInternet < (39.41 + 7.89)) [ set internet_demand 30 ] [ ifelse(randomNumberInternet < (39.41 + 7.89 + 5.68)) [ set internet_demand 75 ] [ ifelse(randomNumberInternet < (39.41 + 7.89 + 5.68 + 9.72)) [ set internet_demand 175 ] [ ifelse(randomNumberInternet < (39.41 + 7.89 + 5.68 + 9.72 + 21.48)) [ set internet_demand 625 ] [ ifelse(randomNumberInternet < (39.41 + 7.89 + 5.68 + 9.72 + 21.48 + 14.16)) [ set internet_demand 2500 ] [ if(randomNumberInternet < (39.41 + 7.89 + 5.68 + 9.72 + 21.48 + 14.16 + 1.66)) [ set internet_demand 6000 ] ] ] ] ] ] ] ] end ; customers' demand changes with this function to set-demand-each-tick ask turtles [ ; bu kısım değiştirilecek let randomNumberSpeachChange random ((speech_demand * 0.2) * 2) set speech_demand speech_demand + ( (speech_demand * 0.2 ) - randomNumberSpeachChange) ;at each tick, speech demand changes between -30, +30 if (speech_demand < 0) [ set speech_demand 0 ] ; -------------------------------------------------------- let randomNumberMessageChange random ((message_demand * 0.5) * 2) set message_demand message_demand + ( (message_demand * 0.5) - randomNumberMessageChange) ;at each tick, message demand changes between -30, +30 if (message_demand < 0) [ set message_demand 0 ] ; ------------------------------------------------------------ let randomNumberInternetChange random ((internet_demand * 0.4) * 2) set internet_demand internet_demand + ( (internet_demand * 0.4) - randomNumberInternetChange) ;at each tick, internet demand changes between -100, +100 if (internet_demand < 0) [ set internet_demand 0 ] ] end to set-factor ask turtles [ let randomNumberForSpeech random-float 1 set speech_factor randomNumberForSpeech ; speach factor between 0-1 a float number let randomNumberForMessage random-float 0.3 set message_factor randomNumberForMessage let randomNumberForInternet random-float 0.7 set internet_factor randomNumberForInternet ;--------------------------------------------- ] end to set-operator ask turtles ; operator types are set to the customers at real percentage. [ let randomNumber random 9999 ifelse(randomNumber < 5052) ;turkcell [ set operator_type 0 set color yellow ] [ ifelse(randomNumber < (5052 + 2861)) ;Vodafone [ set operator_type 1 set color red ] [ set operator_type 2 ;avea set color blue ] ] ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;; END PARAMETER SETTING FUNCTIONS ;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; UTILITY CALCULATION ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;; SPEECH UTILITY FUNCTIONS ;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;speech_demand , speech_factor are attributes of agents to-report calculate-turkcell-speech-utility report (speech_factor * (sqrt speech_demand)) - (price_factor_of_Turkcell * (sqrt speech_demand)) end to-report calculate-vodafone-speech-utility report (speech_factor * (sqrt speech_demand)) - (price_factor_of_Vodafone * (sqrt speech_demand)) end to-report calculate-avea-speech-utility report (speech_factor * (sqrt speech_demand)) - (price_factor_of_Avea * (sqrt speech_demand)) end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;; MESSAGE UTILITY FUNCTIONS ;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;message_demand , message_factor are attributes of agents to-report calculate-turkcell-message-utility report (message_factor * (sqrt message_demand)) - (price_factor_of_Turkcell * (sqrt message_demand)) end to-report calculate-vodafone-message-utility report (message_factor * (sqrt message_demand)) - (price_factor_of_Vodafone * (sqrt message_demand)) end to-report calculate-avea-message-utility report (message_factor * (sqrt message_demand)) - (price_factor_of_Avea * (sqrt message_demand)) end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;; INTERNET UTILITY FUNCTIONS ;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;internet_demand , internet_factor are attributes of agents to-report calculate-turkcell-internet-utility report (internet_factor * (sqrt internet_demand)) - (price_factor_of_Turkcell * (sqrt internet_demand)) end to-report calculate-vodafone-internet-utility report (internet_factor * (sqrt internet_demand)) - (price_factor_of_Vodafone * (sqrt internet_demand)) end to-report calculate-avea-internet-utility report (internet_factor * (sqrt internet_demand)) - (price_factor_of_Avea * (sqrt internet_demand)) end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;; TOTAL UTILITY FUNCTIONS ;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to-report calculate-total-turkcell-utility calculate-switch-cost ; it calculates total switch cost ifelse (operator_type = 0) [ report calculate-turkcell-speech-utility + calculate-turkcell-message-utility + calculate-turkcell-internet-utility + prestige_of_Turkcell ] [ report calculate-turkcell-speech-utility + calculate-turkcell-message-utility + calculate-turkcell-internet-utility + prestige_of_Turkcell - total_switch_cost ] end to-report calculate-total-vodafone-utility ifelse (operator_type = 1) [ report calculate-vodafone-speech-utility + calculate-vodafone-message-utility + calculate-vodafone-internet-utility + prestige_of_Vodafone ] [ report calculate-vodafone-speech-utility + calculate-vodafone-message-utility + calculate-vodafone-internet-utility + prestige_of_Vodafone - total_switch_cost ] end to-report calculate-total-avea-utility ifelse (operator_type = 2) [ report calculate-avea-speech-utility + calculate-avea-message-utility + calculate-avea-internet-utility + prestige_of_Avea ] [ report calculate-avea-speech-utility + calculate-avea-message-utility + calculate-avea-internet-utility + prestige_of_Avea - total_switch_cost ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; END UTILITY CALCULATION ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;; FUNCTIONS ;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; utility hesaplandıktan sonra probabililty log it mantığıyla hesaplanıyor to calculate-switching-probablity set turkcell_switching_probablity ( (e ^ turkcell_utility) / ( (e ^ turkcell_utility) + (e ^ vodafone_utility) + (e ^ avea_utility) )) set vodafone_switching_probablity ( (e ^ vodafone_utility) / ((e ^ turkcell_utility) + (e ^ vodafone_utility) + (e ^ avea_utility) )) set avea_switching_probablity ( (e ^ avea_utility) / ((e ^ turkcell_utility) + (e ^ vodafone_utility) + (e ^ avea_utility) )) end ; her operatorden ayrılan kişi sayısını sıfırlar. to reset-churn-number set churn_Number_Turkcell 0 set churn_Number_Vodafone 0 set churn_Number_Avea 0 end ; random number ve probablity nin alacağı değerlere göre operator değişiyor veya aynı kalıyor. ; değişim gerçekleşirse eski operatorun churn numberı artıyor . to change-operator let randomNumber (random-float 1) ifelse (randomNumber <= turkcell_switching_probablity ) [ set last_time_changed last_time_changed + 1 if(operator_type = 0) [ if(commitment_time > 0) [ set commitment_time commitment_time - 1 ] ] if(operator_type = 1) [ set churn_Number_Vodafone churn_Number_Vodafone + 1 set last_time_changed 0; ; eğer kullanıcı faturalı hat sahibiyse operatorunu değiştirdiği zaman belli bir oranda taahutlü hattı sececek ;--------------------------------- if(operator_type = 0) [ let randomNumberInvoceProbability random 100 if(randomNumberInvoceProbability < 90) [ set commitment_time 12 ] ] ;---------------------------------- ] if(operator_type = 2) [ set churn_Number_Avea churn_Number_Avea + 1 set last_time_changed 0; ; eğer kullanıcı faturalı hat sahibiyse operatorunu değiştirdiği zaman belli bir oranda taahutlü hattı sececek ;-------------------------------------- if(operator_type = 0) [ let randomNumberInvoceProbability random 100 if(randomNumberInvoceProbability < 90) [ set commitment_time 12 ] ] ;------------------------------------ ] set color yellow set operator_type 0 ] [ ifelse (randomNumber < turkcell_switching_probablity + vodafone_switching_probablity ) [ set last_time_changed last_time_changed + 1 if(operator_type = 0) [ set commitment_time commitment_time - 1 ] if(operator_type = 0) [ set churn_Number_Turkcell churn_Number_Turkcell + 1 set last_time_changed 0; ; eğer kullanıcı faturalı hat sahibiyse operatorunu değiştirdiği zaman belli bir oranda taahutlü hattı sececek ;-------------------------------------- if(operator_type = 0) [ let randomNumberInvoceProbability random 100 if(randomNumberInvoceProbability < 90) [ set commitment_time 12 ] ] ;--------------------------- ] if(operator_type = 2) [ set churn_Number_Avea churn_Number_Avea + 1 set last_time_changed 0; ; eğer kullanıcı faturalı hat sahibiyse operatorunu değiştirdiği zaman belli bir oranda taahutlü hattı sececek ;-------------------------------------- if(operator_type = 0) [ let randomNumberInvoceProbability random 100 if(randomNumberInvoceProbability < 90) [ set commitment_time 12 ] ] ;--------------------------- ] set color red set operator_type 1 ] [ ;if (randomNumber <= turkcell_probability + vodafone_probability + avea_probability ) set last_time_changed last_time_changed + 1 if(operator_type = 0) [ set commitment_time commitment_time - 1 ] if(operator_type = 0) [ set churn_Number_Turkcell churn_Number_Turkcell + 1 set last_time_changed 0; ; eğer kullanıcı faturalı hat sahibiyse operatorunu değiştirdiği zaman belli bir oranda taahutlü hattı sececek ;-------------------------------------- if(operator_type = 0) [ let randomNumberInvoceProbability random 100 if(randomNumberInvoceProbability < 90) [ set commitment_time 12 ] ] ;--------------------------- ] if(operator_type = 1) [ set churn_Number_Vodafone churn_Number_Vodafone + 1 set last_time_changed 0; ; eğer kullanıcı faturalı hat sahibiyse operatorunu değiştirdiği zaman belli bir oranda taahutlü hattı sececek ;-------------------------------------- if(operator_type = 0) [ let randomNumberInvoceProbability random 100 if(randomNumberInvoceProbability < 90) [ set commitment_time 12 ] ] ;--------------------------- ] set color blue set operator_type 2 ] ] end to calculate-churn-rate ;her ay abonelerin yüzde kaçı operatörü terketti. gerçek istetistik % 3 civarında set churn_Rate_Turkcell (churn_Number_Turkcell / ( Number_Of_Turkcell_Customer + 1)) * 100 set churn_Rate_Vodafone (churn_Number_Vodafone /( Number_Of_Vodafone_Customer + 1)) * 100 set churn_Rate_Avea (churn_Number_Avea / (Number_Of_Avea_Customer + 1)) * 100 if(ticks > 30) [ set total_churn_Rate_Turkcell total_churn_Rate_Turkcell + churn_Rate_Turkcell set total_churn_Rate_Avea total_churn_Rate_Avea + churn_Rate_Avea set total_churn_Rate_Vodafone total_churn_Rate_Vodafone + churn_Rate_Vodafone set average_churn_Rate_Turkcell total_churn_Rate_Turkcell / ( ticks - 30) set average_churn_Rate_Avea total_churn_Rate_Avea / ( ticks - 30) set average_churn_Rate_Vodafone total_churn_Rate_Vodafone / ( ticks - 30) ] end to calculate-switch-cost set total_switch_cost different_operator_switch_cost if(invoice_type = 0) [ set total_switch_cost total_switch_cost + (different_operator_switch_cost * 0.2) ] ;;;;;;;;;;;;;;; SWITCH COST RELATED TO COMMITMENT TIME;;;;;;;;;;; if(commitment_time < 7) [ set total_switch_cost total_switch_cost + (commitment_time * 0.1) ] if(commitment_time > 6) [ set total_switch_cost total_switch_cost + ((12 - commitment_time) * 0.1) ] ;;;;;;;;;;;;;;; END SWITCH COST RELATED TO COMMITMENT TIME;;;;;;;;;;; ;;;;;;;;;;;;;;; SWITCH COST RELATED TO LAST TIME CHANGED ;;;;;;;;;;; if(last_time_changed < 13 ) [ set total_switch_cost total_switch_cost + ( (12 - last_time_changed) * 0.1) ] ;;;;;;;;;;;;;;; END SWITCH COST RELATED TO LAST TIME CHANGED ;;;;;;;;;;; ;;;;;;;;;;;;;;; SWITCH COST RELATED TO INCOME ;;;;;;;;;;; ;set total_switch_cost total_switch_cost + (30 / income) ;;;;;;;;;;;;;;; SWITCH COST RELATED TO AGE ;;;;;;;;;;; set total_switch_cost total_switch_cost + (age * 0.01) end to count-turtles set Number_Of_Turkcell_Customer count turtles with [operator_type = 0] set Number_Of_Vodafone_Customer count turtles with [operator_type = 1] set Number_Of_Avea_Customer count turtles with [operator_type = 2] show word "Turkcell abone sayısı: " Number_Of_Turkcell_Customer show word "Vodafone abone sayısı: " Number_Of_Vodafone_Customer show word "Avea abone sayısı : " Number_Of_Avea_Customer print_churn_rate end ;;;;;;;;;;;;;; BRAND IMAGE OF OPREATOR ;;;;;;;;;;; to set-brand-effect ;set prestige_Of_Turkcell 47 ;set prestige_Of_Vodafone 24 ;set prestige_Of_Avea 18 set prestige_Of_Turkcell 45 set prestige_Of_Vodafone 25 set prestige_Of_Avea 20 end to print_average-speech show word "Turkcell konuşma ortalaması: " mean [ speech_demand] of turtles with [operator_type = 0] show word "Vodafone konuşma ortalaması: " mean [ speech_demand] of turtles with [operator_type = 1] show word "Avea konuşma ortalaması: " mean [ speech_demand] of turtles with [operator_type = 2] show word "Total konuşma ortalaması: " mean [ speech_demand] of turtles show "******" show word "Turkcell mesajlaşma ortalaması: " mean [ message_demand] of turtles with [operator_type = 0] show word "Vodafone mesajlaşma ortalaması: " mean [ message_demand] of turtles with [operator_type = 1] show word "Avea mesajlaşma ortalaması: " mean [ message_demand] of turtles with [operator_type = 2] show word "Total mesajlaşma ortalaması: " mean [ message_demand] of turtles show "******" show word "Turkcell internet ortalaması: " mean [ internet_demand] of turtles with [operator_type = 0] show word "Vodafone internet ortalaması: " mean [ internet_demand] of turtles with [operator_type = 1] show word "Avea internet ortalaması: " mean [ internet_demand] of turtles with [operator_type = 2] show word "Total internet ortalaması: " mean [ internet_demand] of turtles show "******" end to print_churn_rate show word "Turkcell churn: " churn_Rate_Turkcell show word "Vodafone churn: " churn_Rate_Vodafone show word "Avea churn: " churn_Rate_Avea show word "Turkcell average churn: " average_churn_Rate_Turkcell show word "Vodafone average churn: " average_churn_Rate_Vodafone show word "Avea average churn: " average_churn_Rate_Avea ;show word "average churn: " mean [ speech_demand] of turtles end ;; set demand değişecek ; change operatorde taahut kısmında yuzde 90 istimal olayı var ; BRAND İMAGE İLE OYNA
There is only one version of this model, created about 7 years ago by Kurtuluş Şahin.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
492_pre.pptx | powerpoint | Project Presentation | about 7 years ago, by Kurtuluş Şahin | Download |
Modeling GSM Switching Behavior Of Customers In Turkey With Agent Based Modeling Methodology.pdf | Project Documentation | over 6 years ago, by Kurtuluş Şahin | Download |
This model does not have any ancestors.
This model does not have any descendants.
Kurtuluş Şahin
Gsm Operator Switching
The study is conducted to understand and evaluate the switching tendency of GSM customers from one GSM operator to another in specific circumstances.
Posted about 7 years ago